05-Python-常用字符串方法
字符串
定义: 背后调用str()函数,把任意其他类型转为字符串类型。
内置方法
01-按索引取值
msg="Hello World"
# 正向取
print(msg[0])
# 反向取
print(msg[-1])
# 列表可以改,但是字符串只能取
msg[0]='T' # 一定会报错
02-切片
msg = "Hello World"
print(msg[0:5]) # 运行结果为Hello
print(msg[0:5:2]) # 运行结果为Hlo
print(msg[0:5:-1]) # 运行结果为空
print(msg[5:0:-1]) # 运行结果为 olle
print(msg[::-1]) # 运行结果为dlroW olleH
03-长度
msg = "Hello World"
print(len(msg)) # 运行结果为11
04-成员运算
msg = "Hello World"
print("Hello" in msg) # 运行结果为True
print("World" not in msg) #运行结果为False
05-移除空格
strip只去两边,不去中间
msg = " Hello World "
print(msg.strip()) #运行结果为"Hello World",默认去掉左右两侧空格
msg = "****Hello World****"
print(msg.strip('****')) # 运行结果为"Hello World",去掉左右两侧的'*'
python 过滤危险字符
bypass_list=['\'','"','%','@','#','$','!','^']
username_input=input("Please input your name")
flag=True
while flag:
for i in bypass_list:
print(i)
username_input=username_input.strip(i)
print(username_input)
for t in username_input:
print(t,end=' ')
if t not in bypass_list:
flag = False
else :
flag = True
06-切分
msg="Hello world my holy love"
print(msg.split('o'))
# 运行结果为['Hell', ' w', 'rld my h', 'ly l', 've']
07-循环
msg="Hello world"
for x in msg:
print(x)
'''
运行结果为:
H
e
l
l
o
w
o
r
l
d
'''
重要方法
01-lstrip()与rstrip()
# lstrip()去左边
# rstrip()去右边
msg = "*Hello world*"
print(msg.lstrip('*')) # 运行结果Hello world*
print(msg.rstrip('*')) # 运行结果*Hello world
02-lower()与upper()
msg="aaabbbCCCddEFg"
print(msg.lower()) # 运行结果"aaabbbcccddefg"
print(msg.upper()) # 运行结果"AAABBBCCCDDEFG"
03-startwith()与endwith()
msg = "aaabbbCCCddEFg"
print(msg.startswith('aaa')) #运行结果为True
print(msg.endswith('aaa')) #运行结果为False
04-split()与rsplit()
msg = "Alice:is:a:girl"
print(msg.split(':', 2)) #运行结果为['Alice', 'is', 'a:girl']
print(msg.rsplit(':', 2)) #运行结果为['Alice:is', 'a', 'girl']
05-join()
# join把列表拼接成字符串
msg = "Alice:is:a:girl"
a = msg.split(':')
res = ':'.join(a)
print(res) # 运行结果为Alice:is:a:girl
06-replace()
msg = "Hello Alice"
print(msg.replace("Alice", "Peter")) # 运行结果为"Hello Peter"
07-isdigit()
msg = "1232345234"
print(msg.isdigit())
# 运行结果为True
info = "Hello"
print(info.isdigit())
# 运行结果为False
需要了解的方法
01-find()与rfind()
msg = "Hello World egg eyes"
print(msg.find('e'))
# 运行结果为 ‘1’
# find会返回查找子字串在大字串中的起始索引
print(msg.rfind('e'))
# 运行结果为‘18’
# rfind会返回查找子字串在大字串中从右往左的第一个索引
print(msg.find('z'))
# 运行结果为'-1',表示没有找到
02-center()与ljust()与rjust()与zfill()
msg = "Peter"
print(msg.center(10, '*'))
# 运行结果为**Peter***,表示msg居中放置,长度为10,不够的用'*'补齐
print(msg.ljust(10, '*'))
# 运行结果为Peter*****,表示msg靠左放置,长度为10,不够的用'*'补齐
print(msg.rjust(10, '*'))
# 运行结果为*****Peter,表示msg靠右放置,长度为10,不够的用'*'补齐
print(msg.zfill(10))
# 运行结果为00000Peter,表示用0填充,默认靠右对齐
03-expandtabs()
msg = "hello\tworld"
print(msg.expandtabs(4))
# 运行结果为hello world,表示制表符宽度以4输出
04-captalize()与swapacase()与title()
msg = "Hello world Alice"
print(msg.capitalize())
# 运行结果为"Hello world alice" 表示将字符串的第一个字母变成大写,其他字母变小写。
print(msg.swapcase())
# 运行结果为"hELLO WORLD aLICE" 表示大小写转换
print(msg.title())
# 运行结果为"Hello World Alice" 表示将单词的首字母变为大写,其他的变为小写
05-is系列
print("abc".islower()) # 判断是否为小写
print("ABC".isupper()) # 判断是否为大写
print("Hello World".istitle()) #判断是否为标题形式
print("hello123".isalnum()) # 判断是否为字母或者数字
print("AbcD".isalpha()) # 判断是否由字母组成
print(" ".isspace()) # 判断是否都是空格
print("def".isidentifier()) # 判断是否为内置的名字
print("四".isnumeric()) # 判断是否是数字
print("4".isdigit()) # 判断是否为阿拉伯数字
print("4".isdecimal()) #判断是否为十进制数字