1数字int。
数字主要是用于计算用的,使用方法并不是很多,就记住一种就可以: bit_length()
#bit_length() 当十进制用二进制表示时,最少使用的位数 v = 11 11=》1011 data = v.bit_length() print(data)
输出结果:4
2布尔值bool。
布尔值就两种:True,False。就是反应条件的正确与否。
数字转换成bool:
如果数字是0 结果是False
如果数字是非0 结果是True
True 和1的效率问题: 1的效率高.
bool转int:
int(bool) True => 1
False => 0
字符串转换成bool bool(str)
空字符串是False. 非空字符串是True
“ ”字符串中有空格,不是非空字符串,输出True
3字符串str。
3.1、字符串的索引与切片。
索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。
a = 'ABCDEFGHIJK' print(a[0]) A print(a[3]) D print(a[5]) F print(a[7]) H
正向 从 0 开始,反向 从-1 开始
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。
a = 'ABCDEFGHIJK' print(a[0:3]) print(a[2:5])
print(a[:]) #默认从头到尾 print(a[0:]) #默认到最后 print(a[0:-1]) #-1就是最后一个 print(a[0:5:2]) #加步长
print(a[5:0:-2]) #反向加步长
print(a[0:20]) #如果右边的值. 超过了字符串长度. 切到最后
3.2、字符串常用方法。
#captalize,swapcase,title
msg='eGon say hi' print(msg.capitalize()) #首字母大写 Egon say hi print(msg.swapcase()) #大小写翻转 EgON SAY HI print(msg.title()) #每个单词的首字母大写 Egon Say Hi # 内容居中,总长度,空白处填充
a1='alex' ret2 = a1.center(10,"*") print(ret2) ***alex*** #数字符串中的元素出现的个数。 # ret3 = a1.count("a",0,4) # 可切片 # print(ret3) 1 a2 = "hqw\twu" #\t前面的补全 # 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度大于等于8个小于16个则补全16个,以此类推每次补全8个。 ret4 = a2.expandtabs() print(ret4) hqw wu a4 = "dkfjdkfasf54" #startswith 判断是否以...开头 #endswith 判断是否以...结尾 # ret4 = a4.endswith('jdk',3,6) # 可切片 # print(ret4) # 返回的是布尔值 True # ret5 = a4.startswith("kfj",2,4) # print(ret5) False #寻找字符串中的元素是否存在 # ret6 = a4.find("fjdk",1,6) # print(ret6) 2 # 返回的找到的元素的索引,如果找不到返回-1 # ret61 = a4.index("fjdk",4,6) # print(ret61) 2 # 返回的找到的元素的索引,找不到报错。 #split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。 # ret9 = 'title,Tilte,atre,'.split('t') # print(ret9) ['', 'i', 'le,Til', 'e,a', 're,'] # ret91 = 'title,Tilte,atre,'.split('t',2) #可选择分割次数 # print(ret91) ['', 'i', 'le,Tilte,atre,']
s = "李嘉诚王健林麻花藤周杰伦"
lst = s.split("李嘉诚王健林麻花藤周杰伦") ['', ''] # 如果原字符串和刀一样全切割.得到的是两个空字符串。开头或者结尾出现刀一样全切割,一定会出现空字符串。
# lst = s.split("马云") ['李嘉诚王健林麻花藤周杰伦'] # 如果不存在.得到的是原字符串
# lst = s.split("") empty separator #用空字符串切割,报错
# lst = s.split() #()内啥都不写,默认用空白处切割,不管空白占几格,全切掉
#format的三种玩法 格式化输出
print("%s很帅, 你信吗?" % "我") 我很帅, 你信吗?
print("{}很帅, {}信吗?, 不信给你{}钱".format("旭哥", "我们", 100)) 旭哥很帅, 我们信吗?, 不信给你100钱
print("{1}很帅, {0}信吗?, 不信给你{2}钱".format("旭哥", "我们", 100)) 我们很帅, 旭哥信吗?, 不信给你100钱
print("{person1}很帅, {person2}信吗?, 不信给你{money}钱".format(person1="旭哥", person2="我们", money=100)) 旭哥很帅, 我们信吗?, 不信给你100
#strip name='*egon**' print(name.strip('*')) #去掉左右两边的‘*’, ‘*’不写,默认是空格,strip() print(name.lstrip('*')) #去掉左边的‘*’ print(name.rstrip('*')) #去掉右边的‘*’ #replace name='alex say :i have one tesla,my name is alex' print(name.replace('alex','SB',1)) #可选择替换的对象和数量
print(name.replace('alex','')) #用空字符串替换,相当于删除
print(name.replace('alexa','')) alex say :i have one tesla,my name is alex #没有,不替换,输出原字符串
#is系列 name='jinxin123'
#判断字符串是否由字母或数字组成,输出bool值 print(name.isalnum())
#判断字符串是否只由字母组成,输出bool值 print(name.isalpha())
#判断字符串是否只由数字组成,输出bool值 print(name.isdigit())
print(name.upper()) #变大写
print(name.lower()) #变小写
#判断字符串长度
name='jinxin123'
print(len(name)) 9
#join
在某些情况下,list --- >str (列表中的元素必须全部都是字符串类型)
s = 'alex'
s11 = '+'.join(s)
print(s11) a+l+e+x
l = ['wusir', 'alex', 'taibai']
s111 = '_'.join(l)
print(s111,type(s111)) wusir_alex_taibai <class 'str'>