简单数据类型
- 整型
<class 'int'>
- 浮点型
<class 'float'>
- 布尔型
<class 'bool'>
#除了False就是True #一般用于条件表达式,也可以用于逻辑运算(与,或,非,异或) bool1=True bool2=False print(bool1,type(bool1)) #True print(bool2,type(bool2)) #False print(bool1 & bool2) #False print(bool1 and bool2) #False print(bool1 | bool2) #True print(bool1 or bool2) #True print(not bool1) #False print(bool1 ^ bool2)#异或,不同于True #True
- 字符串
<class 'str'>
str1="abc" print(str1,type(str1)) #abc #切分 str2="I love you!" #split按照指定的分隔符进行切割 str3=str2.split(" ") print(str3,type(str3)) #['I', 'love', 'you!']#可以通过下标索引的方式获得 #获取I print(str2[0]) #I #获取love,也可以通过负数索引的方式来获取 print(str2[2:6])#遵循左闭右开原则 #love str2='I love you!' #起始位置(默认从开始):结束位置(默认最后一位):步长(多少个元素取一次) print(str2[::2]) #Ilv o! #长度 print(len(str2)) #11 #替换 str4=str2.replace("love","hate") #I hate you! print(str4) #反转 print(str4[::-1]) #!uoy etah I #其他方法 #转换成大写 print(str4.upper()) #I HATE YOU!
- 空类型
<class 'None'>
类型转换
#记住4个方法:int(),float(),str(),bool() a = "10" print(a,type(a)) #10 i1=int(a) print(i1,type(i1)) #10 #int to float i=20 f1 = float(i) print(f1,type(f1)) #20.0 #to bool #对于数值类型的数转bool,除0以外都是True #对于字符串类型的数转bool,除空字符串以外都是True print(bool("abc")) #True print(bool("True")) #True print(bool("False")) #True print(bool("")) #False print(bool(1)) #True print(bool(1,)) #True print(bool(0)) #False print(bool(-1,)) #True print(bool(-0,)) #False print(bool(0,)) #False
容器数据类型
- 列表
<class 'list'>
定义:[elem1,emel2,emel3,...]
特点:元素的类型可以不相同,元素可以不唯一,有序,可变的
list1 = [1,2,3,4,"a",2,3,False] print(list1,type(list1)) #[1, 2, 3, 4, 'a', 2, 3, False] #获取列表中的第一个元素,可以通过索引的方式来获取 print(list1[0]) #1 #增 list1.append("TRUE") print(list1) #[1, 2, 3, 4, 'a', 2, 3, False, 'TRUE'] list1.insert(1,"abc") print(list1) #[1, 'abc', 2, 3, 4, 'a', 2, 3, False, 'TRUE'] #删 list1.remove(1) print(list1) #['abc', 2, 3, 4, 'a', 2, 3, False, 'TRUE'] print(list1.pop()) #将最后一个元素去除pop #TRUE #改 print(list1) #['abc', 2, 3, 4, 'a', 2, 3, False] #重新赋值 list1[3]="egf" print(list1) #['abc', 2, 3, 'egf', 'a', 2, 3, False] #查 print(list1.index(2)) #index方法用于查询列表中的元素,一般是获取第一个元素的索引位置 #1 #其他方法 list2=[1,2,3,4,7,9,8,6,5] print(list2,type(list2)) #[1, 2, 3, 4, 7, 9, 8, 6, 5] list2.sort() #升序排序 print(list2) #[1, 2, 3, 4, 5, 6, 7, 8, 9] list2.sort(reverse=True)#降序 print(list2) #[9, 8, 7, 6, 5, 4, 3, 2, 1]
- 元组
<class 'tuple'>
定义:
(elem1,elem2,elem3,...)
特点:
元素的类型可以不相同,元素可以不唯一
tumple1=(1,2,3,4,"abc",1,2,True,1.0) print(tumple1,type(tumple1)) #(1, 2, 3, 4, 'abc', 1, 2, True, 1.0) #同样也可以通过下标索引获取数据,说明是有序的 print(tumple1[0]) #1 #元组不支持修改元素,所以是不可变的 #注:元组也是可以支持切片的 print(tumple1[0:4:1]) #(1,2,3,4) print(tumple1[5:8:1]) #(1, 2, True) print(tumple1.index(3)) #获取元素所在的索引的位置 #2 print(tumple1.count(2)) #获取元素的位置 #2
- 字典
<class 'dict'>
定义:
{"k1","v1","k2","v2",...}
特点:
元素的value(类型)可以是任意类型,字典中的元素都是k-v格式,k最好不要重复,没有意义
dict1={ "k1":10, "k2":True, "k3":1.0, "k4":"bbu" } print(dict1,type(dict1)) #{'k1': 10, 'k2': True, 'k3': 1.0, 'k4': 'bbu'} #获取k对应的value print(dict1["k1"]) #10 #print(dict1["k11"]) #key不存在 print(dict1.get("k11","默认值")) #默认值 print(dict1.get("k1","默认值")) #推荐使用 #10 #修改字典中的值 dict1["k1"]="hello" print(dict1) #{'k1': 'hello', 'k2': True, 'k3': 1.0, 'k4': 'bbu'} #添加元素“k5”:“v5” dict1["k5"]="v5" print(dict1) #{'k1': 'hello', 'k2': True, 'k3': 1.0, 'k4': 'bbu', 'k5': 'v5'} #删除元素 print(dict1.pop("k5")) #v5 del dict1["k1"] print(dict1) #{'k2': True, 'k3': 1.0, 'k4': 'bbu'}
- 集合
<class 'set'>
定义:{elem1,elem2,elem3,...}
特点:元素是唯一的,会自动去重,无序的,可变的
set1={1,2,3,4,1,2,"abc","hello",True,1.0} print(set1) #{1, 2, 3, 4, 'abc', 'hello'} #不能通过下标获取,证明set是无序的 #删除元素 set1.remove(3) print(set1) #{1, 2, 4, 'abc', 'hello'} #添加元素 set1.add(7) print(set1) #{1, 2, 4, 'abc', 7, 'hello'} #交 并 差 set2={1,2,3,4,5,6} set3={4,5,6,7,8,9} print(set2 & set3) #{4,5,6} print(set2 | set3) #{1,2,3,4,5,6,7,8,9} print(set2 - set3) #{1,2,3} print(set3 - set2) #{8,9,7}