返回原字符串的副本,其所有区分大小写的字符均转换为小写。
例子:
str1 = 'ABC'
str2 = 'AnCD'
str3 = '字符A'
str4 = '12'
str5 = 'A43'
str6 = '字符aCD'
print(str1.lower())
print(str2.lower())
print(str3.lower())
print(str4.lower())
print(str5.lower())
print(str6.lower())
结果:
abc
ancd
字符a
12
a43
字符acd
返回原字符串的副本,移除其中的前导字符。?chars?参数为指定要移除字符的字符串。 如果省略或为?None,则?chars?参数默认移除空白符。 实际上?chars?参数并非指定单个前缀;而是会移除参数值的所有组合。
例子:
str1 = '?? spacious?? '.lstrip()
str2 = 'www.example.com'.lstrip('cmowz.')
print(str1)
print(str2)
结果:
spacious??
example.com
该方法将删除单个前缀字符串,而不是全部给定集合中的字符。?把prefix作为一个整体看。
如果字符串以?prefix?字符串开头,返回?string[len(prefix):]。 否则,返回原始字符串的副本。
例子:
str1 = 'TestHook'.removeprefix('Test')
str2 = 'BaseTestCase'.removeprefix('Test')
print(str1)
print(str2)
结果:
Hook
BaseTestCase
去掉尾部的字符串。如果字符串以?suffix?字符串结尾,并且?suffix?非空,返回?string[:-len(suffix)]。 否则,返回原始字符串的副本。
例子:
str1 = 'MiscTests'.removesuffix('Tests')
str2 = 'TmpDirMixin'.removesuffix('xi')
print(str1)
print(str2)
结果:
Misc
TmpDirMixin
这是一个静态方法。
当只传入一个参数时,该参数必须是一个字典。该字典的key必须是unicode的码位序号(int)或字符(长度为1的string),value必须是Unicode 码位序号或(任意长度的)字符串或 None?
例子1:
#? key是字符串,value是数字或者字符串
dict0 = {'x': '测试1', 'y': 2, 'z': 3}
print(str.maketrans(dict0))
#? key和value都是数字
dict1 = {97: 1, 98: 2, 99: 3}
print(str.maketrans(dict1))
#? key是长度为1的字符串或者数字,value是空或者none
dict2 = {'n': ' ', '0': '', 0: None}
print(str.maketrans(dict2))
#? key是字符串但长度不是1的时候,报错
dict0 = {'xyz': '测试1', 'y': 2, 'z': 3}
print(str.maketrans(dict0))
结果:
Traceback (most recent call last):
? File "D:\pythonProject\test\test20240110.py", line 11, in <module>
??? print(str.maketrans(dict0))
????????? ^^^^^^^^^^^^^^^^^^^^
ValueError: string keys in translate table must be of length 1
{120: '测试1', 121: 2, 122: 3}
{97: 1, 98: 2, 99: 3}
{110: ' ', 48: '', 0: None}
当传入2个参数时,常用于创建映射转换表,返回一个字典,将参数1映射到参数2。
这种映射必须满足三个条件1是字符串2长度相等3一一对应。
例子2:
# a b c 在unicode字符集中分别是97 98 999;1 2 3 再unicode字符集中分别是49 50 51
in_table1 = 'abc'
out_table1 = '123'? # ord('1')=49, ord('1')=50, ord('1')=51
print(str.maketrans(in_table1, out_table1))
in_table2 = 'abc'
out_table2 = '122'? # ord('1')=49, ord('1')=50, ord('1')=51
print(str.maketrans(in_table2, out_table2))
# key重复时,只保留最后一个key对应的值
in_table3 = 'bbb'
out_table3 = '231'
print(str.maketrans(in_table3, out_table3))
结果:
{97: 49, 98: 50, 99: 51}
{97: 49, 98: 50, 99: 50}
{98: 49}
例子3:
# a b c 在unicode字符集中分别是97 98 999;1 2 3 再unicode字符集中分别是49 50 51
# key和value不一一对应时,报错
in_table1 = 'ab'
out_table1 = '123'? #
print(str.maketrans(in_table1, out_table1))
结果:
Traceback (most recent call last):
? File "D:\pythonProject\test\test20240110.py", line 6, in <module>
??? print(str.maketrans(in_table1, out_table1))
????????? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: the first two maketrans arguments must have equal length
例子4:
# a b c 在unicode字符集中分别是97 98 999;1 2 3 再unicode字符集中分别是49 50 51
# 当key是字符串,value是数字时,报错
in_table4 = 'abc'
out_table4 = 231
print(str.maketrans(in_table4, out_table4))
结果:
Traceback (most recent call last):
? File "D:\pythonProject\test\test20240110.py", line 5, in <module>
??? print(str.maketrans(in_table4, out_table4))
????????? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: maketrans() argument 2 must be str, not int
例子5:
# a b c 在unicode字符集中分别是97 98 999;1 2 3 再unicode字符集中分别是49 50 51
# key时数字,value是字符串时,报错
in_table5 = 123
out_table5 = 'a'
print(str.maketrans(in_table5, out_table5))
结果:
Traceback (most recent call last):
? File "D:\pythonProject\test\test20240110.py", line 5, in <module>
??? print(str.maketrans(in_table5, out_table5))
????????? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: first maketrans argument must be a string if there is a second argument
当传入3个参数时,前2个字符串按照规则正常映射,第3个参数必须是一个字符串,其中的字符将在结果中被映射到?None。
例子6:
# a b c 在unicode字符集中分别是97 98 999;1 2 3 再unicode字符集中分别是49 50 51
argument1 = 'abc'
argument2 = '123'
argument3 = 'xyz'
print(str.maketrans(argument1, argument2,argument3))
#? 当参数3不是字符串时,报错。
argument4=123
print(str.maketrans(argument1, argument2,argument4))
结果:
{97: 49, 98: 50, 99: 51, 120: None, 121: None, 122: None}
Traceback (most recent call last):
? File "D:\pythonProject\test\test20240110.py", line 8, in <module>
??? print(str.maketrans(argument1, argument2,argument4))
????????? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: maketrans() argument 3 must be str, not int