一.整型和浮点型
Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样
1 age=10 2 num=-35 3 score=98.8
二.布尔类型
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写)
1 a = True 2 b = False
三.列表和列表操作
列表是 我们常用的一种数据类型之一,list是一种有序的集合,可以随时添加和删除其中的元素。列表也叫数组,列表定义,使用[]即可。
比如,列出班里所有同学的名字,就可以用一个list表示, 列表里面也可以再套列表。
列表中的元素,下标从0开始计数,比如list1中四个元素,那么他的第一个元素的下标为0,第二个元素的下标为1,依次类推,所以list1[0]输出的是第一个元素1。列表中最后一个元素的下标为-1,所以list2[-1][0]输出的是“羊”这个元素,list3[-1][1]输出的是500这个元素。
1 list1 = [1,2,3,4]#一维数组 2 list2 = ['猫','狗',['羊','猪']] #二维数组 3 list3 = ['hello','apple',['banana',500,['OK','30']]]#三维数组 4 # print(list1[0])#最前面一个元素的下标是0,最后面一个元素的下标是-1 5 # print(list2[-1][0]) 6 # print(list3[-1][1])
对于列表的操作,分别有增、删、改、查
增:
1 cities = [] 2 cities.append('北京')#在列表末尾增加一个元素 3 cities.insert(0,'上海')#在列表指定位置增加元素 4 cities.append('广州') 5 print(cities)
删:
1 # cities.pop(0)#删除指定位置的元素 2 # cities.remove('广州')#删除指定元素 3 # cities.clear()#清空列表 4 # del cities[-1]#删除指定位置的元素
改:
1 cities[1] = '南京'#修改的时候如果指定的下标不存在会报错
查:
1 print(cities[0])#输出指定位置的元素 2 print(cities.index('北京'))#获取指定元素的下标,如果找不到那个元素会报错 3 print(cities.count('广州'))#查看元素在这个list里出现了几次
列表的一些内置方法
1 list4 = ['python','jmeter','postman','linux','mysql'] 2 print(list4.reverse())#把这个list反转一下,输出的结果是None 3 print(list4)#输出的是反转后的list 4 5 list5=[8,23,12,86,34,10,5] 6 print(list5.sort())#排序 升序 7 print(list5) 8 print(list5.sort(reverse=True))#排序 降序 9 print(list5) 10 11 print(list4+list5)#合并两个list
12 print(list4.extend(list5)) #合并列表,把list5的值加到list4后面 13 print(list4*2)#将list复制 14 print(list5*2)#将list复制,并不是将里面数值乘2
切片是list取值的一种方式
1 nums = [14,7,23,56,34,18] 2 print(nums[0])#取下标为0的元素 3 print(nums[1:3])#取小标1至下标3之间的值,包括1,不包括3 4 print(nums[1:-1])#取小标1至-1的值,不包括-1 5 print(nums[1:])#取从下标为1的元素以及后面的所有元素 6 print(nums[:4])#取下标0至4的值,不包括4 7 print(nums[:])#取所有的 8 9 #加上步长如下所示: 10 nums1=[1,2,3,4,5,6,7,8,9,10] 11 print(nums1[::2])#这个代表取所有元素,每隔2个元素取一个 12 #输出[1, 3, 5, 7, 9] 13 print(nums1[1:8:3])#代表取第二个元素开始,到第八个结束,隔3个取一次 14 #输出[2, 5, 8]
list循环:
1 lists = [ 2 '张流量','李wifi','王路由器','牛网线',[1,2,3,4] 3 ] 4 for name in lists: #for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素 5 if type(name)==list: #判断一个变量的类型 6 for i in name: 7 print(i) 8 print(name)
四.元组
元组也是一个list,他和list的区别是,元组里面元素无法修改
如果元组里面 只有一个元素的话,那么你必须在这个元素后面加一个逗号
元组也可以进行循环、切片、下标取值,但无法修改值
1 t = (1,2,3,4,5,6,2) 2 print(type(t)) 3 print(t[0]) #对元组进行下标取值 4 print(t[:4]) #对元组进行切片取值 5 for i in t: 6 print(i) 7 print(t.index(2)) #找到元素的下标 8 print(t.count(2)) #找到元素的个数
1 k=('abc') 2 print(type(k)) 3 #输出类型为<class 'str'> 4 m=('abc',) 5 print(type(m)) 6 #输出类型为<class 'tuple'>
五.字典
Python内置了字典,dict使用键-值(key-value)存储,具有极快的查找速度。举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list:一个存储姓名names,一个存储成绩score。给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长。如果用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。
1 d = {'Michael':88,'Mary':97,'Kevin':92} 2 print(d['Michael']) 3 print(d.get('Mary'))#取不到这个key的话,就是None 4 print(d.get('Aimee',99)) #如果取不到这个key的话,默认就是99
5 print(d.get('Aimee')#如果key不存在,会报错
字典的特性:
字典是无序的,因为它没有下标,用key来当索引,所以是无序的
字典的key必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重
字典的增删改查:
增加:
1 d['Aimee']=100 2 d.setdefault('Linda',89) 3 d.setdefault('Mary',100)#如果key存在的话,不会修改原来key对应的value值 4 print(d) 5 #输出{'Kevin': 92, 'Linda': 89, 'Michael': 88, 'Aimee': 100, 'Mary': 97} 6 d['Mary'] = 100#如果key存在的话,会修改原来key对应的value值 7 print(d) 8 #输出{'Kevin': 92, 'Linda': 89, 'Michael': 88, 'Aimee': 100, 'Mary': 100}
修改:
1 d['Aimee'] = 88.88
删除:
1 d.pop('Kevin')#删除指定key 2 d.popitem()#随机删除一个key 3 del d['Mary']#删除指定key 4 d.clear()#清空字典
查找:
1 infos = {'marry': [18, 18612512981, '北京'], 'amy': [20, 18612512991, '山东'], 'lily': [25, 18612532981, '河南']} 2 infos.get('marry')#获取marry的信息,这种方式如果key不存在的话,会返回None 3 infos['Marry']#这种方式如果key不存在的话会报错 4 marry in infos#判断marry是否在这个字典中,返回True或False
字典的内置方法:
1 print(d.keys())#获取到字典所有的key 2 print(d.values())#获取到字典所有的value 3 print(d.items())#获取到字典所有的k-v 4 d2={'stu1':95,'stu2':86,'Aimee':66} 5 d.update(d2)#更新字典值,如果key存在的话就更新,不存在的话就添加
字典循环:
1 d = {'Michael':88,'Mary':97,'Kevin':92} 2 for k in d: 3 print(k,d[k])#打印key和value的值,推荐使用这种方式,速度快 4 5 for k,v in d.items(): 6 print(k,v)#打印key和value的值,这种方式不推荐,因为会把字典转换成列表
字典排序:
d = {'a':8,'b':2,'c':3} #字典是无序,直接对字典排序是不存在的。
print(d.items()) #每次运行打印的结果顺序都有可能不同
res = sorted(d.items(),key=lambda x:x[0]) #sort,循环调用,按key排序
res = sorted(d.items(),key=lambda x:x[1]) #按value排序
print(res)
小栗子:
1 people = { 2 '张三':{ 3 'age':18, 4 'money':200000, 5 'clothes':'100套', 6 'hzp':'n多', 7 'shoes':['nike','addis','lv','chanle'] 8 }, 9 '李四':{ 10 '金库':'2000w', 11 'house':['三环一套','4环2套'], 12 'cars': { 13 'japan':['普拉多','兰德酷路泽'], 14 'usa':['林肯','凯迪拉克','福特'], 15 'china':['五菱宏光','qq','红旗'] 16 } 17 } 18 } 19 people['张三']['shoes'].append('匡威') 20 people['李四']['cars']['usa'].append('牧马人') 21 people['张三']['money'] = people['张三']['money']+500 22 people['张三']['money']+=900 23 print(people)