一、字符串大小写转换
以下都只针对字母有影响,其它,例如汉字、数字,都会原样输出,不受影响。
1、str.lower()
把字符串中的字母转成小写。原字符串中的数字、汉字、小写都不受影响,仍原样输出。
2、str.upper()
把字符串中的字母转成大写。原字符串中的数字、汉字、大写都不受影响,仍原样输出。
3、str.title()
把字符串中所有单词的首字母转成大写,其它字母转成小写。原字符串中的数字、汉字都不受影响,仍原样输出。
4、str.capitalize()
把字符串中,第一个单词的首字母转成大写,其它单词通通小写。
5、str.swapcase()
把字母由原来的大写转成小写,小写转大写。
举例:
# 1、把字符串中的字母转换成小写
s1 = "2TOm猫"
print(s1.lower()) # 结果:2tom猫,可以看出,数字、汉字、小写都不受影响
# 2、把字符串中的字母转换成大写
s2 = 'Day5天'
print(s2.upper()) # DAY5天
# 3、所以单词的首字母转成大写,其它字母转成小写
s3 = 'h你好,世界6 today hAppy EVERY'
print("字符串原貌:")
print("【", s3, "】")
print(s3.title()) # H你好,世界6 Today Happy Every
# 4、第一个单词的首字母大写,其它单词统统小写。
print(s3.capitalize()) # H你好,世界6 today happy every
# 5、把字母由原来的大写转成小写,小写转大写
print(s3.swapcase())
结果:
2tom猫
DAY5天
字符串原貌:
【 h你好,世界6 today hAppy EVERY 】
H你好,世界6 Today Happy Every
H你好,世界6 today happy every
H你好,世界6 TODAY HaPPY every
二、判断字符串里字母的大小写
以下都只对字母起作用,数字、汉字原样输出。
1、str.islower()
判断字符串里的字母是否全为小写。
2、str.isupper()
判断字符串里的字母是否全为大写。
3、str.istitle()
判断字符串里的所有单词的首字母是否全为大写,且其他字母全为小写。如例题的s4。
举例:
s1 = '2好happy'
s2 = 'Happy'
s3 = 'hello'
s4 = 'HELLO'
# 判断字符串里的字母是否全为小写。
print(s1.islower()) # True
print(s2.islower()) # False
print(s3.islower()) # True
# 判断字符串里的字母是否全为大写。
print(s1.isupper()) # False
print(s2.isupper()) # False
print(s3.isupper()) # False
print(s4.isupper()) # True
# 判断字符串里的所有单词的首字母是否全为大写。
print(s1.istitle()) # False
print(s2.istitle()) # True
print(s4.istitle()) # False
结果:
True
False
True
False
False
False
True
False
True
False
三、字符串的判断
1、str.isspace()
判断字符串是否为空格字符。如果是则返回True, 否则False。
常见的有:空格、\t、\n、\r(回车)。。。。都是没有实际内容的。
s1 = ''
s2 = ' ' # 引号里面有一个空格
s3 = '\t'
s4 = '\n'
s5 = '\r'
print(s1.isspace()) # False
print(s2.isspace()) # True
print(s3.isspace()) # True
print(s4.isspace()) # True
print(s5.isspace()) # True
结果:
False
True
True
True
True
2、str.isprintable()
判断字符串是否可以打印,可以打印返回True,否则False。
注:空格、空字符串是可以打印的,\t \n \r不可以打印。
s1 = 'tom'
s2 = ''
s3 = ' ' # 有一个空格
s4 = '\n'
s5 = '\t'
s6 = '\r'
print(s1.isprintable()) # True
print(s2.isprintable()) # True
print(s3.isprintable()) # True
print(s4.isprintable()) # False
print(s5.isprintable()) # False
print(s6.isprintable()) # False
结果:
True
True
True
False
False
False
3、str.isidentifier()
单纯判断字符串(的内容)符不符合变量名的命名规则,符合返回True,否则False 。
延申:变量名的命名规则
是否是由字母、数字、下划线组成,且不能以数字开头。
s1 = '1k'
print(s1.isidentifier()) # False
print('3a'.isidentifier()) # False
print('a5'.isidentifier()) # True
print('_2a5'.isidentifier()) # True
结果:
False
False
True
True
四、判断字符串是否为数字
1、str.isalpha()
判断字符串是否全部都是字母类型和汉字,如果是,返回True,如果包含数字或其它字符,返回False。
s1 = "柠檬水"
s2 = "345 happy"
s3 = 'lemon'
s4 = 'Lemon'
s5 = '!Lemon'
print(s1.isalpha()) # True
print(s2.isalpha()) # False
print(s3.isalpha()) # True
print(s4.isalpha()) # True
print(s5.isalpha()) # False
结果:
True
False
True
True
False
2、str.isdecimal()
判断字符串是否只包含十进制字符。如果包含空格、小数点、汉字、字母、其他字符,都是返回False。这种方法只存在于unicode对象。
注意:定义一个十进制字符串,只需要在字符串前添加 'u' 前缀即可。
s1 = "柠檬水"
s2 = "345 happy"
s3 = 'lemon'
s4 = '二'
s5 = "IV"
s6 = '1123'
s7 = '1123 ' # 后面加一空格
s8 = '11.23' # 小数
s0 = u'1123'
print(s1.isdecimal()) # False
print(s2.isdecimal()) # False
print(s3.isdecimal()) # False
print(s4.isdecimal()) # False
print(s5.isdecimal()) # False
print(s6.isdecimal()) # True
print(s7.isdecimal()) # False
print(s8.isdecimal()) # False
print(s0.isdecimal()) # True
结果:
False
False
False
False
False
True
False
False
True
3、str.isnumeric()
判断字符串是否只由数字组成。主要是针对unicode编码格式的数字。
定义一个字符串为Unicode编码方式,只需要在字符串前添加 'u' 前缀即可。
s1 = '1123'
s0 = u'1123'
s2 = '1123 ' # 后面加一空格
s3 = '11.23' # 小数
s4 = '二'
s5 = "IV"
print(s0.isnumeric()) # True
print(s1.isnumeric()) # True
print(s2.isnumeric()) # False
print(s3.isnumeric()) # False
print(s4.isnumeric()) # True
print(s5.isnumeric()) # False
结果:
True
True
False
False
True
False
4、 str.isdigit()
判断字符串是否只由数字组成。
s1 = "柠檬水"
s2 = "345 happy"
s3 = 'lemon'
s4 = '二'
s5 = "IV"
s6 = '1123'
s7 = '1123 ' # 后面加一空格
s8 = '11.23' # 小数
print(s1.isdigit()) # False
print(s2.isdigit()) # False
print(s3.isdigit()) # False
print(s4.isdigit()) # False
print(s5.isdigit()) # False
print(s6.isdigit()) # True
print(s7.isdigit()) # False
print(s8.isdigit()) # False
结果:
False
False
False
False
False
True
False
False
五、判断字符串的首尾
判断字符串是否以指定的内容开头和结尾。 针对所有字符,包括,字母、数字、汉字、标点符号等。
1、str.endswith(想要判断的字符串,开始判断的索引位置,结束判断的索引位置)
简记:str.endswith(内容,开始的索引,结束的索引)
用来判断字符串是否以指定的字符串结尾。
注意:
(1)判断的区间范围:开始的索引位置到截止的索引位置。但需要注意的是,截止的索引是取不到的,只能取到索引值-1。也就是常说的,前闭后开[)。
(2)后俩参数也可以不写,这样默认从头看到结尾。
s1 = 'Happy everyday !'
# 0123456789
print(s1.endswith("y")) # False 判断字符串是否以y结尾,从头开始看起
# 从索引9的位置开始算起,也就是从r开始看,末尾是否为y
print(s1.endswith("y", 9)) # False
print(s1.endswith("!", 9)) # True
print(s1.endswith("!", 5, 9)) # False 从索引5-9看
print(s1.endswith("y", 1, 4)) # False
# 为什么False,因为,索引的范围是[),给到4但取不到4
print(s1.endswith("day !")) # True
结果:
False
False
True
False
False
True
2、str.startswith("5", 2, 3)
判断字符串开头是否是以指定字符开头的。其它用法规则跟str.endswith()一样。
s2 = "柠檬水"
s3 = "345 happy"
# 0123456
print(s2.startswith("柠")) # True
print(s3.startswith("34")) # True
print(s3.startswith("5", 2, 3)) # True
结果:
True
True
True