初识数据类型
一
整型 int
int 1 2 3 主要是用于计算
下面是求一个数字,占多少位 (.bit_length前面不能放存数字)
i = 4
print(i.bit_length())
结果:
二
字符串 str
1,存储少量的数据,便于操作.字符串有顺序能进行索引和切片,并且索引是从0开始的.
s= 'alex'
s = 'alex' s1 = s[0] print(s1,type(s1))
结果
2.字符串切片有个顾首不顾尾原则
s = 'alex' s1 = s[0:2] print(s1)
结果
3.索引还可以跳着索引,这个间隔我们叫步长,可以有正向步长和反向步长. 基本格式 : [起始索引:终止索引:步长]
如果要反向取步长,索引方向也一定是反的
s = 'alex taibai wusir ' #[起始索引:终止索引:步长] s1 = s[0:3:2] print(s1) #倒叙取 s2 = s[-1:-6:-2] print(s2)
结果;
4.字符串常用方法
首字母大写 : .capitalize()首字母大写,其他字母小写
s = 'alex wuSir' # capitalize()首字母大写,其他字母小写 print(s.capitalize())
结果:
大小写反转: 即大写变小写,小写变大写 .swapcase()大小写反转
s = 'alex wuSir' # *swapcase()大小写反转 print(s.swapcase())
结果:
.title() 非字母隔开的部分,首字母大写,其他小写 (空格,数字,特殊符号后分割的首字母大写,其他变为小写)
s = 'alex wuSir1taiBBai*riTian' print(s.title())
结果:
.upper全部大写和 .lower全部小写 一般应用于验证码的输入
s = 'alexaw125uSir' s1=s.upper() #全部大写 s2=s1.lower() #全部小写 print(s1,s2)
结果:
.center() 以什么居中,填充物默认为空,如果填充距离小于自身长度 则不变,大于长度时居中,可以在长度后面加个填充物
s="alex taibai" print(s.center(8)) print(s.center(20,'*'))#填充物为*
结果:
.expandtabs() 有 \t 时自动补位功能,补8的倍数位
s = 'al\tex wuSir' print(s.expandtabs())
结果:
通过元素找索引 两种方法 ,找到的是元素下标. 推荐用.find方法
如果有相同元素会输出第一个元素的索引,如果元素是个整体找索引也是输出找到的第一个元素的索引
index()通过元素找索引,可以整体找,可以切片,找不到会报错
find()通过元素找索引,可以整体找,可以切片,找不到返回-1
s = 'al\tex wuSir' # # ***find()通过元素找索引,可以整体找,可以切片,找不到返回-1 # # index()通过元素找索引,可以整体找,可以切片,找不到会报错 print(s.find('L')) print(s.index('L'))
结果:
.strip 去除字符串前后两端的空格,换行符,tab键等(还可以去除数据)
s = '\talex wusir\n' #.strip 去除字符串前后两端的空格,换行符,tab键等 print(s.strip()) print(s.lstrip()) print(s.rstrip())
结果:
用.strip去除数据
s1 = 'alalelllllllxwusirbl' s= s1.strip("al")#前后有"a"或者"l"都取出,但是遇到不能去除的元素的会停止 print(s)
结果:
判断首字母是不是哪个元素.startswith() 还可以切片判断.startswith("*",5,9)
s = 'alex wusir' print(s.startswith('a')) print(s.startswith('al'))#将"al"看作一个整体判断 print(s.startswith('w',2,8))#从位置2到8判断 print(s.startswith('W',5))#从位置5判断
结果
将字符串转换成列表 .split()方法,括号中不加任何东西,表示以空格作为分割点,作为分割点的元素会消失,如果在开头或结尾则会出现空字符,还可以自已选择分割几处,默认是都分割.
# splitstr --->list方法 s = 'alex;wusir;ritian' s2 = 'alex wusir ritian' s1 = 'alexalaria' print(s.split(';')) print(s2.split())#默认用空格做分割点 print(s1.split('a',1))#只分割一处
结果:
替换元素用.replace()方法, 括号中前面加老元素 后面加要替换的元素,然后还可以添加要替换的个数,默认是都替换
s1 = '姐弟俩一起来老男孩老男孩老男孩' s2 = s1.replace('老','小',1)#老元素'老"新元素"小" 替换个数1 print(s2)
结果:
判断字符串组成;输出布尔值
name='jinxin123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成
结果:
字符串的格式化.format的三种方法
#第一种 s = '我叫{},今年{},身高{}'.format('金鑫',21,175)#顺序不可变 print(s) # 第二种 s = '我叫{0},今年{1},身高{2},我依然叫{0}'.format('金鑫',21,175)#顺序不可变 print(s) # 第三种 s = '我叫{name},今年{age},身高{high}'.format(name = '金鑫',high=175,age=21)#顺序可变 print(s)
结果:
s = ' ' #只能是以至少一个空格组成的字符串(全空格) 只要出现非空格就是False
s.isspace()
s = ' ' #只能是以至少一个空格组成的字符串(全空格) s1 =" " s2 = "ac v " print(s.isspace()) print(s1.isspace()) print(s2.isspace())
结果:
3 .fromkeys() 将一个可迭代对象做key,后面加的value,value的内存地址相同
如果 values是个可更改类型,那么改变一个其他都会更改
不可变的数据类型:可哈希
dic = dict.fromkeys('abc','alex') print(dic) dic1 = dict.fromkeys([1,2,3],[]) print(dic1) dic1[1].append('alex') print(dic1) dic["a"].replace("a","E") print(dic) dic3=dic["a"].upper() print(dic)
结果:
字符串长度 len()
查元素个数 .count
s = 'alexaaaaa wusir' print(s.count('a'))#查元素"a"的个数 s = 'alex' print(len(s))#字符串a的长度
结果:
三
布尔型 bool
等于False的情况有 : 0 ,"" 空字符串,None,[]空列表,{}空字典,()空元祖
用于判断,一般判断时输出 就有两种状态 True False
判断
print(2>1) print(1>2)
结果:
四
元祖 tupe 用()包起来的,也被称作只读列表.a =(1,"wz",[1,2],{1},bool) 里面的数据可以是任何类型.
五
列表 list 用[]包起来,能承载大量数据.和元祖一样 里面的数据也可以是任何类型,并且里面的元素可以被更改.
六
字典 dict
{'name':'alex',
'age':54,
'python10':[化工哥,小白,小黑,萌哥,,花哥,娶哥,阎王]
}
1,可存储大量数据,
2,关联型数据.
3,查找数据非常快.}
七
set集合 能包含大量数据.但是不太常用
八 类型转换补充
int ----> str str(int) 数字变字符串只需要在外面用str()就行
str ----> int int(str) 只能是数字组成的字符串才能进行转换
int ----> bool 零 Fasle 非零 True 数字转换成布尔值,零是True,其他的是False
bool ----> True T ---> 1 F --->0 布尔值转换成数字True是1,False是0
str ---> bool 非空 True 空就是False 字符串转换布尔值,只要不为空就都是True,只有空字符串是False
bool ----> str str(True) str(False) 布尔值转换成字符串就只是在Ture,和False上加个"",
九
for循环 基本格式 for i in a: 输出在a中的所有元素 i 是一个变量
s = 'fdsag' for i in s: print(i)
结果: