数据类型:int bool str list 元祖 dict 集合
int:整数型,用于各种数学运算。
bool:只有两种,True和False,用户判断。
str:存储少量数据,进行操作(用单引号或双引号包起来的是字符串)
list:列表,用 [] 括起来的是列表,用于存储大量的数据。
元祖:用()括起来的内容是元祖。元祖是只读的。元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。例:(1,2,3)("a","b","c")
dict:字典。用{}大括号包起来。对应的是大量关系型信息。例如{'name':'小明','age':16}
集合:用{}大括号包起来。例如:{1,2,2,3,5,6,7,9}
一、int
数字int :数字主要是用于计算,适用于各种数学运算,在这里需要学习的特殊一种是bit_length() ,是计算数字转换成二进制后的最少位数,相当于计算二进制数的长度。
i = 11
s1 = i.bit_length()
print(s1)
输出是 4
二、bool
布尔值就是两种:True 和 False 。
PS:几种数据类型的相互转换
int ---- str 所有的数字都可以转换成字符串类型的数字
i = 2
s2 = str(i)
print(s2,type(s2))
str ----- int 字符串中只有数字才能转换成整数类型
i = '2'
s3 = int (i)
print(s3,type(i))
int ----- bool 非0输出的bool值都是True,只有 0 输出的是False
i = 2
s4 = bool(i)
print(s4)
输出是True
i = 0
s4 = bool(i)
print(s4)
输出是False
bool ----- int bool 值True转换成整数型的只有1, bool值False转换成整数型的只有0 #
i = True
s5= int(i)
print(s5)
i = False
s5= int(i)
print(s5)
PS:
while True :
pass
while 1 :
pass
这两个循环比较,while 1 的运行效率更高。
str ---- bool 只要输入的字符串非空,输出的bool就是True,空字符串输出的bool值是False,空格也算是有内容,不算空
i = '123456'
s6 = bool(i)
print(s6)
输出的是True
i = ' 123456'
s6 = bool(i)
print(s6)
输出的是True
i = ' '
s6 = bool(i)
print(s6)
输出的是True
i = ''
s6 = bool(i)
print(s6)
输出的是False
例如:
s #这里的s是一个动态的字符串,可以检测输入的内容是不是空的 if s: print('你输入的为空,请重新输入') else: pass
三、字符串 str
字符串的各种操作:
1.字符串的索引和切片
索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。(用中括号【】来表示,负号代表倒着数,倒着数的时候从1开始)
s = 'ABCDEFGHIJK' print(s7[0]) # 输出是A print(s7[5]) # 输出是F print(s7[8]) # 输出是I print(s7[-1]) # 输出是K print(s7[-3]) # 输出是I
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。(用中括号【】来表示)
s8 = s[0:4] print(s8) # 输出的是ABCD s8 = s[0:-1] print(s8) # 输出的是ABCDEFGHIJ s8 = s[0:] print(s8) # 输出的是ABCDEFGHIJK s8 = s[:] print(s8) # 输出的是ABCDEFGHIJK s8 = s [0:8:2] print(s8) #输出的是ACEG s8 = s [::3] print(s8) #输出的是ADGJ s8 =s [8:1:-2] print(s8) # 输出的是IGEC
2.(1)字符串首字母大写
字符串.capitalize()
s = 'guobeibei sir is A Man ' s9 = s.capitalize() print(s9) # 输出的是 Guobeibei sir is a man
(2)字符串全大写(字符串.upper())全小写(字符串.lower())
s10 = s.upper() s11 = s.lower() print(s10) print(s11) # 输出的是 GUOBEIBEI SIR IS A MAN # guobeibei sir is a man
例如:输入验证码
s_str = 'aCq4' you_input = input('请输入验证码,不区分大小写') if s_str.upper() == you_input.upper() : print('输入成功') else: print('请重新输入')
(3)大小写翻转
s12 = s.swapcase() print(s12) # 输出的是 GUOBEIBEI SIR IS a mAN
(4)每个隔开(空格,特殊字符或者数字)的单词首字母大写
s13 = s.title() print(s13) # 输出的是 Guobeibei Sir Is A Man
(5)内同居中,总长度,空白处填充
s14 = s.center(30,'+') print(s14) # 输出的是 ++guobeibei sir is A Man ++
(6)默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个, # 如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
s = 'ace sir' s15 = s.expandtabs() print(s15) # 输出的是 ace sir
(7)公共方法 计算字符串长度
l = len(s) print(l) # 输出的是 26
(8)startswith 判断是否以...开头
s16 = s.startswith('gu') print(s16) # 输出的是 True
(9)endswith 判断是否以...结尾
s17 = s.endswith('an ') print(s17) # 输出的是 True
(10)寻找字符串中的元素是否存在 find 通过元素找索引,找到输出索引数,找不到返回-1 从左向右,找到第一个就停止了
s18 = s.find('i') print(s18)
(11)寻找字符串中的元素是否存在 index通过元素找索引,找到输出索引数,找不到报错 从左向右,找到第一个就停止了
s19 = s.index('i') print(s19)
(12)strip rstrip lstrip strip 默认删除前后空格 ()里有就可以删除什么 rstrip 只删除右边的 lstrip只删除左边的
s = 'alexWUsir%' s9 = s.strip('%') print(s9) s = ' *a%lexWUsi* r%' s91 = s.strip(' %*') print(s91)
例如:
username = input('请输入名字:').strip() if username =='春哥': print('恭喜春哥发财')
(13)计数器 .count('') 计算某元素在字符串出现的次数
s = 'alexaa wusirl' s10 = s.count('a') print(s10)
(14)split 以什么分割,最终形成一个列表此列表不含有这个分割的元素 str ---->list
s = ';alex;wusir;taibai' l = s.split('a') print(l) # 输出的是 [';', 'lex;wusir;t', 'ib', 'i']
(15)格式化输出 format的三种玩法
s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白')
print(s)
name = input('请输入名字:') s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl')
print(s)
name = input('请输入名字:') s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl')
print(s)
# 注:前两种方式考虑顺序对应关系,最后一种不考虑顺序对应关系。
(16)替换 s.replace(老字符,新字符,替换几个老字符) 默认的是替换全部字符
s = '来看待街坊邻居复合大师街坊法好的撒见客户' s11 = s.replace('街坊','老王',1) print(s11) #输出的是 来看待老王邻居复合大师街坊法好的撒见客户 s = '来看待街坊邻居复合大师街坊法好的撒见客户' s11 = s.replace('街坊','老王',2) print(s11) #输出的是 来看待老王邻居复合大师老王法好的撒见客户
#####is系列
name='jinxin123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成
for in 循环
s = 'fhdsklfds' for i in s: print(i) # 输出的是 # f # h # d # s # k # l # f # d # s s = 'fdsa苍井空fdsalk' if '苍井空' in s: print('您的评论有敏感词...') # 输出的是 您的评论有敏感词...