1,int 一个数字占用的bit数目

i = 2 print(i.bit_length()) i = 3 print(i.bit_length()) i = 5 print(i.bit_length()) 运行结果: 2 2 3
2,int和str互转,注意str转化为int是,str内容必须是数字
3,while true和while 1

while True: pass #while 1的效率要高一点 while 1: pass
4,判断字符串为空

s = input("plese input") if s: pass else: print("你输入的字符串为空,请重新输入。")
5,字符串索引和切片,顾头不顾尾,和range一样

s = "ABCDEFGHKL" print(s[-1]) print(s[-2]) print(s[0:4]) print(s[0:-1]) print(s[0:]) print(s[:]) print("------------------------------") print(s[0:5:2]) print(s[4:0:-1]) #这里不可以写成s[0:4:-1], 顾头不顾尾所以0那个位置是打不出来的 print(s[4::-1]) # 规范写法,两个冒号之间没有空格 print("--------------------------------") print(s[-1::-1]) print(s[::-1]) 运行结果: L K ABCD ABCDEFGHK ABCDEFGHKL ABCDEFGHKL ------------------------------ ACE EDCB EDCBA -------------------------------- LKHGFEDCBA LKHGFEDCBA
6,首字母大写
s = "lisa is funny" s1 =s.capitalize() #首字母大写,另外新字符串和原来的字符串没有关系 print(s1) 运行结果:Lisa is funny
7,不区分大小写
s = "FgjKl" s_str = input("please input:") if s.lower()==s_str.lower(): #也可以同时转换为大写 print("验证成功") else: print("请重新输入") 运行结果: please input:fgjkl 验证成功
8,字符串翻转,首字母大写
s = "lisa is funny,HOHO" # 大小写翻转 s3 = s.swapcase() print(s3) # 所有单词首字母大写 s4 = s.title() print(s4) s5 = "lisa*is4funny,-HOHO9haha" s6 = s5.title() print(s6) #注意:每个隔开的单词,首字母大写,被字符和数字隔开都算,都是大写的单词要变成只是首字符大写 运行结果: LISA IS FUNNY,hoho Lisa Is Funny,Hoho Lisa*Is4Funny,-Hoho9Haha
9,居中空白填充,或者用其他字符填充,输入函数后,如果右侧半个括号显示黄色,说明你少输入参数了。
s7 = 'center' s8 = s7.center(20) #总长20,s7居中,两边用空白填充,默认为空白 print(s8) s9 = s7.center(20,"#") #两边用#号填充 print(s9) 运行结果: center #######center#######
10,展开字符串中的tab键,tab键前面的字符串不足8个则补足为8个,超过8个不足16个,补足为16个,每次补足为8的倍数
s10 = 'left right' s11 = s10.expandtabs() print(s11) 运行结果: left right
11,公用方法len
12, 查找字符,find和index,给出的都是找到位置的index,但是index函数找不到的时候会崩溃,但是find会给出-1,查找区分大小写,所以首选find,如果字符串中有多个匹配字符,返回的是第一个,可以查找一个或者多个字符
13,去除空格strip 左侧lstrip,右侧rstip,多用在用户输入用户名加入了空格的情况
s12 = " strip " s13 = s12.strip() s14 = s12.lstrip() s15 = s12.rstrip() print(s13) print(s14) print(s15) print("-------------------------------") s16 = "********strip&&&&&&&&&&" s17 = s16.strip('*') print(s17) s18 = s16.strip('&') print(s18) s19 = s16.strip("*&") print(s19) 运行结果: strip strip strip ------------------------------- strip&&&&&&&&&& ********strip strip
14,统计字符串中字符出现的次数count,也可以切片寻找
s = "lilililisa is funny,HOHO" s20 = s.count("li") print(s20) 运行结果: 4
s = "lilililisa is funny,HOHO" s20 = s.count("li",1,6) print(s20) 运行结果: 2
s = "lilililisa is funny,HOHO" # 只有一个参数默认从4到末尾切片 s20 = s.count("li",4) print(s20) 运行结果: 2
15,字符串拆分split,注意被拆分的字符就不存在了,字符串转换为列表的非常好的方法
s = "lilia//lilisa is ;iafunny,a==HOHO" # s20 = s.count("li") # print(s20) s21 = s.split() # 不指定的话就是空格 print(s21) s22 = s.split("a") print(s22) s23 = s.split("ia") print(s23) 运行结果: ['lilia//lilisa', 'is', ';iafunny,a==HOHO'] ['lili', '//lilis', ' is ;i', 'funny,', '==HOHO'] ['lil', '//lilisa is ;', 'funny,a==HOHO']
16,格式化输出有两种方式,第一种是%d %s这种,另外一种是format函数,format有三种玩法
msg="my name is {}, i am {}, my height is {},again,my name is {}".format("lisa",22,165,"lisa") print(msg) msg="my name is {0}, i am {1}, my height is {2},again,my name is {0}".format("lisa",22,165,) print(msg) msg="my name is {name}, i am {age}, my height is {height},again,my name is {name}".format(name="lisa",age=22,height=165,) print(msg) 运行结果: my name is lisa, i am 22, my height is 165,again,my name is lisa my name is lisa, i am 22, my height is 165,again,my name is lisa my name is lisa, i am 22, my height is 165,again,my name is lisa
17,字符串替换replace,默认是全部替换,也可以指定第三个参数,替换几个
s = "lisa is funny lisa is funny lisa is funny lisa is funny lisa is funny " s2 = s.replace("lisa","lily") print(s2) 运行结果: lily is funny lily is funny lily is funny lily is funny lily is funny
18,in 循环输出每个字符,或者是判断某个字符是否在字符串内,一般用来屏蔽敏感字符
s = "lisa is funny" for i in s: #i 可以替换为j index 等 print(i) s = "lisa is fucking funny" # 敏感词类似苍井空啦,fuck ,damn啥的 if "fucking" in s: print("您的输入有敏感词。。。。") 运行结果: l i s a i s f u n n y 您的输入有敏感词。。。。
19,是否已某个字符开头或者结尾,startswith endswith,比较简单,不再举例,也可以进行切片操作