day02.1-字符串内置方法

字符串——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 """
原文地址:https://www.cnblogs.com/zizaijiapu/p/9991163.html