04-Python-字符串str介绍

简介: 04-Python-字符串str介绍

1. 字符串介绍

  • 介绍:在 Python 中处理文本数据是使用 str 对象,也称为 字符串。 字符串是由 Unicode 码位构成的不可变 序列

   写法

  • 单引号: '允许包含有 "双" 引号'
  • 双引号: "允许包含有 '单' 引号"
  • 三重引号: '''三重单引号''', """三重双引号"""
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] 范围内非重叠出现的次数。 可选参数 startend 会被解读为切片表示法
  • str.encode(encoding="utf-8", errors="strict"):返回原字符串编码为字节串对象的版本。 默认编码为 'utf-8'
  • str.endswith(suffix[, start[, end]]):如果字符串以指定的 suffix 结束返回 True,否则返回 Falsesuffix 也可以为由多个供查找的后缀构成的元组。 如果有可选项 start,将从所指定位置开始检查。 如果有可选项 end,将在所指定位置停止比较。
  • str.find(sub[, start[, end]]):返回子字符串 subs[start:end] 切片内被找到的最小索引。 可选参数 startend 会被解读为切片表示法。 如果 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('& '))  # 去除多个条件


相关文章
|
6天前
|
存储 算法 Python
【亮剑】如何在 Python 中查找两个字符串之间的差异位置?
【4月更文挑战第30天】本文探讨了Python中查找两个字符串差异位置的方法。首先,通过内置函数和基本字符串操作,可以逐个字符比较找到第一个不同位置。其次,利用`difflib`库的`SequenceMatcher`能获取更详细的差异信息。最后,通过实现Levenshtein距离算法,可以计算字符串间的最小编辑距离。根据需求选择合适的方法,能提升代码效率和可读性。
|
7天前
|
Go 索引 Python
非常全面的python字符串相关处理方法(二)
非常全面的python字符串相关处理方法(二)
|
7天前
|
存储 索引 Python
非常全面的python字符串相关处理方法(一)
非常全面的python字符串相关处理方法(一)
|
10天前
|
人工智能 索引 Python
Python 字符串格式化输出
Python 字符串格式化输出
8 0
|
11天前
|
Python
Python 字符串格式化指南
本文介绍了Python中的三种字符串格式化方法:1) 使用 `%` 操作符,如 `&quot;%s %d&quot; % (var1, var2)`;2) `str.format()` 方法,如 `&quot;{} {}&quot;.format(var1, var2)`;3) Python 3.6+ 的 f-strings,如 `f&quot;{var1} {var2}&quot;`。每种方法都支持变量插入和格式控制,如指定小数位数。选择合适的方法能提升代码可读性和效率。
9 0
|
11天前
|
API Python
[AIGC] Python字符串常用API介绍
[AIGC] Python字符串常用API介绍
|
12天前
|
机器学习/深度学习 存储 数据挖掘
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
|
12天前
|
存储 Python
Python列表转字符串
Python列表转字符串
9 0
|
13天前
|
XML 数据格式 Python
【代码片段】【Python】XML 字符串格式化打印
【代码片段】【Python】XML 字符串格式化打印
13 0
|
13天前
|
Python
python html(文件/url/html字符串)转pdf
python html(文件/url/html字符串)转pdf
9 0