一、引子
1.什么是数据?
x=10,10是我们要存储的数据
2.为何数据要分不同的类型
数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示
3.数据类型
数字---int
布尔值---bool
字符串---str
元组---tuple
列表---list
字典---dictionary
集合---set
二、基础数据类型
1.数字int
数字主要是用于计算用的,使用方法并不是很多,就记住一种就可以:
#bit_length() 当十进制用二进制表示时,最少使用的位数 v = 11 data = v.bit_length() print(data)
2.布尔值bool
布尔值就两种:True,False。就是反应条件的正确与否。
真 1 True。
假 0 False。
int ------> bool 0:False 非零:True
bool----->int T----->1 F----->0
str------->bool 非空True 空就是False
s='abc' print(bool(s))
bool----->str str(True) str(False)
print(str(True),type(str(True)))
While 1比while true执行效率高
3.字符串str
一、字符串的索引与切片
索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。
a = 'ABCDEFGHIJK' print(a[0]) print(a[3]) print(a[5]) print(a[7])
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。
a = 'ABCDEFGHIJK' print(a[0:3]) print(a[2:5]) print(a[0:]) #默认到最后 print(a[0:-1]) #-1就是最后一个 print(a[0:5:2]) #加步长 print(a[5:0:-2]) #反向加步长
二、字符串常用方法
captalize、swapcase、title
1 a = 'ABCDEFGHIJK' 2 print(a.capitalize()) #首字母大写 3 print(a.swapcase()) #大小写翻转 4 msg='egon say hi' 5 print(msg.title()) #非字母隔开的部分,首字母大写,其它小写
upper 全部大写
lower 全部小写
a='Lao Dao Ba Zi' print(a.upper()) print(a.lower())
1 code='aeDb' 2 your_code=input('请输入验证码:') 3 if your_code.upper()==code.upper(): 4 print('输入正确') 5 else: 6 print('请重新输入')
center 内同居中,总长度,空白处填充
a='Lao Dao Ba Zi' ret2 = a.center(20,"*") print(ret2)
expandtabs
a2 = "hqw " # 前面的补全 # 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。 ret4 = a2.expandtabs() print(ret4)
count 数字符串中的元素出现的个数
a='Lao Dao Ba Zi' ret3 = a.count("a",0,4) # 可切片 print(ret3)
startswith 判断是否以...开头
endswith 判断是否以...结尾
a4 = "dkfjdkfasf54" ret4 = a4.endswith('jdk',3,6) # 顾头不顾腚 print(ret4) # 返回的是布尔值 ret5 = a4.startswith("kfj",1,4) print(ret5)
find 寻找字符串中的元素是否存在
a4 = "dkfjdkfasf54" ret6 = a4.find("fjdk",1,6) print(ret6) # 返回的找到的元素的索引,如果找不到返回-1 ret61 = a4.index("fjdk",4,6) print(ret61) # 返回的找到的元素的索引,找不到报错。
split 以什么分割,最终形成一个列表此列表不含有这个分割的元素
ret9 = 'title,Tilte,atre,'.split('t') print(ret9) ret91 = 'title,Tilte,atre,'.rsplit('t',1) print(ret91)
format 格式化输出
res='{} {} {}'.format('egon',18,'male') print(res) res='{1} {0} {1}'.format('egon',18,'male') print(res) res='{name} {age} {sex}'.format(sex='male',name='egon',age=18) print(res)
strip 去除字符串前后两端的空格,换行符,tab键等
name='*egon**' print(name.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))
len 字符串的长度
s='alex' print(len(s))
is系列
name='jinxin123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成