前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python入门-1-字符串初相识

python入门-1-字符串初相识

作者头像
皮大大
发布2023-08-23 15:29:30
发布2023-08-23 15:29:30
26100
代码可运行
举报
运行总次数:0
代码可运行

python入门-字符串初相识

从本文开始准备介绍Python中的常见数据结构:字符串、列表、集合、字典。其中字符串、列表、字典应用非常频繁,需要重点掌握,本文介绍的是字符串及相关操作和方法。最后的字符串3种格式化方法将在下篇文章详细讲解。

一、认识字符串

字符串在Python中是一种数据对象类型,用str表示,通常用单引号或者双引号包裹起来(英文的半角符号)

字符串string,是有零个或者多个字符组成的有限串行,通常记为s=a[1]a[2]…a[m]

代码语言:javascript
代码运行次数:0
运行
复制
strings = "hello world"  # 双引号
strings
代码语言:javascript
代码运行次数:0
运行
复制
'hello world'
代码语言:javascript
代码运行次数:0
运行
复制
type(strings)
代码语言:javascript
代码运行次数:0
运行
复制
str
代码语言:javascript
代码运行次数:0
运行
复制
new_strings = 'hello python'  # 单引号
new_strings
代码语言:javascript
代码运行次数:0
运行
复制
'hello python'

通过type函数查看类型

代码语言:javascript
代码运行次数:0
运行
复制
type(new_strings)
代码语言:javascript
代码运行次数:0
运行
复制
str
代码语言:javascript
代码运行次数:0
运行
复制
type(100)  # 数值型
代码语言:javascript
代码运行次数:0
运行
复制
int
代码语言:javascript
代码运行次数:0
运行
复制
type("100")  # 字符串类型
代码语言:javascript
代码运行次数:0
运行
复制
str

如果字符串本身内容就有引号,我们有两种解决方式:

  • 双引号包裹单引号
  • 使用转义字符
代码语言:javascript
代码运行次数:0
运行
复制
# 如果字符串本身内容也包含引号
# 1、双引号包裹单引号

x = "I'm Peter!"
x
代码语言:javascript
代码运行次数:0
运行
复制
"I'm Peter!"
代码语言:javascript
代码运行次数:0
运行
复制
# 使用转义字符\

y = 'I\'m Peter'
y
代码语言:javascript
代码运行次数:0
运行
复制
"I'm Peter"
代码语言:javascript
代码运行次数:0
运行
复制
# 3、使用r“字符内容":原始字符串

z = r"I'm Peter!"
z
代码语言:javascript
代码运行次数:0
运行
复制
"I'm Peter!"

二、字符串基础操作

2.1键盘输入

键盘输入的任何内容都是字符串

代码语言:javascript
代码运行次数:0
运行
复制
name = input("my name is: ")
代码语言:javascript
代码运行次数:0
运行
复制
my name is: Peter
代码语言:javascript
代码运行次数:0
运行
复制
name  # 返回的是字符串类型数据
代码语言:javascript
代码运行次数:0
运行
复制
'Peter'
代码语言:javascript
代码运行次数:0
运行
复制
# 键盘输入的都是字符串类型数据

age = input("my age is: ")
代码语言:javascript
代码运行次数:0
运行
复制
my age is: 20
代码语言:javascript
代码运行次数:0
运行
复制
type(age)  # 返回的仍然是字符串
代码语言:javascript
代码运行次数:0
运行
复制
str

2.2变量与字符串

python中有这样一句话:变量是无类型的,对象有类型

代码语言:javascript
代码运行次数:0
运行
复制
x = 5  # 变量x可以贴在int类型的数字5上:赋值语句
代码语言:javascript
代码运行次数:0
运行
复制
x  = "python"  # 变量x也可以贴在字符串类型上
代码语言:javascript
代码运行次数:0
运行
复制
# 通过赋值语句来表示变量和字符串对象之间的引用关系

a = "hello-python"
a
代码语言:javascript
代码运行次数:0
运行
复制
'hello-python'
代码语言:javascript
代码运行次数:0
运行
复制
type(a)
代码语言:javascript
代码运行次数:0
运行
复制
str

2.3查看字符串地址

代码语言:javascript
代码运行次数:0
运行
复制
id(a)
代码语言:javascript
代码运行次数:0
运行
复制
4516524144
代码语言:javascript
代码运行次数:0
运行
复制
id(age)
代码语言:javascript
代码运行次数:0
运行
复制
4516499824

2.4原始字符串

用r开头引起的字符串就是我们常用的原始字符串,放在里面的任何字符串都是表示它的原始含义,从此不需要转义

代码语言:javascript
代码运行次数:0
运行
复制
s = "hello \npython"
print(s)  # 发生换行
代码语言:javascript
代码运行次数:0
运行
复制
hello
python
代码语言:javascript
代码运行次数:0
运行
复制
# 如何解决:1-使用转义字符
print("hello \\npython")
代码语言:javascript
代码运行次数:0
运行
复制
hello \npython
代码语言:javascript
代码运行次数:0
运行
复制
# 2-使用r包裹起来
print(r"hello \npython")
代码语言:javascript
代码运行次数:0
运行
复制
hello \npython

三、索引和切片

索引和切片是python中非常重要的一个概念,记住几点:

  • 索引左边从0开始,右边从-1开始
  • 切片语法:start🔚step,step表示步长

3.1索引

使用的index()来查看某个字符的索引

代码语言:javascript
代码运行次数:0
运行
复制
str1 = "python"
id(str1)
代码语言:javascript
代码运行次数:0
运行
复制
4473172336
代码语言:javascript
代码运行次数:0
运行
复制
str2 = "thonpy"
id(str2)
代码语言:javascript
代码运行次数:0
运行
复制
4516506736
代码语言:javascript
代码运行次数:0
运行
复制
# 寻找某个字符的索引index:索引从0开始

str1.index("h")
代码语言:javascript
代码运行次数:0
运行
复制
3
代码语言:javascript
代码运行次数:0
运行
复制
str1.index("n")
代码语言:javascript
代码运行次数:0
运行
复制
5

3.2切片

关于切片总结4点:

  • 标准形式:start:stop:step
  • 含头不含尾:包含start部分,不包含stop部分
  • 切片的时候,索引左边从0开始,右边从-1开始
  • 步长step可正可负
代码语言:javascript
代码运行次数:0
运行
复制
str3 = "learn python"
str3
代码语言:javascript
代码运行次数:0
运行
复制
'learn python'
代码语言:javascript
代码运行次数:0
运行
复制
# 标准切割

str3[0:4:1] # 步长为1
代码语言:javascript
代码运行次数:0
运行
复制
'lear'
代码语言:javascript
代码运行次数:0
运行
复制
str3[:4:1] # 开头的0可以省略
代码语言:javascript
代码运行次数:0
运行
复制
'lear'
代码语言:javascript
代码运行次数:0
运行
复制
str3[:4]  # 步长1也可以省略
代码语言:javascript
代码运行次数:0
运行
复制
'lear'
代码语言:javascript
代码运行次数:0
运行
复制
str3[0:4:2] # 步长为2
代码语言:javascript
代码运行次数:0
运行
复制
'la'
代码语言:javascript
代码运行次数:0
运行
复制
str3[:10]  # 步长为1,切到索引为10,不包含10
代码语言:javascript
代码运行次数:0
运行
复制
'learn pyth'
代码语言:javascript
代码运行次数:0
运行
复制
str3[10:0:-2] # 步长为2
代码语言:javascript
代码运行次数:0
运行
复制
'otpna'
代码语言:javascript
代码运行次数:0
运行
复制
str3.index("o")  # 从索引10的o字符开始切割,往前切
代码语言:javascript
代码运行次数:0
运行
复制
10

四、字符串进阶操作

4.1求长度

代码语言:javascript
代码运行次数:0
运行
复制
len(str3)
代码语言:javascript
代码运行次数:0
运行
复制
12

4.2返回最值

每个字符都有自己对应的数字编码,通过比较数字就可以知道对应字符的大小

代码语言:javascript
代码运行次数:0
运行
复制
max(str3)  # 根据ASCII码的取值来决定
代码语言:javascript
代码运行次数:0
运行
复制
'y'
代码语言:javascript
代码运行次数:0
运行
复制
min(str3)
代码语言:javascript
代码运行次数:0
运行
复制
' '
代码语言:javascript
代码运行次数:0
运行
复制
ord("y")  # 每个字符对应的编码
代码语言:javascript
代码运行次数:0
运行
复制
121
代码语言:javascript
代码运行次数:0
运行
复制
ord("z")
代码语言:javascript
代码运行次数:0
运行
复制
122
代码语言:javascript
代码运行次数:0
运行
复制
ord(" ")
代码语言:javascript
代码运行次数:0
运行
复制
32
代码语言:javascript
代码运行次数:0
运行
复制
chr(121)   # 数值对应的字符:反编码的过程
代码语言:javascript
代码运行次数:0
运行
复制
'y'
代码语言:javascript
代码运行次数:0
运行
复制
"aa" > "ab"  # 第一个字符相同就比较第二个
代码语言:javascript
代码运行次数:0
运行
复制
False
代码语言:javascript
代码运行次数:0
运行
复制
"aac" > "aab"  # c 大于 b
代码语言:javascript
代码运行次数:0
运行
复制
True

4.3判断是否存在

代码语言:javascript
代码运行次数:0
运行
复制
"p" in str3
代码语言:javascript
代码运行次数:0
运行
复制
True
代码语言:javascript
代码运行次数:0
运行
复制
"q" in str3
代码语言:javascript
代码运行次数:0
运行
复制
False
代码语言:javascript
代码运行次数:0
运行
复制
str3
代码语言:javascript
代码运行次数:0
运行
复制
'learn python'

4.4字符串重复

代码语言:javascript
代码运行次数:0
运行
复制
str1
代码语言:javascript
代码运行次数:0
运行
复制
'python'
代码语言:javascript
代码运行次数:0
运行
复制
str1 * 3
代码语言:javascript
代码运行次数:0
运行
复制
'pythonpythonpython'

4.5字符串连接

两种方式:

  • 通过+来实现
  • 通过join来实现
代码语言:javascript
代码运行次数:0
运行
复制
str1
代码语言:javascript
代码运行次数:0
运行
复制
'python'
代码语言:javascript
代码运行次数:0
运行
复制
str4 = "learn "  # 后面有个空格
str4
代码语言:javascript
代码运行次数:0
运行
复制
'learn '
代码语言:javascript
代码运行次数:0
运行
复制
str4 + str1
代码语言:javascript
代码运行次数:0
运行
复制
'learn python'
代码语言:javascript
代码运行次数:0
运行
复制
"I" + " " + "am" + " Peter"  # 使用+号多次连接
代码语言:javascript
代码运行次数:0
运行
复制
'I am Peter'
代码语言:javascript
代码运行次数:0
运行
复制
# join连接

" ".join(("learn","python"))  # 连接符号为空格
代码语言:javascript
代码运行次数:0
运行
复制
'learn python'
代码语言:javascript
代码运行次数:0
运行
复制
"+".join(("learn","python"))  # 连接符号为+
代码语言:javascript
代码运行次数:0
运行
复制
'learn python'
代码语言:javascript
代码运行次数:0
运行
复制
" ".join(("I","am", "Peter"))
代码语言:javascript
代码运行次数:0
运行
复制
'I am Peter'
代码语言:javascript
代码运行次数:0
运行
复制
8 + "python"   # 不同类型的数据不能相加
代码语言:javascript
代码运行次数:0
运行
复制
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-56-d9d7a3d8267b> in <module>
----> 1 8 + "python"   # 不同类型的数据不能相加


TypeError: unsupported operand type(s) for +: 'int' and 'str'
代码语言:javascript
代码运行次数:0
运行
复制
"8" + "python"
代码语言:javascript
代码运行次数:0
运行
复制
'8python'
代码语言:javascript
代码运行次数:0
运行
复制
str(8) + "python"  # 使用str函数强制转换
代码语言:javascript
代码运行次数:0
运行
复制
'8python'

五、常用字符串方法

5.1判读是否全部为字母

代码语言:javascript
代码运行次数:0
运行
复制
"python".isalpha()
代码语言:javascript
代码运行次数:0
运行
复制
True
代码语言:javascript
代码运行次数:0
运行
复制
"8python".isalpha()
代码语言:javascript
代码运行次数:0
运行
复制
False

5.2分割字符串

代码语言:javascript
代码运行次数:0
运行
复制
str5 = "My name is Peter"
str5.split(" ")  # 通过空格进行分割,得到的是列表(后面会介绍列表)
代码语言:javascript
代码运行次数:0
运行
复制
['My', 'name', 'is', 'Peter']
代码语言:javascript
代码运行次数:0
运行
复制
str5.split()   # 默认是空格切割,效果同上
代码语言:javascript
代码运行次数:0
运行
复制
['My', 'name', 'is', 'Peter']
代码语言:javascript
代码运行次数:0
运行
复制
str5.split("")  # 报错空切割字符
代码语言:javascript
代码运行次数:0
运行
复制
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-63-e39a6d8acc4b> in <module>
----> 1 str5.split("")  # 报错空切割字符


ValueError: empty separator
代码语言:javascript
代码运行次数:0
运行
复制
str5.split("is")   # 通过is来切割
代码语言:javascript
代码运行次数:0
运行
复制
['My name ', ' Peter']

5.3去掉字符串的空格

  • strip():两端的空格
  • lstrip():左边的空格
  • rstrip():右边的空格
代码语言:javascript
代码运行次数:0
运行
复制
str6 = " python "  # 左右各一个空格
str6
代码语言:javascript
代码运行次数:0
运行
复制
' python '
代码语言:javascript
代码运行次数:0
运行
复制
str6.strip()
代码语言:javascript
代码运行次数:0
运行
复制
'python'
代码语言:javascript
代码运行次数:0
运行
复制
str6.rstrip()
代码语言:javascript
代码运行次数:0
运行
复制
' python'
代码语言:javascript
代码运行次数:0
运行
复制
str6.lstrip()
代码语言:javascript
代码运行次数:0
运行
复制
'python '
代码语言:javascript
代码运行次数:0
运行
复制
str6   # 原来的值保持不变
代码语言:javascript
代码运行次数:0
运行
复制
' python '

5.4字符大小写转化

python中实现各种类型的大小写转化

  • upper():字母全部转为大写
  • lower():字母全部转为小写
  • capitalize():首字母全部转为大写
  • title():字符串中所有单词的首字母大写,其他为小写
  • isupper():判断字母是否全部转为大写
  • islower():判断字母是否全部转为小写
  • istitle():判断是否为标题模式,即字符串中所有单词的首字母大写,其他为小写
代码语言:javascript
代码运行次数:0
运行
复制
str7 = "this is Python"  # 只有P是大写
str7
代码语言:javascript
代码运行次数:0
运行
复制
'this is Python'
代码语言:javascript
代码运行次数:0
运行
复制
str7.upper()  # 全部为大写
代码语言:javascript
代码运行次数:0
运行
复制
'THIS IS PYTHON'
代码语言:javascript
代码运行次数:0
运行
复制
str7.lower()  # p也变成了小写
代码语言:javascript
代码运行次数:0
运行
复制
'this is python'
代码语言:javascript
代码运行次数:0
运行
复制
str7.capitalize()  # 首字母T大写
代码语言:javascript
代码运行次数:0
运行
复制
'This is python'
代码语言:javascript
代码运行次数:0
运行
复制
str7.islower()  # 是否全部为小写
代码语言:javascript
代码运行次数:0
运行
复制
False
代码语言:javascript
代码运行次数:0
运行
复制
str7.isupper()  # 是否全部为大写
代码语言:javascript
代码运行次数:0
运行
复制
False
代码语言:javascript
代码运行次数:0
运行
复制
str7.istitle()  # 是否为标题模式
代码语言:javascript
代码运行次数:0
运行
复制
False
代码语言:javascript
代码运行次数:0
运行
复制
str7.title() # 转成标题模式:每个单词的首字母大写
代码语言:javascript
代码运行次数:0
运行
复制
'This Is Python'

总结

字符串在Python中是非常高频使用的是一种数据类型,从字符串的转化、获取字符串指定中的指定内容、字符串的切片索引等都是必须掌握的知识点,希望本文对读者有所帮助!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-7-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python入门-字符串初相识
  • 一、认识字符串
  • 二、字符串基础操作
    • 2.1键盘输入
    • 2.2变量与字符串
    • 2.3查看字符串地址
    • 2.4原始字符串
  • 三、索引和切片
    • 3.1索引
    • 3.2切片
  • 四、字符串进阶操作
    • 4.1求长度
    • 4.2返回最值
    • 4.3判断是否存在
    • 4.4字符串重复
    • 4.5字符串连接
  • 五、常用字符串方法
    • 5.1判读是否全部为字母
    • 5.2分割字符串
    • 5.3去掉字符串的空格
    • 5.4字符大小写转化
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档