python第三节:Str字符串类型(5)

发布时间:2024年01月15日

str.lower()

返回原字符串的副本,其所有区分大小写的字符均转换为小写。

例子:

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

str.lstrip([chars])

返回原字符串的副本,移除其中的前导字符。?chars?参数为指定要移除字符的字符串。 如果省略或为?None,则?chars?参数默认移除空白符。 实际上?chars?参数并非指定单个前缀;而是会移除参数值的所有组合。

例子:

str1 = '?? spacious?? '.lstrip()

str2 = 'www.example.com'.lstrip('cmowz.')



print(str1)

print(str2)

结果:

spacious??

example.com

str.removeprefix(prefix,?/)

该方法将删除单个前缀字符串,而不是全部给定集合中的字符。?prefix作为一个整体看。

如果字符串以?prefix?字符串开头,返回?string[len(prefix):]。 否则,返回原始字符串的副本。

例子:

str1 = 'TestHook'.removeprefix('Test')

str2 = 'BaseTestCase'.removeprefix('Test')



print(str1)

print(str2)

结果:

Hook

BaseTestCase

str.removesuffix(suffix,?/)

去掉尾部的字符串。如果字符串以?suffix?字符串结尾,并且?suffix?非空,返回?string[:-len(suffix)]。 否则,返回原始字符串的副本。

例子:

str1 = 'MiscTests'.removesuffix('Tests')

str2 = 'TmpDirMixin'.removesuffix('xi')



print(str1)

print(str2)

结果:

Misc

TmpDirMixin

static?str.maketrans(x[,?y[,?z]])

这是一个静态方法。

当只传入一个参数时,该参数必须是一个字典。该字典的key必须是unicode的码位序号(int)或字符(长度为1的string),value必须是Unicode 码位序号或(任意长度的)字符串或 None?

例子1:

#? key是字符串,value是数字或者字符串

dict0 = {'x': '测试1', 'y': 2, 'z': 3}

print(str.maketrans(dict0))

#? keyvalue都是数字

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 9991 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 9991 2 3 unicode字符集中分别是49 50 51

# keyvalue不一一对应时,报错

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 9991 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 9991 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 9991 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

文章来源:https://blog.csdn.net/buw369521/article/details/135601606
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。