可变 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)

 

总结,无序,可变,存多个值