expandtabs 断句魔法
test = "username\temail\tpassword\nxuli\txuli@qq.com\t123\nxuli\txuli@qq.com\t123\nxuli\txuli@qq.com\t123"
v = test.expandtabs(20)
print(v)
运行程序后得到
username email password
xuli xuli@qq.com 123
xuli xuli@qq.com 123
xuli xuli@qq.com 123
括号里面的20表示遇到\t后就空格20,由于username不到20个字符,但是此时遇到了\t,前面username占8个位置,后面空白处补齐12个位置,同样email那里也是这样子的,password那里由于不需要空格了,直接用\n就是切换到下一行(换行),这种魔法可以用来做表格等等
isalpha 是检测字符串的文字的
test = "ashhued"
v = test.isalpha()
print(v)
运行结果为
ture
如果此时我将"ashhued"变为"ashhue23d"运行结果变为false 因为这个魔法只能去检测字母、汉子但是不能检测数字
isidentifier 魔法为字母、下划线、数字的标识符
test = "ashhued"
v = test.isidentifier()
print(v)
运行输出结果为true
isdecimal 魔法和 isdigit魔法是用来判定字符串是否为数字
运行结果如果字符串为数字输出true,反之为false
islower 魔法为判断是否为小写
isnumeric 魔法为判断是否为小写 可以支持二这种中文数字、123这种数字、②③这种数字
isprintable 魔法为判断是否存在不可显示的字符,比如说"husdasdsgu"运行后九尾true,但是如果将其变为"hu\tsdasdsgu加入了\t,此时运行后输出的结果就是false,因为\t(制表符)不能被输出,为不可见的;"
isspace 魔法 判断是否全部为空格,如果字符和字符之间有空格,输出也为false
istitle魔法 判断是否为标题 (标题的话不能判断中文,只能判断英文,英文的判断标准是首字母是否为大写),第二个魔法也可以用来将不是标题的转换为标题
test = "Welcome to my workhouse"
v1 = test.istitle()
print(v1)
v2 = test.title()
print(v2)
v3 = v2.istitle()
print(v3)
False 判断"Welcome to my workhouse"不是标题
Welcome To My Workhouse 将"Welcome to my workhouse"转换为标题
True 判断"Welcome to my workhouse"是标题 所以为true
join 魔法为将字符串中的每一个元素按照指定分隔符进行拼接 这个魔法非常重要!!!!!一定要记住哦
test = "你是风儿我是沙"
print(test)
t = ' '
v = t.join(test)
print(v)
输出结果你是风儿我是沙
你 是 风 儿 我 是 沙
我们发现这个中文之间出现了空格
我们也可以这样来
test = "你是风儿我是沙"
print(test)
v = ' '.join(test)
print(v)
直接不用把t写出来
输出结果还是为
你是风儿我是沙
你 是 风 儿 我 是 沙
那如果我们不想要空格,我们来一个下划线,我们看一下
test = "你是风儿我是沙"
print(test)
v = '_ '.join(test)
print(v)
输出结果变为
你是风儿我是沙
你_ 是_ 风_ 儿_ 我_ 是_ 沙
ljust魔法,
test = "alex"
v = test.ljust(20,"*")
print(v)
运行程序后得到结果
alex****************
我们可以看在alex的右边出现了20个*,同样我们将ljust换成rjust,然后运行上面的这个小程序得到结果
****************alex
同样我们将rjust换位center,得到居中的结果,如下:
********alex********
islower 和 lower的魔法
test = "Alex"
v1 = test.islower()
v2 = test.lower()
print(v1,v2)
输出后得到结果
False alex
说明 islower是判断是否为小写,lower是将大写转换为小写;
isupper 和 upper 的魔法
test = "Alex"
v1 = test.isupper()
v2 = test.upper()
print(v1,v2)
输出后得到结果
False ALEX
说明 isupper 是来判断是否全部为大写,而upper 是用来将小写转变为大写
lstrip
rstrip
strip
统一的魔法: 去除空白 \t \n也可以去掉 还可以移除指定字符 优先最多匹配
maketrans的魔法是进行替换
v = "adheub;dexhyaas;hsuwsw"
m = str.maketrans("aeiou","12345")
new= v.translate(m)
print(new)
输出结果得到
1dh25b;d2xhy11s;hs5wsw
partition的魔法是进行分割,记住只能分割成为三份
test = "testjxisndgdgy"
v = test.partition('s')
print(v)
输出后得到结果
('te', 's', 'tjxisndgdgy')
rpartition的魔法也是进行分割,记住只能分割成为三份
test = "testjxisndgdgy"
v = test.rpartition('s')
print(v)
输出后得到结果
('testjxi', 's', 'ndgdgy')
split 的魔法是进行分割
test = "testjxisndsdgsgdgy"
v = test.split('s')
print(v)
输出后结果为
['te', 'tjxi', 'nd', 'dg', 'gdgy']
这个结果完全按照出现s的地方记性了分开
test = "testjxisndsdgsgdgy"
v = test.split('s',2)
print(v)
输出结果为
['te', 'tjxi', 'ndsdgsgdgy']
我们可以看到在‘s’的后面加了2 ,输出就将原始的字符自行分割了两次,并且分割后拿不到原来的s,我也可以随意的制定数字13456等等
同样的rsplit的魔法为从右边进行开始分割
splitlines的魔法是进行分割,后面加True,False,意思是是否保留换行
test = "testjx\nisn\ndsdgsg\ndgy"
v = test.splitlines(False)
print(v)
输出的结果为
['testjx', 'isn', 'dsdgsg', 'dgy']
换位True了以后
test = "testjx\nisn\ndsdgsg\ndgy"
v = test.splitlines(True)
print(v)
输出的结果为
['testjx\n', 'isn\n', 'dsdgsg\n', 'dgy']
startswit的魔法是判断是以什么开头
test = "backed1.1.1.1.1"
v = test.startswith('ba')
print(v)
输出的结果为
True
test = "backed1.1.1.1.1"
v = test.startswith('a')
print(v)
输出的结果变为
False
同理 endiwith是用来判断用什么结尾
test = "backed1.1.1.1.1"
v = test.endswith('1')
print(v)
输出结果为
True
swapcase的魔法为大小写转换
test = "alEx"
v = test.swapcase()
print(v)
输出结果为ALeX
所有的str类型,按住Ctrl,就能看到他的魔法,可以进行尝试