kongzhagen

python数据类型之str用法

 

1、首字母大写

语法:S.capitalize() -> str

title = "today is a good day"
title_ca = title.capitalize()
print(title_ca)

结果:today is a good day

2、大写转小写

1 语法:S.casefold() -> str
2 
3 title = "TODAY is a GOOD day"
4 title_ca = title.casefold()
5 print(title_ca)

结果:Today is a good day

3、字符串居中

c = \'kong\'

ret = c.center(10,\'*\')
print(ret)

结果:***kong***

 4、字符串子串数量统计

S.count(sub[, start[, end]]) -> int

title = "today is a good day"
title_ca = title.count(\'y\',1,5)
print(title_ca)

结果:1

5、中文转UTF-8

S.encode(encoding=\'utf-8\', errors=\'strict\') -> bytes

zw = \'孔扎根\'
ut = zw.encode()
print(ut)

结果:b\'\xe7\xa9\xba\xe6\x89\x8e\xe6\xa0\xb9\'

6、字符串结束判断

S.endswith(suffix[, start[, end]]) -> bool

title = "TODAY is a GOOD day"
title_ca = title.endswith(\'day\')
print(title_ca)

结果:True

7、TAB转空格

S.expandtabs(tabsize=8) -> str
#默认是一个TAB转8个空格
title = "TODAY\tis\ta\tGOOD\tday"
title_ca = title.expandtabs()
print(title_ca)

结果:TODAY   is      a       GOOD    day

8、查找字符串的位置

 S.find(sub[, start[, end]]) -> int

title = "TODAY\tis\ta\tGOOD\tday"
title_ca = title.find(\'s\')
print(title_ca)

结果:7

9、字符串格式化

S.format(*args, **kwargs) -> str
#可传入元组或字典
title = "{}\tis\ta\t{day_type}\tday"
title_ca = title.format(\'TODAY\',day_type=\'GOOD\')
print(title_ca)

结果:TODAY    is    a    GOOD    day

10、字符串格式化,从字典输入(format_map)

S.format_map(mapping) -> str
#输入参数为字典,循环读字典中的列表
maping_name = {
    \'name\':[\'alex\',\'join\'],
    \'age\':[18,19]
}

for x in range(2):
    print(\'my name is {},and i is {} old\'.format(maping_name[\'name\'][x],maping_name[\'age\'][x]))

结果:
my name is alex,and i is 18 old
my name is join,and i is 19 old

11、字符串的索引位置

S.index(sub[, start[, end]]) -> int
#查找Y的索引位置,从0开始数
title = "TODAY\tis\ta\tGOOD\tday"
title_ca = title.index(\'Y\')
print(title_ca)

结果:4

12、字符串中至少有一个数字

S.isalnum() -> bool
#字符串不能有空格,否则失败
title = "22TODAY"
title_ca = title.isalnum()
print(title_ca)

结果:True

13、字符串中至少有一个字母

 S.isalpha() -> bool
#字符串不能有空格或TAB键
title = "22TODAY"
title_ca = title.isalnum()
print(title_ca)

结果:True

14、字符串是否为数值

num = "1" #unioncode
print(num.isdigit())
print(num.isdecimal())
print(num.isnumeric())
结果:
True
True
True

num = ""#全角
print(num.isdigit())
print(num.isdecimal())
print(num.isnumeric())
结果:
True
True
True

num = b"1"#byte
print(num.isdigit())
print(num.isdecimal())
print(num.isnumeric())
结果:
True
AttributeError: \'bytes\' object has no attribute \'isdecimal\'
AttributeError: \'bytes\' object has no attribute \'isnumeric\'

num = "IV"#罗马字符
print(num.isdigit())
print(num.isdecimal())
print(num.isnumeric())
结果:
False
False
False

num = ""#汉字
print(num.isdigit())
print(num.isdecimal())
print(num.isnumeric())
结果:
False
False
True

支持的字符: isdigit:支持 unioncode,全角,
byte,汉字 isdecimal:支持 unioncode,全角, isnumeric:支持 unioncode,全角,汉字
报错: isdigit不会报错,后两种在byte判断时会报错

 15、判断字符串是否为有效标识符(可做为函数名称)

#S.isidentifier() -> bool
t_code = \'test\'
print(t_code.isidentifier())
结果:返回True
t_code = \'23test\'
print(t_code.isidentifier())
结果:返回False

16、判断字符串是否全小写

#S.islower() -> bool
t_code = \'kongzhagen\'
print(t_code.islower())
结果:返回True
t_code = \'kongzHagen\'
print(t_code.islower())
结果:返回False

17、判断字符串是否全整型数字

#S.isnumeric() -> bool
t_code = \'123\'
print(t_code.isnumeric())
结果:返回True
t_code = \'123d\'
print(t_code.isnumeric())
结果:返回False
t_code = \'123.123\'
print(t_code.isnumeric())
结果:返回False

18、判断所有字符是否可打印

#S.isprintable() -> bool
t_code = \'123KKK\'
print(t_code.isprintable())
返回:True
t_code = \'\'
print(t_code.isprintable())
返回:True
t_code = \'KKK\n\t\'
print(t_code.isprintable())
返回:False

19、判断字符中是否全为空格

#S.isspace() -> bool
t_code = \'   \'
print(t_code.isspace())
结果:返回True
t_code = \'123 KKK\'
print(t_code.isspace())
结果:返回False

20、判断字符串是否为标题格式(首字母大写)

#S.istitle() -> bool
t_code = \'Today Is A Good Day\'
print(t_code.istitle())
结果:True
t_code = \'Today Is A Good day\'
print(t_code.istitle())
结果:False
t_code = \'TODAY IS\'
print(t_code.istitle())
结果:False

21、判断字符串是否全大写

#S.isupper() -> bool
t_code = \'Today Is A Good day\'
print(t_code.isupper())
结果:False
t_code = \'TODAY IS\'
print(t_code.isupper())
结果:True

22、字符串连接

#S.join(iterable) -> str
t_code = \'Today Is A Good Day\'
t1_code = \'.\'.join(t_code)
print(t1_code)
结果:T.o.d.a.y. .I.s. .A. .G.o.o.d. .D.a.y

23、左对齐,达不到指定长度,右则填充

#S.ljust(width[, fillchar]) -> str
t_code = \'Today Is A Good Day\'
print(t_code.ljust(22,\'*\'))
结果:Today Is A Good Day***

24、转小写

#S.lower() -> str
t_code = \'Today Is A Good Day\'
print(t_code.lower())
结果:today is a good day

25、左边去除指定字符,默认为空格

# S.lstrip([chars]) -> str
t_code = \'Today Is A Good Day\'
print(t_code.lstrip(\'T\'))
结果:oday Is A Good Day
t_code = \'  Today Is A Good Day\'
print(t_code.lstrip())
结果:Today Is A Good Day

26、

maketrans

 

27、partition

按指定的字符拆分字符串,分头、分隔串、尾,未找到指定的分隔符,头返回自己,后面两个返回空
#S.partition(sep) -> (head, sep, tail) t_code = \'TodayIs A Good Day\' print(t_code.partition(\'a\')) 结果:(\'Tod\', \'a\', \'yIs A Good Day\') print(t_code.partition(\'P\')) 结果:(\'TodayIs A Good Day\', \'\', \'\')

28、replace:字符串替换

将老字符串替换为新字符串,可指定替换次数
#S.replace(old, new[, count]) -> str t_code = \'TodayIs A Good Day,To today\' print(t_code.replace(\'T\',\'M\',2)) 结果:ModayIs A Good Day,Mo today

29、rfind:返回查询到的字符串的最大索引

#S.rfind(sub[, start[, end]]) -> int
t_code = \'TodayIs A Good Day,To today\'
print(t_code.rfind(\'d\'))
结果:24

30、rindex:类似rfind,但如果没找到会报错

#S.rindex(sub[, start[, end]]) -> int
t_code = \'TodayIs A Good Day,To today\'
print(t_code.rindex(\'p\'))
结果:

Traceback (most recent call last):
File "C:/51py/day1/study.py", line 90, in <module>
print(t_code.rindex(\'p\'))
ValueError: substring not found

 

31、rjust:右对齐,左侧填充字符

#S.rjust(width[, fillchar]) -> str
t_code = \'Today\'
print(t_code.rjust(10,\'*\'))
结果:*****Today

32、rpartition:类似partition,如果未找到字符串,则空值在左边

#S.rpartition(sep) -> (head, sep, tail)
t_code = \'Today is a good day\'
print(t_code.rpartition(\'isa\'))
结果:(\'\', \'\', \'Today is a good day\')

33、rsplit:分割字符串,从右边开始

#S.rsplit(sep=None, maxsplit=-1) -> list of strings
t_code = \'Today is a good day\'
print(t_code.rsplit(\'o\',1))
结果:[\'Today is a go\', \'d day\']

34、rstrip:右边去空格

#S.rstrip([chars]) -> str
t_code = \'  Today is a good day  \'
print(t_code.rstrip())
结果:  Today is a good day

35、splitlines:方法返回一个字符串的所有行列表,可选包括换行符的列表(如果num提供,则为true)

#S.splitlines([keepends]) -> list of strings
t_code = \'Today\n is\n a\n good\n day\'
print(t_code.splitlines())
print(t_code.splitlines(0))
print(t_code.splitlines(1))
结果:
[\'Today\', \' is\', \' a\', \' good\', \' day\']
[\'Today\', \' is\', \' a\', \' good\', \' day\']
[\'Today\n\', \' is\n\', \' a\n\', \' good\n\', \' day\']

36、startswith:如果字符串以指定的字符为前缀,则返回true,否则返回false

#S.startswith(prefix[, start[, end]]) -> bool
t_code = \'Today\n is\n a\n good\n day\'
print(t_code.startswith(\'Today\'))
结果:True

37、strip:去除字符串前后的空格

#S.strip([chars]) -> str
t_code = \' Today\n is\n a\n good\n day \'
print(t_code.strip())  
结果:
Today
 is
 a
 good
 day

38、swapcase:大小写互转

#S.swapcase() -> str
t_code = \' Today Is a Good Day \'
print(t_code.swapcase())
结果: tODAY iS A gOOD dAY 

39、title:返回的字符串为title格式,首字母大写

#S.title() -> str
t_code = \' today is a Good Day \'
print(t_code.title())
结果:Today Is A Good Day 

40、maketrans:用于创建字符映射的转换表,两个参数为长度相等的字符串

#B.maketrans(frm, to) -> translation table
intab = "aeiou"
outab = "1234k"
trantab = t_code.maketrans(intab,outab)
print(trantab)
结果:{97: 49, 111: 52, 117: 107, 101: 50, 105: 51}

41、translate:根据参数table给出的表转换字符中的字符

# S.translate(table) -> str
t_code = \' today is a Good Day \'
trantab = {97:49}
print(t_code.translate(trantab))
结果: tod1y is 1 Good D1y 

42、ord与chr是配对函数

>>> chr(65)
\'A\'
>>> ord(\'A\')
65

43、upper:将字符串转为大写

#S.upper() -> str
t_code = \' today is a Good Day \'
print(t_code.upper())
结果:TODAY IS A GOOD DAY 

44、zfill:数字填零

#S.zfill(width) -> str
t_code = \'123\'
print(t_code.zfill(5))
结果:00123

 

45、汇总

str = \'https://www.baidu. com234\'
# print(str.capitalize())  # 第一个字母大写
# print(str.count(\'w\'))  # 字符在字符串中出现的次数
# print(str.endswith(\'com\'))  # 字符串是否以com结尾
# print(str.expandtabs(tabsize=2))  # 字符串中的tab转为两个空格
# print(str.find(\'bai\'))  # 返回字符串中bai的索引
# print(str.rfind(\'bai\'))  # 返回字符串中bai的索引,从右边找
# print(str.index(\'bai\'))  # 返回字符串中bai的索引,未找到会报错
# print(str.rindex())  # 返回字符串中bai的索引,未找到会报错(从右边找)
# print(str.isalnum())  # 如果所有字符都是数字或字母,则返回True
# print(str.isalpha())  # 如果所有字符都是字母,则返回True
# print(str.isnumeric())  # 如果所有字符都是数字,则返回T
# print(str.isdecimal())  # 可解释为十进制数,则返回True
# print(str.isdigit())  # 可解释为数字,则返回True
# print(str.islower())  # 字符串中的字母都小写,则返回True(可以有其它字符)
# print(str.isupper())  # 字符串中的字母都大写,则返回True(可以有其它字符)
# print(str.isspace())  # 字符串中全是空格,则返回True
# print(str.istitle())  # 如果字符串是标题化的,则返回True(每个单词首字母大写,其它小写)
# print(str.ljust(100))  # 字符串左对齐,长度100
# print(str.rjust(100))  # 字符串右对齐,长度100
# print(str.lower())  # 所有字符转小写
# print(str.lstrip())  # 去掉字符串左边的空格
print str.replace(\'t\',\'2\',2)  # 将p 替换为2,替换2次
print str.rfind(\'o\')  # 从右边查找第一个o所在的位置
print str.rindex(\'o\')  # 从右边查找第一个o所在的位置的索引
print str.partition(\'du\')  # 从左边找到第一个du,并以之分隔字符串,返回列表
print str.rstrip()  # 去掉右边的空格
print str.split(\'w\',2) # 以w为分隔符,切分字符串
print str.splitlines()  # 以行做为分隔符
print str.startswith(\'http\')  # 是否以http开头
print str.swapcase()  # 翻转大小写
print str.title()  # 将string标题化,所有单词首字母大写,其它小写
print str.upper() # 所有字母大写
print str.zfill(150)  # 返回150个字符,原字符串右对齐,前面填充0

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-11-23
  • 2022-01-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-22
  • 2022-02-25
  • 2021-12-07
  • 2021-06-21
  • 2022-02-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案