5.5 填充对齐 center()、ljust()、rjust()、zfill()
1、center()
方法
center() 方法返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
语法
string.center(length, character)
参数值
参数 | 描述 |
length | 必需。所返回字符串的长度。 |
character | 可选。填补两侧缺失空间的字符。默认是 " "(空格)。 |
实例
使用字母 “O” 作为填充字符:
txt = "banana" x = txt.center(20, "O") print(x)
OOOOOOObananaOOOOOOO
2、ljust()
方法
ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
语法
string.ljust(length, character)
参数值
参数 | 描述 |
length | 必需。所返回字符串的长度。 |
character | 可选。用于填充缺少空间(在字符串的右侧)的字符。默认值为 " "(空格)。 |
实例
使用字母 “O” 作为填充字符:
txt = "banana" x = txt.ljust(20, "O") print(x)
bananaOOOOOOOOOOOOOO
3、rjust()
方法
rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。
语法
string.rjust(length, character)
参数值
参数 | 描述 |
length | 必需。所返回字符串的长度。 |
character | 可选。用于填充缺失空间(在字符串的左侧)字符。默认值为 " "(空格)。 |
实例
使用字母 “O” 作为填充字符:
txt = "banana" x = txt.rjust(20, "O") print(x)
OOOOOOOOOOOOOObanana
4、zfill()
方法
zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。
语法
string.zfill(len)
参数值
参数 | 描述 |
len | 必需。数字,规定要删除的元素的位置。 |
实例
用零填充字符串,直到它们长为 10 个字符:
a = "hello" b = "welcome to my world" c = "10.000" print(a.zfill(10)) print(b.zfill(10)) print(c.zfill(10))
00000hello welcome to my world 000010.000
zfill() 方法在字符串的开头添加零(0),直到达到指定的长度。如果 len 参数的值小于字符串的长度,则不执行填充。
5.6 删除左/右指定字符 lstrip()、rstrip()、strip()
1、lstrip()
方法
lstrip() 方法用于截掉字符串左边的空格或指定字符。
语法
string.lstrip(characters)
参数值
参数 | 描述 |
characters | 可选。一组作为前导字符要删除的字符。 |
实例
删除前导字符:
txt = ",,,,,ssaaww.....banana" x = txt.lstrip(",.asw") print(x)
banana
2、rstrip()
方法
rstrip() 删除 string 字符串末尾的指定字符,默认为空白符,包括空格、换行符、回车符、制表符。
语法
string.rstrip(characters)
参数值
参数 | 描述 |
characters | 可选。一组作为结尾字符要删除的字符。 |
实例
删除结尾字符:
txt = "banana,,,,,ssaaww....." x = txt.rstrip(",.asw") print(x)
banan
3、strip()
方法
strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。
语法
string.strip(characters)
参数值
参数 | 描述 |
characters | 可选。一组字符,要删除的前导/尾随字符的字符。 |
实例
删除前导和尾随字符:
txt = ",,,,,rrttgg.....banana....rrr" x = txt.strip(",.grt") print(x)
banana
5.7 判断字符(串)
5.7.1 空白字符 isspace()
1、isspace()
方法
isspace() 方法检测字符串是否只由空白字符组成。
语法
string.isspace()
参数值
无参数
实例
txt = " s " x = txt.isspace() print(x)
False
如果字符串中的所有字符都是空格,则 isspace() 方法将返回 True,否则返回 False。
5.7.2 可打印 isprintable()
2、isprintable()
方法
isprintable() 方法检查文本中的所有字符是否可打印。
语法
string.isprintable()
参数值
无参数
实例
txt = "Hello!\nAre you #1?" x = txt.isprintable() print(x)
False
如果所有字符都是可打印的,则 isprintable() 方法返回 True,否则返回 False。不可打印的字符可以是回车和换行符。
5.7.3 标识符 isidentifier()
3、isidentifier()
方法
isidentifier() 方法检查字符串是否是有效标识符。
语法
string.isidentifier()
参数值
无参数
实例
a = "MyFolder" b = "Demo002" c = "2bring" d = "my demo" print(a.isidentifier()) print(b.isidentifier()) print(c.isidentifier()) print(d.isidentifier()
True True False False
如果字符串是有效标识符,则 isidentifier() 方法返回 True,否则返回 False。
如果字符串仅包含字母数字字母(a-z)和(0-9)或下划线(_),则该字符串被视为有效标识符。有效的标识符不能以数字开头或包含任何空格。
5.7.4 字母/数字 isalnum()
4、isalnum()
方法
isalnum() 方法检测字符串是否由字母和数字组成。
语法
string.isalnum()
参数值
无参数
实例
检查文本中的所有字符是否都是字母数字:
txt = "Company 12" x = txt.isalnum() print(x)
False
如果所有字符均为字母数字,即字母(a-z)和数字(0-9),则 isalnum() 方法返回 True。
非字母数字的例子:(space)!#%&? 等等。
5.7.5 字母/中文 isalpha()
5、isalpha()
方法
isalpha() 方法检测字符串是否只由字母或文字组成。
语法
string.isalpha()
参数值
无参数
实例
检查文本中的所有字符是否都是字母:
txt = "Company10" x = txt.isalpha() print(x)
False
如果所有字符都是字母(a-z),则 isalpha() 方法将返回 True。
非字母的字符例子:(space)!#%&? 等等。
5.7.6 数字 isdigit()、isnumeric()、isdecimal()
6.1、isdigit()
方法
isdigit() 方法检测字符串是否只由数字组成。
语法
string.isdigit()
参数值
无参数
实例
检查文本中的所有字符是否都是字母:
a = "\u0030" # unicode for 0 b = "\u00B2" # unicode for ² print(a.isdigit()) print(b.isdigit())
True True
如果所有字符都是数字,则 isdigit() 方法将返回 True,否则返回 False。
指数(例如²)也被视作数字。
6.2、isnumeric()
方法
isnumeric() 方法检测字符串是否只由数字组成,数字可以是: Unicode 数字,全角数字(双字节),罗马数字,汉字数字。
指数类似 ² 与分数类似 ½ 也属于数字。
语法
string.isnumeric()
参数值
无参数
实例
检查字符是否为数字:
a = "\u0030" # unicode for 0 b = "\u00B2" # unicode for ² c = "10km2" print(a.isnumeric()) print(b.isnumeric()) print(c.isnumeric())
True True False
如果所有字符均为数字(0-9),则 isumeric() 方法返回 True,否则返回 False。
指数(比如 ² 和 ¾)也被视为数字值。
6.3、isdecimal()
方法
isdecimal() 方法检查 unicode 对象中的所有字符是否都是小数。
语法
string.isdecimal()
参数值
无参数
实例
检查 unicode 中的所有字符是否都是小数:
a = "\u0030" # unicode for 0 b = "\u0047" # unicode for G print(a.isdecimal()) print(b.isdecimal())
True False
如果所有字符均为小数(0-9),则 isdecimal() 方法将返回 True。
此方法用于 unicode 对象。
5.8 格式字符串中指定值 format()、format_map()
1、format()
方法
format() 方法格式化指定的值,并将其插入字符串的占位符内,占位符使用大括号 {} 定义。
语法
string.format(value1, value2...)
参数值
参数 | 描述 |
value1, value2… | 必需。一个或多个应该格式化并插入字符串的值。值可以是数字,用于指定要删除的元素的位置。 这些值可以是用逗号分隔的值列表、键=值列表,或两者的组合。 这些值可以是任何数据类型。 |
占位符
可以使用命名索引 {price}、编号索引{0}、甚至空的占位符 {} 来标识占位符。
实例
使用不同的占位符值:
txt1 = "My name is {fname}, I'am {age}".format(fname="Bill", age=64) txt2 = "My name is {0}, I'am {1}".format("Bill", 64) txt3 = "My name is {}, I'am {}".format("Bill", 64) print(txt1) print(txt2) print(txt3)
My name is Bill, I'am 64 My name is Bill, I'am 64 My name is Bill, I'am 64
格式化类型
在占位符内,您可以添加格式化类型以格式化结果:
格式化类型 | 描述 |
:< | 左对齐结果(在可用空间内) |
:> | 右对齐结果(在可用空间内) |
:^ | 居中对齐结果(在可用空间内) |
:= | 将标志放置在最左侧 |
:+ | 使用加号指示结果是正数还是负数 |
:- | 负号仅用于负值 |
: | 使用空格在正数之前插入一个多余的空格(在负数之前使用减号) |
:, | 使用逗号作为千位分隔符 |
:_ | 使用下划线作为千位分隔符 |
:b | 二进制格式 |
:c | 将值转换为相应的 unicode 字符 |
:d | 十进制格式 |
:e | 科学格式,带有小写字母 E |
:E | 科学格式,带有大写字母 E |
:f | 定点数字格式 |
:F | 定点数字格式,以大写形式显示(将 inf 和 nan 显示为 INF 和 NAN) |
:g | 通用格式 |
:G | 通用格式(将大写 E 用作科学计数法) |
😮 | 八进制格式 |
:x | 十六进制格式,小写 |
:X | 十六进制格式,大写 |
:n | 数字格式 |
:% | 百分比格式 |
2、format_map()
方法
format_map() 方法格式化字符串中的指定值。
语法
str.format_map(mapping)
参数值
参数 | 描述 |
mapping | 字典类型的数据。 |
实例
str_a = '我是 {name} 老师 {gender} {age} 岁' dict_1 = {'name': 'pink', 'gender': '男', 'age': 21} print(str_a.format_map(dict_1))
我是 pink 老师 男 21 岁
5.9 拆分/截取字符串 split()、rsplit()、splitlines()
1、split()
方法
split() 通过指定分隔符从左侧对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。
语法
string.split(separator, max)
参数值
参数 | 描述 |
separator | 可选。规定分割字符串时要使用的分隔符。默认值为空白字符。 |
max | 可选。规定要执行的拆分数。默认值为 -1,即“所有出现次数”。 |
实例
- 使用逗号后跟空格作为分隔符,分割字符串:
txt = "hello, my name is Bill, I am 63 years old" x = txt.split(", ") print(x)
['hello', 'my name is Bill', 'I am 63 years old']
- 使用 # 号字符作为分隔符:
txt = "apple#banana#cherry#orange" x = txt.split("#") print(x)
['apple', 'banana', 'cherry', 'orange']
- 将字符串拆分为最多 2 个项目的列表:
txt = "apple#banana#cherry#orange" # 将 max 参数设置为 1,将返回包含 2 个元素的列表! x = txt.split("#", 1) print(x)
['apple', 'banana#cherry#orange']
split() 方法将字符串拆分为列表。
您可以指定分隔符,默认分隔符是任何空白字符。
**注释:**若指定 max,列表将包含指定数量加一的元素。
2、rsplit()
方法
rsplit() 通过指定分隔符从右侧对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。
语法
string.rsplit(separator, max)
参数值
参数 | 描述 |
separator | 可选。规定分割字符串时要使用的分隔符。默认值为空白。 |
max | 可选。指定要执行的拆分数。默认值为 -1,即“所有出现次数”。 |
实例
将字符串拆分为最多 2 个项目的列表:
txt = "apple, banana, cherry" # 将 max 参数设置为 1,将返回包含 2 个元素的列表! x = txt.rsplit(", ", 1) print(x)
['apple, banana', 'cherry']
rsplit() 方法从右侧开始将字符串拆分为列表。
如果未指定 “max”,则此方法将返回与 split() 方法相同的结果。
注释: 若指定 max,列表将包含指定数量加一的元素。
3、splitlines()
方法
splitlines() 按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
语法
string.splitlines(keeplinebreaks)
参数值
参数 | 描述 |
keeplinebreaks | 可选。规定是否应包含换行符(True)或不包含(False)。默认值不包含(False)。 |
实例
拆分字符串,但保留换行符:
txt = "Thank you for your visiting\nWelcome to China" x = txt.splitlines(True) print(x)
['Thank you for your visiting\n', 'Welcome to China']