python课堂整理3---字符串魔法
字符串魔法
1.首字母大写功能
test = "alex" v = test.capitalize() print(v)
2.所有变小写(casefold更厉害,可以将很多未知的其他国家字符变小写)
test = "ALex" v1 = test.casefold() print(v1) v2 = test.lower() print(v2)
3.设置宽度,并将内容居中,20代指总长度,*为空白位置填充一个字符,可有可无。
test = "alex" v = test.center(20, "*") print(v)
4.统计某字符出现的次数,可以设置起始和结束位置,可以不设置
test = "alexalexr" v = test.count('ex',5,8) print(v)
5.判断以什么什么结尾或开始,也可以指定起始和结束位置
test = "alex" v1 = test.endswith('x') v2 = test.startswith('b') print(v1) print(v2)
6.以下面代码为例,从a开始数16个为一组,遇到/t,则由/t用空格补齐剩下的数量(补齐16个),默认是8个为一组。
test = "alex\tdabai" v = test.expandtabs(16) print(v)
7.从开始往后找,找到第一个后,获取其位置,找不到的话返回 -1,可以指定起始和结束位置
test = "alexalex" v1 = test.find("ex") v2 = test.find("ex", 5, 7) print(v1) print(v2)
8.格式化,将字符串中的占位符替换为指定的值
test1 = "i am {name}" print(test1) v1 = test1.format(name = 'alex') print(v1) test2 = "i am {0},age{1}" print(test2) v2 = test2.format('Iro man',35) print(v2)
9.和8效果一样,传入的值为字典类型
test = "i am {name},age{a}" v = test.format_map({"name":"Iro man", "a":35}) print(v)
☆10.和find功能一样,但是找不到会报错,可忽略,建议用find
test = "alexalex" v1 = test.index("ex") print(v1) v2 = test.index('8') print(v2)
11.判断字符串是否只包含字母和数字,有别的字符会报False
test1 = "asdfhisa123" test2 = "wdsf24_@$s2_^" v1 = test1.isalnum() v2 = test2.isalnum() print(v1) print(v2)
12.判断是否都为字母,汉字。
test = "sdfq大白" v= test.isalpha() print(v)
13.判断是否都为数字,而 isdigit更厉害,②也能识别。isnumeric,能识别中文的“二”。
test1 = "123" test2 = "②" test3 = "二" v1 = test1.isdecimal() v2 = test2.isdigit() v3 = test3.isnumeric() print(v1,v2,v3)
14.判断是否为标识符(标识符:字母,数字,下划线,且不能是数字开头)
test1 = "_123asd" test2 = "3434" v1 = test1.isidentifier() v2 = test2.isidentifier() print(v1, v2)
15.判断是否存在不可显示的字符(\n换行符,\t制表符),存在的话返回False
test = "dada\nsdasdf" v = test.isprintable() print(v)
16.判断是否全部是空格
test = " " v = test.isspace() print(v)
17.判断是否为标题(标题的每个单词的首字母都是大写)
test = "wo xi huan da Bai" v = test.istitle() print(v)
18.将字符串转换为标题(首字母大写)
test = "wo xi huan da Bai" v = test.title() print(v)
☆19.将字符中的每一个元素按照指定分隔符进行拼接
test = "你是风儿我是沙" v = "_".join(test) print(v)
20.左边内容,右边填充指定符号,或右边内容,左边填充。
test = "alex" v1 = test.ljust(20, "*") v2 = test.rjust(20, "❤") print(v1) print(v2)
☆21.判断是否是小写,以及全部转换为小写。
test = "Alex" v1 = test.islower() v2 = test.lower() print(v1, v2)
☆22.判断是否都为大写,以及全部转换大写。
test = "Alex" v1 = test.isupper() v2 = test.upper() print(v1, v2)
☆23.去除左边空格,去除右边空格,以及去除左右空格,还可以去除\t和\n,还可以去除指定内容,采用优先最多匹配原则,只要里面包含的字符都可以一一匹配去除
test1 = " alex " v1 = test1.lstrip() v2 = test1.rstrip() v3 = test1.strip() print(v1,"\n",v2,"\n",v3) test2 = "xalex" v = test2.lstrip("lax") #此处也可用rstrip和strip print(v)
24.对应替换(test1和test2一一对应,把v中和test1相同的字符换成test2中的)
v = "天青色等烟雨而我在等你" test1 = "天青色等烟雨" test2 = "炊烟袅袅升起" m = str.maketrans(test1,test2) new_v = v.translate(m) print(new_v)
☆25.分割,split的缺点是不能保留被分割元素
test = "天青色等烟雨而我在等你等你" v = test.partition('等') #从匹配到的第一个就分割,分割成三份 print(v) v2 = test.rpartition('等') #从右边开始匹配,也是分割三部分 print(v2) v3 = test.split('等') #全部分割 print(v3) v4 = test.split('等',2) #指定分割2次 print(v4) v5 = test.rsplit('等',2) #从右边开始匹配分割2次 print(v5)
26.只能根据换行符分割,True 和False 决定是否保留换行
est = "天青色\n等烟雨\n而我在等你" v = test.splitlines() print(v) v2 = test.splitlines(True) print(v2)
☆27.替换
test = "天青色等烟雨而我在等你"
v = test.replace("等", "想")
v2 = test.replace("等", "想", 1) #替换第一个
print(v)
print(v2)
七个重要的基本魔法,join, find, split, strip, upper, lower, replace,全都标记了星星哦
灰魔法
1.用索引获取字符串中的某一字符
test = "天青色等烟雨而我在等你" v = test[0] print(v)
2.切片操作
test = "天青色等烟雨而我在等你" v = test[0:2] print(v)
3.获取字符串长度
test = "天青色等烟雨而我在等你" v = len(test) print(v)
4.for循环
test = "我想你了" for i in test: print(i)
谨记:字符串在内存中一旦创建,就无法修改,每次修改,都会在内存中重新创建一次(因为内存中存储的东西都是连续的)
一个奋斗中的产品小白