字符串
字符串
一、字符串的定义与创建
(一)字符串的定义
字符串是Python中最常用的数据类型,是不变序列的一种。我们可以使用英文(半角)引号(单引号' 或 双引号“)来创建。
(二)字符串的创建
-
直接建立
s1 = 'Hello' s2 = "World" -
通过str()建立
n = 123 s = str(n) print(s) print(type(s))
二、不可变序列的通用操作在字符串中的应用
(一)字符串的访问
直接使用 字符串名[下标] 的方式进行访问。
s = "Hello Python!"
print(s[0])
print(s[-1])
(二)字符串的截取
字符串的截取与列表、元组的截取没有什么差别,详细可参考列表那一章。
(三)其他通用的操作
-
len():获取字符串长度
-
in:检查某一个字符或字符串是否包含在字符串中
s = "Hello" print('H' in s) print('Hel' in s) print('A' in s) -
max():求字符串中Unicode编码最大的元素(数字 < 大写字母 < 小写字母)
-
min():求字符串中Unicode编码最小的元素(数字 < 大写字母 < 小写字母)
-
+:将两个字符串连接在一起
-
*:将字符串重复相应的次数
-
index():查找某个元素在字符串中第一次出现的位置,用法同列表的index()
s = "Hello" print(s.index("l")) print(s.index("el")) -
count():统计某个字符或者字符串在整个字符串中出现的次数,用法同列表的count()
s = "Hello" print(s.count("l")) print(s.count("ll")) -
sorted():由于字符串也是不可变序列,所以不可以使用sort()进行排序
三、字符串特有的相关操作
(一)Python中的转义字符
Python中的字符串是用引号引用起来的,但是我们有时候需要输出一些特殊的字符,比如引号、缩进换行等,为了更好地实现这些功能,大部分编程语言在字符串中都有转义字符。
Python中的转义字符使用反斜杠 \ 来表示,转义字符有很多,常用的以下几种:
| 转义符 | 描述 | 案例 |
|---|---|---|
| \\ | 反斜杠 | print('\\') 将输出\ |
| \' | 单引号 | print('\'') 将输出' |
| \" | 双引号 | print('\"') 将输出" |
| \b | 退格键 | print('Hello\bWorld!') 将输出Hello World! |
| \n | 换行 | print('Hello\nWorld!') 将输出Hello World! |
(二)格式化输出
Python支持格式化输出字符串,格式化输出的本质就是两个步骤:
① 使用特定的符号在原始字符串中进行占位
② 将变量或字面量填充到所占的位置中
格式化输出有三种方式:%格式化输出、format格式化输出、f-string格式化输出
-
%格式化输出
在Python中,%格式化输出要求比较严格,要求元素的数量和数据类型必须一一对应。常用的%格式化输出形式由以下几种:
-
%d:格式化整数,如果d前面有数字,则代表该整数所要占的位置
print("张三今年%d岁了" %18) print("张三今年%4d岁了" %18) # 18的前面有3个空格 -
%f:格式化输出浮点数,%f可以由两个参数,有小数点隔开。比如 %3.2f,小数点前面的数字代表整个小数的占位数量,如果数位不够,则用空格在前面补齐;小数点后面的数字代表小数位数,如果小数位数不够,则用0补齐。
print("3.1415926保留两位小数为: %.2f" %3.14) print("有一个数是: %10.5f" %1.2) # 1的前面有3个空格,整个小数一共10个字符 -
%s:格式化字符串,如果前面有数字,则代表字符串的长度,。如果字符串长度超出了该数字,则显示全部字符串;如果没有超出,则在字符串前面用空格补齐。
print("张三喜欢的科目是%s" %"数学和英语") print("张三喜欢的科目是%2s" %"数学和英语") print("张三喜欢的科目是%10s" %"数学和英语") # 前面有5个空格补全值得注意的是%s同样支持格式化整数,用法和%d相同。
print("张三今年%s岁了" %18) print("张三今年%4s岁了" %18) # 18的前面有3个空格
%格式化输出可以混合使用,但是每个%对应一个内容,必须用元组意义对应标注出来。
print("我叫%s, 今年%d岁了, 我的身高是%.2fm" %('张三', 18, 1.780)) -
-
format格式化化输出
format格式化输出常用的有两种格式:
-
使用format后面的元组索引位置格式
print("我叫{0}, 今年{1}岁了, 我的身高是{2}m".format('张三', 18, 1.78)) -
使用命名方式,给每个需要格式化的位置命名,然后在format中进行变量赋值
print("我叫{name}, 今年{age}岁了, 我的身高是{height}m".format(name='张三', age=18, height=1.78))
-
-
f-string格式化输出
f-string是Python3.6之后新增的一种格式化输出方式,它将格式化输出的两个步骤:占位和填充,合并成了一个操作。
使用f-string时,要在字符串的引号前加上字母f,然后将变量直接填入占位符{}中
# 可以使用变量 name = '张三'; age=18; height=1.78 print(f"我叫{name}, 今年{age}岁了, 我的身高是{height}m") # 也可以直接赋值 print(f"我叫{'张三'}, 今年{18}岁了, 我的身高是{1.78}m")
(三)split()和join()
split()和join是一对相反的操作,split是将字符串分割并转换为列表;而join则是将列表连接为字符串。
-
split()
- 格式:
str_name.split(separator, num) - 参数:str_name代表字符串名;separator代表分割符;num代表分割次数,默认分割所有
- 作用:将一个完整的字符串使用分割符分割成字符串列表
fruits = "苹果, 香蕉, 桃子, 西瓜" fruits_list = fruits.split(",") # 以逗号,为分割符,将字符串分割并转换成列表 print(fruits_list) url = "www.baidu.com" url_list = url.split(".") # 以点号.为分割符 print(url_list) url = "www.baidu.com" url_list = url.split(".", 1) # 以点号.为分割符,并且只分割一次 print(url_list) - 格式:
-
join()
- 格式:separator.join(sequence)
- 参数:separator代表分隔符;sequence要连接的元素序列(这里一般就是列表)。
- 作用:将列表结合为字符串
fruits_list = ["苹果", "香蕉", "桃子", "西瓜"] fruits = ",".join(fruits_list) print(fruits) url_list = ["www", "baidu", "com"] url = ".".join(url_list) print(url)

浙公网安备 33010602011771号