day3:数据类型 str

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

i = 2
print(i.bit_length())
i = 3
print(i.bit_length())
i = 5
print(i.bit_length())

运行结果:
2
2
3
View Code

2,int和str互转,注意str转化为int是,str内容必须是数字

3,while true和while 1

while True:
    pass
#while 1的效率要高一点
while 1:
    pass
View Code

4,判断字符串为空

s = input("plese input")
if s:
    pass
else:
    print("你输入的字符串为空,请重新输入。")
View Code

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
View Code

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,比较简单,不再举例,也可以进行切片操作

原文地址:https://www.cnblogs.com/lisa-blog/p/10014706.html