可变 or 不可变
值变,ID不变,是可变类型
值变,ID变化,是不可变类型
数字类型(int):
1,用途:记录年龄,等级,号码
2,定义方式:age = 18#age= int(18)
3常用方法:数学计算、
int('101')#只能讲字符串包含纯数字转成整型
字符串内浮点数需先转成浮点数,再转整型
十进制转其他:
bin()二进制,oct()八进制,hex()十六进制
总结:1,无序,2,不可变,3,一个值
浮点数(float)
1,用途:身高,体重,薪资
2,定义方式:height = 1.8
3常用方法:数学计算
总计:同INT
字符串(str)
用途:描述性信息
定义方式:‘ ’ ,“ ”,“”“ """,‘’‘ ’‘’,不可混用,套用不可与上一层相同
1.索引取值s[:: -1] ,正向,反向,都可以,只取不存
2,成员运算: in , not in 返回bool
3,strip(),去除左右两边空格,
4,split('标记')切分字符串,输出列表,
5,len()获取当前数据中元素的个数
6,for()可获得str'里的每个字符
总结:同int
需要掌握的:
1,strip,(去左右) lstrip(去左) , rstrip(去右)
2,lower(),转小写,upper(),转大写
3,startwith,endwith ('判断是否以引号内开头/结尾')
4,format三种玩法
print('姓名%s,年龄%s'%('tian',18))#%站位
print('姓名是{name},年龄是{age}'.format(age=18,name='tian'))#关键字
print('姓名是{},年龄是{}'.format('tian',18))#顺序
print('姓名是{0},年龄是{1}'.format('tian',18))#序列索引
5,split (从左往右), rsplit#根据括号里的符号,进行分割,从右往左
6,join#用连接符把字符串,列表,拼接成字符串s1 = ['a','b','c','d']print('1'.join(s1))
7,replace print (s.replace('老',"新"))
msg='alex say i have one tesla,alex is alex hahaha'
print(msg.replace('alex','sb',1))#最后这个1代表替换的个数,默认-1,全部替换
print(msg)
8,isdigit#判断字符串中包含是否纯数字
需要了解:
1,find ,rfind(从右侧开始找,返回值为字符串最左端的位置),index,rindex,count
s1 = '你吃饭了么'
print(s1.find('饭')) 找到返回索引,找不到返回-1
print(s1.index(a)) 找到返回索引,找不到报错
msg='alex aaa alex'
print(msg.count('alex'))#返回包含字符串的个数
2,center,ljust左添加, rjust右添加 ,zfill右对齐左侧添加00000
print('egon'.center(5,'*'))
3,print('a\tb'.expandtabs(1))
返回一个副本,其中所有制表符都使用空格展开。
如果未指定tab size,则假定tab大小为8个字符。
print('hello'.capitalize())#首字母放大
print('hElLo'.swapcase())#大写变小写,小写变大写
print('egOn is nB'.title())#每个单词首字母大写,其余小写
is 系列
isdigit :unicode, bytes 进行判断
isnumeric 中文数字,罗马数字
print('ab123发送到'.isalnum())#字符串中包含的是字母(中文字符)或数字
总结:
1.存一个值。
2,有序
3,不可变
列表(list)
用途:存放一个或者多个不同类型的值,
定义方式:在中括号[]内,用,逗号分隔
l=['egon','lxx','yxx'] # l=list(['egon','lxx','yxx'])
l1=list('hello') ['h', 'e', 'l', 'l', 'o']
l2=list({'x':1,'y':2,'z':3}) ['x', 'y', 'z']
print(l2)list(10000) #报错
可以str转列表,相当于内置for循环,依次循环出每一个字符
字典转列表只保留KEY值,不保留value
优先掌握:
1,安索引取值,,正反都可以,可存可取
2,切片:print(l[0:5]),顾头不顾尾,第三个参数为步长
3,len()长度,元素个数
4,成员运算: in和 not in
5添加——
append(),添加最后一位,依次添加一个值,追加
insert( x,y )x为插入位置,Y为插入内容,返回值是None
l.extend([1,2,3])插入可迭代对象,插入多个元素
6,删除——
删除del l[1]
l.remove("x") x指定删除内容,返回值是None
l.pop(x) x指定位置,默认-1,最后一个删除
l.clear 移除所有元素
7.循环——
l=['tian','lxx','yxx',444,555,66666]
for i in l:
print(i)
需掌握操作:
count()
index()找不到返回报错
l.reverse() 元素首尾调换
nums=[3,-1,9,8,11]
nums.sort(reverse=False)
print(nums)
总结:
1,多个值
2,有序
3,可变
概念:
队列:先进先出
堆栈:先进后出
元组tuple
用途:存储多个不同类型值,不能存可变类型,值不能被改变
方式:通过()逗号分隔,定义容器类型,只有一个值后面加逗号
类型转换 tuple(),字符串,列表,集合,字典(只转换KEY)
用法:
索引取值,正向,反向
切片(骨头不顾尾,步长)
长度len(),计数count(), 查找index()
成员运算:in not in
总结:有序,不可变,多个值
字典dict
定义:通过{}储存,通过KEY:values定义键值对,中间用逗号分隔,
三种定义方式:
d1 = {'name':'egon','age':84}
d1 = dict(name='sean', age=18)
zip l1 = ['name', ' age'] l2 =['egon',18]
z1 = zip(l1,l2)
key 一定是不可变类型
values 可以任意类型
常用方法:
优先掌握:
1,按KEY取值,可存可取
2,赋值操作,如果key不存在,直接新增
赋值操作如果key存在,则会修改value值
3,长度,len()
4,d1.get(),#key没有返回None,如果有第二个参数,返回参数值
5,d1.keys,d1.values 返回列表
d1.item 返回所有键值队列,外面套元组
结合FOr循环使用拿出每个字符,否则,默认遍历KEY
6,pop指定key进行删除,返回值为对应的value
POPitem()随即弹出一个键值对,返回一个元组
7update:用新字典替换旧字典,有则改,无则增
setdefault:有不改,返回原有Value,无新增,反新值
8,in notin 成员运算
9,fromkeys([1,2,3],key),生成一个新字典,会一第一个参数的各个元素为Key,以第二个参数为值得新字典
集合set
作用;去重,关系运算
定义:每个元素必须为不可变类型,集合内没有重复的元素。集合内元素无序
d ={} #空字典
s = set()#空集合
关系运算:
合集 |
交集&
差集-
对称差集^
去重:
列表转——集合——列表,完成去重,但是顺序被打乱
如何去重不打乱顺序:
new= []
for dic in l:
if dic not in new
new.append(dic)
print(new)
总结,无序,可变,存多个值