字符串——str的定义:test = "zizaijiapu"
特点:1. 字符串是可迭代对象;
2. 字符串中各元素是有序的;
3. 字符串一经创建,其内容值不可修改。
1. 查看变量数据类型
1 a = 11 2 b = "zazaijiapu" 3 print(type(a),type(b)) 4 """" 5 运行结果:<class 'int'> <class 'str'> 6 结果分析:变量a的数据类型为int;变量b的数据类型为str 7 """
2. 将字符串转换为任意进制整数
1 a = "18" 2 b1 = int(a) 3 b2 = int(a, base=16) 4 print(b1, b2) 5 """ 6 运行结果:18 24 7 结果分析:其中base形参用于指定转换后整数的进制数,默认为十进制 8 """
3. 获取字符串中指定索引位置处的元素值
1 test = "zizaijiapu" 2 v1 = test[3] 3 v2 = test[0:4] 4 print(v1,v2) 5 """ 6 运行结果:a ziza 7 结果分析:
将源字符串中索引位置index=3处的字符元素赋值给变量v1 8 将源字符串中索引位置index位于[0,4)之间的子串赋值给变量v2 9 """
4. 依次顺序查看字符串中的各字符元素
1 test = "wo" 2 for item in test: 3 print(item) 4 """ 5 运行结果: 6 w 7 o 8 结果分析:按照字符串的索引顺序依次输出各字符元素 9 """
5. 统计字符串中字符元素个数
1 test = "zizaijiapu" 2 print(len(test)) 3 """ 4 运行结果:10 5 结果分析:源字符串由10个字符元素构成 6 """
6. 统计子串在字符串中出现的次数
1 test = "alexalex" 2 print(test.count("le")) 3 """ 4 运行结果:2 5 结果分析:子串"le"在源字符串中共出现了2次 6 """
7. 查看字符串中子串开始出现的索引位置
1 test = "zizaizaijiapu" 2 print(test.find("ai")) 3 print(test.find("ai",4,8)) 4 """ 5 运行结果: 6 3 7 6 8 结果分析: 9 在不指定源字符串查找索引index范围的情况下,默认返回子串"ai"首次出现的索引位置; 10 指定源字符串查找索引index范围[4,8)时,返回子串"ai"在该范围内首次出现的索引位置 11 """
8. 调整字符串中首字母为大写形式
1 test = "zizai jiapu" 2 print(test.capitalize()) 3 """ 4 运行结果:Zizai jiapu 5 结果分析:将源字符串中的首字母"z"调整为大写形式,其他字母大小写形式不变 6 """
9. 调整字符串中所有小写字母为大写形式
1 test = "ZiZaiJiaPu" 2 print(test.upper()) 3 """ 4 运行结果:ZIZAIJIAPU 5 结果分析:将源字符串中所有的小写字母转换为大写形式 6 """
10. 调整字符串中所有大写字母为小写形式
1 test = "ZiZaiJiaPu" 2 print(test.casefold()) 3 print(test.lower()) 4 """ 5 运行结果: 6 zizaijiapu 7 zizaijiapu 8 结果分析:将源字符串中所有的大写字母转换为小写形式;两者所不同的是,前者还可以完成其他语言中字母的大小写形式转换 9 """
11. 实现字符串中大小写字母的相互转换
1 test = "ZiZaiJiaPu" 2 print(test.swapcase()) 3 """ 4 运行结果:zIzAIjIApU 5 结果分析:将源字符串中所有大写字母转换为小写形式,同时将所有小写字母转换为大写形式 6 """
12. 将字符串转换为标题型书写格式
1 test = "zi zai jia pu" 2 print(test.title()) 3 """ 4 运行结果:Zi Zai Jia Pu 5 结果分析:将源字符串中每个单词的首字母转换为大写形式 6 """
13. 在字符串各字符间插入指定形式的分隔符
1 test = "zizaijiapu" 2 v = "_".join(test) 3 print(v) 4 """ 5 运行结果:z_i_z_a_i_j_i_a_p_u 6 结果分析:在源字符串中每个字符间插入分隔符"_" 7 """
14. 在各字符串间插入指定分隔符后打印输出(该语句不能赋予其他变量)
1 print("root","X","0","0", sep=":") 2 """ 3 运行结果:root:X:0:0 4 结果分析:在源字符串间插入分隔符":"后输出。特别说明,该语句只用于输出显示,无法赋值予其他变量 5 """
15. 将字符串中各占位符替换为指定字符
1 test = "my name is {name},i am {age} years old" 2 v = test.format(name="alex",age=18) 3 print(v) 4 """ 5 运行结果:my name is alex,i am 18 years old 6 结果分析:将源字符串中的占位符{name}、{age}分别替换为alex、18 7 """
16. %字符串的替换与拼接
1 test = "i am %s, my hobby is %s, class is %d, ranking is %.3f%%" %("ljp","coding",18,1.04536829) 2 print(test) 3 """ 4 运行结果:i am ljp, my hobby is coding, class is 18, ranking is 1.045% 5 结果分析:将"%s"分别替换为"ljp""coding",将"%d"替换为18,将"%.3f"替换为1.04536829并保留3位小数,"%%"表示打印显示百分号,源字符串中其他字符保持不变 6 """
17. 字符串中各字符之间的管道定义与替换
1 test = "zizaijiapu" 2 m = str.maketrans("zi","12") 3 test_new = test.translate(m) 4 print(test_new) 5 """ 6 运行结果:121a2j2apu 7 结果分析:将源字符串中字符"z"、"i"全部替换为"1"、"2" 8 """
18. 字符串中子串之间的一一对应替换
1 test = "alexalex" 2 v = test.replace("ex","bbb",2) 3 print(v) 4 """ 5 运行结果:albbbalbbb 6 结果分析:在源字符串中,将前2个子串"ex"替换为"bbb",其他字符保持不变 7 """
19. 按照指定变化步长创建连续“数字型”字符
1 test = range(3) 2 for item in test: 3 print(item) 4 """ 5 运行结果: 6 0 7 1 8 2 9 结果分析:在创建连续字符时,默认起始字符为"0",默认变化步长为1 10 """
1 test = range(8,2,-2) 2 for item in test: 3 print(item) 4 """ 5 运行结果: 6 8 7 6 8 4 9 结果分析:以"8"为起始字符,以"2"为终止字符,以"-2"为变化步长,创建连续字符 10 """
20. 去除字符串中左边空格
1 test = " zizaijiapu " 2 v1 = test.lstrip() #去除字符串中左边空格 3 v2 = test.rstrip() #去除字符串中右边空格 4 v3 = test.strip() #去除字符串中左右两边空格 5 print(v1) 6 print(v2) 7 print(v3) 8 """ 9 运行结果: 10 zizaijiapu 11 zizaijiapu 12 zizaijiapu 13 结果分析:去除源字符串中对应位置的空格 14 """
注:还可以使用该功能去除字符串中对应位置的指定字符,分别为:test.lstrip("x")、test.rstrip("x")、test.strip("x")
21. 增加字符串长度,并用指定字符填充空白位置
1 test = "zizaijiapu " 2 v1 = test.ljust(20,"*") #源字符串左对齐,"*"填充空白位置 3 v2 = test.rjust(20,"*") #源字符串右对齐,"*"填充空白位置 4 v3 = test.center(20,"*") #源字符串居中,"*"填充空白位置 5 print(v1) 6 print(v2) 7 print(v3) 8 """ 9 运行结果: 10 zizaijiapu ********* 11 *********zizaijiapu 12 ****zizaijiapu ***** 13 结果分析:按照不同对齐方式将源字符串移动到相应位置,长度增加后的空白位置用字符"*"填充 14 """
22. 将字符串按照指定字符个数的方式拆分
1 test = "zi zai jia pu " 2 v = test.expandtabs(10) 3 print(v) 4 """ 5 运行结果: 6 zi zai 7 jia pu 8 结果分析:将源字符串按照每10个字符为一个单元进行分割,当遇到制表符或换行符且字符个数不够时,用空格填充显示 9 """
23. 以指定字符为基准,将字符串分割成3段
1 test = "zizaijiapu" 2 v1,v2,v3 = test.partition("a") #以左起第一个指定字符为基准,将源字符串分割成3段 3 print(v1,v2,v3) 4 v1,v2,v3 = test.rpartition("a") #以右起第一个指定字符为基准,将源字符串分割成3段 5 print(v1,v2,v3) 6 """ 7 运行结果: 8 ziz a ijiapu 9 zizaiji a pu 10 结果分析:前者以左边第一个"a"进行源字符串的分割,后者以右边第一个"a"进行源字符串的分割 11 """
24. 以指定字符为基准将字符串分割成若干段,并删除指定字符
1 test = "zizaijiapuduguqiubaifengaqingyang" 2 v1 = test.split("a",4) #左起遍历字符串,以指定字符"a"为基准,将源字符串分割成4段 3 v2 = test.rsplit("a",4) #右起遍历字符串,以指定字符"a"为基准,将源字符串分割成4段 4 print(v1) 5 print(v2) 6 """ 7 运行结果: 8 ['ziz', 'iji', 'puduguqiub', 'ifeng', 'qingyang'] 9 ['zizaiji', 'puduguqiub', 'ifeng', 'qingy', 'ng'] 10 结果分析: 11 前者左起遍历字符串,每遇到字符"a"便将源字符串进行拆分,并删除"a"; 12 后者右起遍历字符串,每遇到字符"a"便将源字符串进行拆分,并删除"a"; 13 """
25. 根据换行符分割字符串
1 test = "zizai jiapu" 2 v1 = test.splitlines(True) 3 v2 = test.splitlines(False) 4 print(v1) 5 print(v2) 6 """ 7 运行结果: 8 ['zizai ', 'jiapu'] 9 ['zizai', 'jiapu'] 10 结果分析:以换行符为参考分割源字符串。当传入参数为"True"时,保留换行符;当传入参数为"False"时,删除换行符 11 """
26. 判断字符串中字符是否全为数字类型
1 test1 = "1122二②33" 2 test2 = "1122②33" 3 test3 = "112233" 4 print(test1.isnumeric()) 5 print(test2.isdigit()) 6 print(test3.isdecimal()) 7 """ 8 运行结果: 9 True 10 True 11 True 12 结果分析:当源字符串中字符全部为数字类型时,返回True,否则返回False。三条语句所不同的是对于字符"数字类型"的定义范围不同 13 """
判断字符串中字符是否全为字母类型
1 test = "AaBbCc" 2 print(test.isalpha()) 3 """ 4 运行结果:True 5 结果分析:当源字符串中字符全部为字母类型时,返回True,否则返回False。 6 """
判断字符串中字符是否全为数字或字母类型
1 test = "1一①Aa2二②Bb三3③Cc" 2 print(test.isalnum()) 3 """ 4 运行结果:True 5 结果分析:当源字符串中字符全部为数字或字母类型时,返回True,否则返回False。 6 """
27. 判断字符串中字符是否全为小写字母
1 test = "zizaijiapu" 2 print(test.islower()) 3 """ 4 运行结果:True 5 结果分析:当源字符串中字符全部为小写字母时,返回True,否则返回False。 6 """
判断字符串中字符是否全为大写字母
1 test = "ZIZAIJIAPU" 2 print(test.isupper()) 3 """ 4 运行结果:True 5 结果分析:当源字符串中字符全部为大写字母时,返回True,否则返回False。 6 """
28. 判断字符串是否以指定的子串内容开始
1 test = "zizaijiapu" 2 print(test.startswith("zi")) #判断源字符串是否以"zi"开始 3 print(test.startswith("ai",3,7)) #判断源字符串中索引index位置位于[3,7)之间的子串是否以"ai"开始 4 """ 5 运行结果: 6 True 7 True 8 结果分析:当源字符串中对应位置范围内的子串以指定内容的子串开始时,返回True,否则返回False。 9 """
判断字符串是否以指定的子串内容结束
1 test = "zizaijiapu" 2 print(test.endswith("pu")) #判断源字符串是否以"zpu结束 3 print(test.endswith("ji",3,7)) #判断源字符串中索引index位置位于[3,7)之间的子串是否以"ji"结束 4 """ 5 运行结果: 6 True 7 True 8 结果分析:当源字符串中对应位置范围内的子串以指定内容的子串结束时,返回True,否则返回False。 9 """
29. 判断字符串是否满足标识符命名规则
1 test = "zi_11_zai_22" 2 print(test.isidentifier()) 3 """ 4 运行结果:True 5 结果分析:当源字符串满足标识符命名规则(即由数字、字母和下划线组成,并且以字母或下划线开始)时,返回True,否则返回False。 6 """
30. 判断字符串是否满足标题书写格式
1 test = "Zi Zai Jia Pu" 2 print(test.istitle()) 3 """ 4 运行结果:True 5 结果分析:当源字符串满足标题书写格式(即字符串中每个单词首字母大写)时,返回True,否则返回False。 6 """