python笔记二(list,元组,切片,字典,数据类型列表操作)
今天我们接着说Python
一、数据类型是什么鬼?
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。
二、整形和浮点型
整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄、工资、成绩等等这样的数据就可以用int类型,有正整数、负整数和0,浮点型的也就是小数类型(folat)的,带小数点的
age=25 b = 5.23 print(age) print(b)
三,布尔类型
1 a = True 2 b = False 3 a=1 4 b=2 5 print(a>b)
四.list列表
1.怎么取列表的值,通过下标取
1 new_stus = ['admin','admin1','admin3','柯南','朽木真'] 2 # 列表,list 数组,array 3 # 编号叫做下标,索引,角标 4 # 最前面一个元素的下标是0,最后面一个元素的下标是-1 5 print(new_stus[0]) 6 print(new_stus[-1])
2.给列表增加一个值
1 cits = ['admin'] 2 # 增加一个值 3 cits.append('珠海') #在列表末尾增加一个元素 4 cits.insert(0,'广州') #insert的下标从0开始,不能写负数,在指定位置增加数据 5 cits.append('北京') 6 print(cits)
3.删除一个值
1 #删一个值 2 cits.pop(0) #删除指定位置的元素 3 cits.remove('北京')#删除指定的元素 4 cits.clear()#清空list 5 del cits[-1] #删除指定位置的,-1代表末尾的元素 6 print(cits)
4.修改列表
cits[1]='南江' #修改的时候如果指定的下标不存在,会报错 cits[2]='山西' print(cits)
5.查询列表
1 print(cits[0]) #指定位置的 2 print(cits.index('广州'))#获取元素的下标,如果找不到那个元素的话会报错 3 print(cits.count('广州'))#看元素在list里面出现了多少次 4 print(cits)
6.list反转字符串lis.reverse()和lis[::-1]的区别和定义的字符串转list,list如何转string类型
1 a=['s','w','r','h','t'] 2 v=str(a) 3 t="".join(a)#list转换为string类型得用这个函数才可以不能直接转换 4 print(v) 5 print(t) 6 print(type(v)) 7 print(type(t)) 8 9 b = ('asdfgh') 10 c=list(b)#定义的字符串可以直接转换为list 11 12 print(a.index('s')) #原有s的下标是0 13 print(a[::-1])#反转字符串 ,产生一个新的list,不会改变原来list的值和下标 14 print(a.index('s'))#转义之后s的下标依然为0 15 print(b[::-1]) 16 a.reverse()#就是把这个list反转了一下,自己不会返回东西,所以不能直接print,改变原来list的值 17 print(a.index('s'))#转义之后的下标是4 18 print(a) #直接输出反转之后的结果 19 c.reverse() 20 print(c) 21 #reverse这个函数是list特有的,定义的字符串不能直接反转输出,需要转换为list之后才能反转输出
7.排序,升序和降序
1 nums=['d','s','h','a','z','x'] 2 nums.sort()#排序 升序 3 nums.sort(reverse=True) #排序,降序 4 print(nums)
8.合并list
1 cits=['admin','admin2'] 2 cities2=['厦门','深圳','成都'] 3 print(cits+cities2) #合并list 4 print(cities2*2) #乘以几,就是把这个值重复几次
9.list多为数组的显示
1 word = ['asda','dddsf','wer', 2 ['price','num',123,['hello','usa']]] #三维数组 里面套了几层叫几维数组 3 4 print(word[-1][-1][1])
10.list的小练习
1 #注校验用户名是否合法: 2 # 输入账号密码 3 # 如果账号存在的,提示已经注册,如果不存在的,提示注册 4 # 不能为空 5 # 用户名长度在6-12之间 6 # 最多输入3次 7 b=['admin','张三','李四'] 8 for i in range(3): 9 username=input('请输入用户名').strip() 10 if len(username)>5 and len(username)<13: 11 if b.count(username)>0: 12 print('姓名已经被注册') 13 else: 14 print('注册成功') 15 break 16 else: 17 print('姓名不合法,用户名长度在6-12之间') 18 else: 19 print('最多输入3次')
11.list循环
1 # for 循环在循环可迭代对象的时候每次循环的是里面的每一个元素 2 lists = ['admin1','w','d','v',['1','4','2']] 3 for name in lists: 4 if type(name)==list: #判断一个变量的类型 5 for i in name: 6 print(i) 7 print(name)
12.list的循环练习
1 stus=[['小明','未交'], 2 ['小白','已交'], ['小紫','已交'], 3 ['小红','未交'], ['小绿','未交'], 4 ['小黄','未交'], ['小黑','已交']] 5 6 pass_list=[] 7 fail_list=[] 8 for i in stus: 9 if i[1]=='未交': 10 fail_list.append(i) 11 else: 12 pass_list.append(i) 13 print(fail_list) 14 print(pass_list)
13.list列表合并
1 a=[] 2 a.append('aa') 3 b=[1,2] 4 print(a+b) 5 a.extend(b)#合并列表 6 print()
三.切片:切片其实就是list取值的一种方式
1 nums=['admin','admin1','admin2','admin3'] 2 print(nums[1:3]) #切换顾头不顾尾,(不顾尾就是不包含最后一个下标) 3 print(nums[1:]) #如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写 4 print(nums[:2])#如果从头开始取,取到后面某个下标结束,那么开头的下标可以不写 5 print(nums[:])#取所有的
1.range也是顾头不顾尾
1 for i in range(3): #range也是顾头不顾尾 2 print(i)
2.切片最后一位写参数的话,代表步长
1 lis=list(range(1,21)) 2 print(lis) 3 print(lis[:10:2])#最后一个参数取值的话,是代表步长,隔几个取一个 4 # print(lis[::-1])#反转字符串 ,产生一个新的list,不会改变原来list的值和下标 5 # 如果步长是整数的话,从左往右开始取值。 6 # 如果步长是负数的话,是从右边往左边开始取值
3.切片操作同样适用于字符串
1 info='你好,今天天气很好' 2 print(info[2::-1])
#可变变量
#里面的原色你可以随便修改
# list 元组
#不可变变量
#里面值不能修改
#string 字符串不能修改
四.元组
元组也是一个list,他和list的区别是,元组里面元素无法修改
用小括号括起来的就是元组,无法增删查改
1.获取元组的值
1 # 如果元组里面,只有一个元素的话,那么你必须在这个元素后面增加一个逗号 2 t=(1,2,3,4,5,6,7) 3 lists=('sds','dssd','sdsdsd') 4 words=(1,) 5 words2=('sdsd',) 6 print(type(words)) 7 print(type(words2)) 8 # 元组里面只有这两个方法 9 t.index(2) #找到元素的下标 10 t.count(2)#找到元素的个数 11 print(t.index(2)) 12 print(t.count(2))
五。字典
字典都是以key --- values 的键值对存在的
优点:获取数据方便,速度快
1.查询数据
1 infos = {'name':'admin','sex':'女','addr':'珠海'} 2 #查 3 print(infos.get('name1'))#取不到key的话,就是none 4 print(infos.get('name1',110))#如果取不到值的话,就是默认110 5 print(infos['sex']) #如果key不存在会报错,用中括号这种
2.增加数据
1 infos['phone']=12334332343 #增加一个key 2 infos.setdefault('小金库','200万') 3 print(infos) 4 #字典是无序的,随意排序的 5 6 infos['name']='小花' #如果key存在的话,会修改原来key对应的value 7 infos.setdefault('name','小花') #如果key存在的话,不会修改原来的key值 8 print(infos)
3.修改数据
#修改 只有这一种方式
infos['name']='小花'
4.删除数据
1 infos.pop('name') #指定key来删除 2 infos.popitem()#随机删除一个key 3 del infos['phone'] #指定key来删除 4 infos.clear() #清空字典 5 print(infos)
5.获取值的方法
1 print(infos.values()) #获取到字典所有的values 2 print(infos.keys()) #获取到字典所有的key 3 print(infos.items()) #获取到字典所有的k -v
6。把b字典元素添加到a元素里面
a={"key1":"v1"} b={"key2":"v2"} a.update(b) #把b字典元素加入到a元素里面 print(a)
7.字典小练习
1 users = {} 2 #所有的账号和密码 3 #username pwd cpwd 4 # print('123456' in users) #字典里面用in判断的话,只是判断key是否存在,value是不判断的 5 for i in range(3): 6 username= input('账号:').strip() 7 passwd = input('密码:').strip() 8 cpasswd= input('确认密码:').strip() 9 if username =='' or passwd=='' or cpasswd=='': 10 print('用户名或密码不能为空') 11 elif username in users: 12 print('用户已经被注册') 13 elif passwd!=cpasswd: 14 print('两次密码要一致') 15 else: 16 print('注册成功') 17 users.setdefault(username,passwd) 18 break 19 else: 20 print('错误次数过多') 21 22 print(users)
8.字典的练习2
1 people = { 2 '马天宇':{ 3 'age':18, 4 'money':200, 5 'clothes':'100套', 6 'hzp':'n多', 7 'shoes':['nike','addis','乔丹'] 8 }, 9 '花千骨':{ 10 'age':19, 11 'money':30, 12 'cars':{'japan':['普拉多',['库懒惰']]}, 13 'house':['三环一套','四环两套'] 14 } 15 } 16 17 print(people['花千骨']['cars']['japan'][1]) 18 print(people['花千骨']['cars']['japan'][0:]) 19 print(people['花千骨']['money']+200) 20 people['马天宇']['shoes'].append('牧马人') 21 print(people) 22 23 for i in people: 24 print(i) 25 26 for k,v in people.items(): #同时循环的时候,同时取key和valu 27 print(k,'==>',v)
六,常用的字符串方法
1 a = ' 字 符 串 \n\n\n\n\n\n\n ' 2 c= a.strip() #默认去掉字符串两边的空格和换行符 3 c = a.lstrip() #默认去掉左边的空格和换行符 4 c = a.rstrip() #默认去掉右边的空格和换行符 5 print('c...',c) 6 print('a...',a) 7 8 words = 'day is a wonderfulday' 9 print(words.strip('day')) #如果strip方法指定一个值得话,那么会去掉这两个值 10 print(words.count('a'))#统计字符串出现的次数 11 print(words.index('is'))#找下标,如果元素找不到的话会报错 12 print(words.find('z'))#找下标,如果元素找不到的话,返回-1 13 print(words.replace('day','DAY')) #替换字符串 14 print(words.isdigit()) #判断字符串是否为纯数字 15 print(words.startswith('day')) #判断是否以某个字符串开头 16 print(words.endswith('day'))#判断是否以某个字符串结尾 17 print(words.upper()) #变成大写的 18 print(words.lower()) #变成小写的 19 20 username = 'asdfgh' 21 print(username.isalpha())#判断字符串是否全为字母 22 print(username.isalnum())#判断是否包含字母和数字,他是只要有字母或者数字就返回true
以上都是python的基本操作,小伙伴们如果想熟悉的话,多练习,熟能生巧哦