1. 字符串介绍
写法
- 单引号:
'允许包含有 "双" 引号'
- 双引号:
"允许包含有 '单' 引号"
。 - 三重引号:
'''三重单引号'''
,"""三重双引号"""
1. # -*- coding: utf-8 -*- 2. # @Time : 2021/1/24 3. # @Author : 大海 4. 5. # 单引号写法 6. a = 'a' 7. 8. # 双引号写法,可包含单引号 9. b = "b" 10. c = "'c'" 11. 12. # 三引号 13. d = '''d''' 14. e = """e"""
2. 字符串方法
2.1 格式化字符串
str.
format
(*args, **kwargs):执行字符串格式化操作。 调用此方法的字符串可以包含字符串字面值或者以花括号{}
括起来的替换域。 每个替换域可以包含一个位置参数的数字索引,或者一个关键字参数的名称。 返回的字符串副本中每个替换域都会被替换为对应参数的字符串值。
1. # -*- coding: utf-8 -*- 2. # @Time : 2021/1/24 3. # @Author : 大海 4. 5. # 不设置指定位置,按默认顺序 6. text = "{},我是测试小白,{}" 7. print(text.format("大家好", "很高兴认识大家")) 8. 9. # 设置指定位置 10. text1 = "{0},我是测试小白,{1}" 11. print(text1.format("大家好", "很高兴认识大家")) 12. 13. text2 = "网站名:{name}, 地址 {url}" 14. print(text2.format(name="小白的博客", url="https://blog.csdn.net/IT_heima")) 15. 16. # 通过字典设置参数 17. site = {"name": "小白的博客", "url": "https://blog.csdn.net/IT_heima"} 18. print("网站名:{name}, 地址 {url}".format(**site)) 19. 20. # 数字格式化 21. num = 3.1415926 22. print("{:.2f}".format(num))
数字格式化
数字 | 格式 | 输出 | 描述 |
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:>10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
2.2 拼接字符串
str.
join
(iterable):返回一个由 iterable 中的字符串拼接而成的字符串。
1. # -*- coding: utf-8 -*- 2. # @Time : 2021/1/24 3. # @Author : 大海 4. 5. list_one = ['h', 'e', 'l', 'l', 'o'] 6. print(''.join(list_one)) 7. print(','.join(list_one)) # 以逗号拼接
2.3 分割字符串
str.
split
(sep=None, maxsplit=-1):返回一个由字符串内单词组成的列表,使用 sep 作为分隔字符串。 如果给出了 maxsplit,则最多进行 maxsplit 次拆分(因此,列表最多会有maxsplit+1
个元素)。 如果 maxsplit 未指定或为-1
,则不限制拆分次数(进行所有可能的拆分)
1. # -*- coding: utf-8 -*- 2. # @Time : 2021/1/24 3. # @Author : 大海 4. 5. text1 = '1,2,3' 6. print(text1.split(',')) 7. 8. text2 = '1,2,3' 9. print(text2.split(',', maxsplit=1)) 10. 11. text3 = '1,2,,3' 12. print(text3.split(',')) 13. 14. text3 = '1,2,3' 15. print(text3.split(','))
2.4 其他常用方法
str.
capitalize
():返回原字符串的副本,其首个字符大写,其余为小写str.casefold
() :返回原字符串消除大小写的副本。 消除大小写的字符串可用于忽略大小写的匹配。str.center
(width[, fillchar]):返回长度为 width 的字符串,原字符串在其正中。 使用指定的 fillchar 填充两边的空位(默认使用 ASCII 空格符)。 如果 width 小于等于len(s)
则返回原字符串的副本str.count
(sub[, start[, end]]):返回子字符串 sub 在 [start, end] 范围内非重叠出现的次数。 可选参数 start 与 end 会被解读为切片表示法str.encode
(encoding="utf-8", errors="strict"):返回原字符串编码为字节串对象的版本。 默认编码为'utf-8'
str.endswith
(suffix[, start[, end]]):如果字符串以指定的 suffix 结束返回True
,否则返回False
。 suffix 也可以为由多个供查找的后缀构成的元组。 如果有可选项 start,将从所指定位置开始检查。 如果有可选项 end,将在所指定位置停止比较。str.find
(sub[, start[, end]]):返回子字符串 sub 在s[start:end]
切片内被找到的最小索引。 可选参数 start 与 end 会被解读为切片表示法。 如果 sub 未被找到则返回-1
str.index
(sub[, start[, end]]):类似于find()
,但在找不到子类时会引发ValueError
str.
isalnum
():如果字符串中的所有字符都是字母或数字且至少有一个字符,则返回True
, 否则返回False
。str.
lower
():返回原字符串的副本,其中所有区分大小写的字符 均转换为小写str.
upper
():返回原字符串的副本,其中所有区分大小写的字符均转换为大写str.
strip
([chars]):返回原字符串的副本,移除其中的前导和末尾字符。 chars 参数为指定要移除字符的字符串。 如果省略或为None
,则 chars 参数默认移除空格符。
1. # -*- coding: utf-8 -*- 2. # @Time : 2021/1/24 3. # @Author : 大海 4. 5. text1 = 'hello world' 6. print(text1.capitalize()) # Hello world 7. 8. text2 = 'Hello World' 9. print(text2.casefold()) # hello world 10. 11. print(text1.center(20)) 12. print(text1.center(20, '*')) # ****hello world***** 13. print(text1.center(5)) # hello world 小于原字符串长度,返回原字符串 14. 15. print(text1.count('l')) # 3 16. print(text1.count('l', 3)) # 2 索引从3开始 17. 18. print(text2.encode()) # b'Hello World' 19. 20. print(text1.endswith('d')) 21. print(text1.endswith('l')) 22. print(text1.endswith(('l', 'd'))) # 多个查找后缀的元组 23. print(text1.endswith('l', 0, 4)) # 查找索引 0-4,不包含索引4 24. 25. print(text1.find('l')) # 返回l的最小索引 26. print(text1.find('l', 5)) # 从索引5到最后查找 27. print(text1.find('g')) # 未找到返回-1 28. 29. print(text1.index('l')) # 返回l的最小索引 30. # print(text1.index('g')) # 未找到抛异常 ValueError 31. 32. text3 = 'python2' 33. text4 = 'hello_world' 34. print(text3.isalnum()) 35. print(text4.isalnum()) 36. 37. text5 = 'HELLO WORLD' 38. print(text5.lower()) 39. print(text1.upper()) 40. 41. text6 = ' hello ' 42. text7 = '&hello' 43. print(text6.strip()) 44. print(text6.strip('& ')) # 去除多个条件