700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > PYTHON自动化Day3-列表/元组/切片/字典/字符串处理方法

PYTHON自动化Day3-列表/元组/切片/字典/字符串处理方法

时间:2018-10-15 07:53:39

相关推荐

PYTHON自动化Day3-列表/元组/切片/字典/字符串处理方法

1.列表:

stus='赵传慧,贾丹,段家林,刘伟,梁盼,刘艳'new_stus = ['赵传慧','贾丹','张流量','李wifi','颜军田']#列表、list、数组、array#下标、索引、角标、编号print(new_stus[-1])#最前面一个元素的下标是0,最后面一个元素的下标是-1cities = []#增cities.append('北京') #在列表末尾增加一个元素cities.insert(0,'上海') #在指定的位置增加元素cities.append('广州')#删cities.pop(0) #删除指定位置的元素cities.remove('北京')#删除指定的元素cities.clear() #清空listdel cities[-1] #删除指定位置的print(cities)#修改cities[1]='南京' #修改的时候如果指定的下标不存在,会报错print(cities)# #查print(cities[0]) #指定位置的print(cities.index('广州')) #获取元素的下标,如果找不到那个元素的话,会报错print(cities.count('广州')) #查看元素在list里面出现了多少次my_list = ['python','jmeter','charles','postman']print(my_list.reverse()) #就是把这个list反转一下print(my_list)nums = [9,2,34,12,34,457,2342]nums = ['b','f','e','z','g','h']# nums.sort() #排序,升序nums.sort(reverse=True) #排序,降序print(nums)cities2 = ['深圳','厦门','成都']# print(cities+cities2)#合并listprint(cities*3) #复制几次print('哈哈哈'*3)words = ['view','code','tools',['price','num',198,['hello','usa','吃鸡']] ] #二维数组print(words[-1][-1][1])print(words[-1][2])names=[ ['小黑',['小绿',138]],'小红',['小紫',['小白']]]# print(names[-1][-1])print(names[0][-1][-1])

#列表的extend方法 :letters = ['a', 'b']letters.extend(['c', 'd'])print(letters) # ['a', 'b', 'c', 'd'] letters.append(['e', 'f'])print(letters) # ['a', 'b', 'c', 'd', ['e', 'f']] names = ['Foo', 'Bar']names.append('Baz')print(names) # ['Foo', 'Bar', 'Baz'] names.extend('Moo')print(names) # ['Foo', 'Bar', 'Baz', 'M', 'o', 'o']#append()添加数据时只能添加一项无论参数是list还是单一变量#而extent则不同,extent是将参数看成一个list每次取list内部的一项

list循环

lists = ['张流量','李wifi','王路由器','牛网线',[1,2,3,4]]words='marry,lily,joker'# for i in range(4): #其他语言## 0 ,1,2,3#print(lists[i])for name in lists:if type(name)==list: #判断一个变量的类型for i in name:print(i)print(name)# for name in words:#print(name)#for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素

list小练习:

# 校验用户名是否合法:# 输入账号 #input# 如果账号存在的,提示已经被注册,如果不存在的,就让他注册 all_users 【 】#不能为空#strip()#用户名长度长度6-12之间 len()#最多输入3次#循环all_users = ['牛寒阳','梁盼','zhangwifi']for i in range(3):username = input('请输入账号:').strip()if len(username)>5 and len(username)<13:if all_users.count(username)>0:print('这个名字太好啦,已经被注册啦!')else:print('名字不错,赶紧注册吧!')breakelse:print('用户名长度不合法!长度6-12之间!')else:print('失败次数过多')

小练习2:

stus=[['小明','未交'],['小白','已交'],['小紫','已交'],['小红','未交'],['小绿','未交'],['小黄','未交'],['小黑','已交']]pass_list = [ ] #所有已经交作业的同学fail_list = [ ] #没有交作业同学的名字for stu in stus:status = stu[1] #状态name = stu[0] #名字if status == '未交':fail_list.append(name)else:pass_list.append(name)print('未交作业的所有同学是 %s ,总共有 %s 个人'%(fail_list,len(fail_list)))print('已交作业的所有同学是 %s ,总共有 %s 个人'%(pass_list,len(pass_list)))

2.元组

# 元组也是一个list,他和list的区别是,元组里面元素无法修改# print(type(t))# #试试 循环、切片、下标取值、修改值# print(t[:1])# print(t[3])# # for i in t:# #print(i)# print(t)#如果元组里面 只有一个元素的话,那么你必须在这个元素后面加一个逗号t = (1,2,4,5,6,7)words=(1,)words2=('abc',)print('t',type(t))print('words',type(words))print('words2',type(words2))print(t.index(2)) #找到元素的下班print(t.count(2)) #找到元素的个数

3.切片

# 切片是list取值的一种方式nums = ['段佳林','陈卫亮','王占宇','李博']# 0 1 2 3print(nums[1:3])print(nums[0])print(nums[1:3]) #顾头不顾尾print(nums[1:]) #如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写print(nums[:2]) #如果是从头开始取,取到后面某个下标结束,那么开头的下标可以不写print(nums[:]) #取所有的lis = list(range(1,21))print(lis)print(lis[::2]) #步长,隔几个取一次print(lis[::-2]) #步长,隔几个取一次#如果步长是正数的话,从左往右边开始取值##如果步长是负数的话,从右边往左边开始取值print(lis[::-1]) #反转listprint(lis)print(lis[1::-1])print(lis[:])lis.reverse() #改变了原来list的值new_list = lis[::-1] #产生了新的一个list,不会改变原来list的值print(new_list)print(lis)#切片操作同样适用于字符串。info = '你好,今天天气很好'# 0 1 2 3 4 5 6 7 8print(lis)print(lis[:18:-1])# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]#18 # 19print(lis)print(lis[::-2])print(lis[::-1])print(lis[:18:-1]) # -1倒序,开头没有取值,所以默认从20往左取值,取到18的下标(19),但不顾尾,所以19不取s = 'hahaha's = '小黑'print(s)print(s[0])print(s[::-1])

4.字典:

# key - value# string list dict# 1、取数据方便# 2、速度快,#查# print(infos.get('phone'))#取不到这个key的话,就是None# print(infos.get('phone',110))#如果取不到这个key的话,默认就是110# print(infos['phone'])#如果key不存在会报错infos = {'name':'张流量','sex':'男','addr':'火星','age':180}#增infos['phone']=13611087045 #增加一个keyinfos.setdefault('小金库','2000w')infos.setdefault('name','鹏妹妹') #如果key存在的话,不会修改原来key里面的值infos['name']='鹏妹妹' #如果key存在的话,会修改原来key对应的value# print(infos)#字典是无序的#修改infos['name']='鹏妹妹'#删除# infos.pop('name') #指定key来删除# infos.popitem() #随机删除一个key# del infos['phone'] #指定key来删除# infos.clear() #清空字典#方法# print(infos.values())#获取到字典所有的value# print(infos.keys()) #获取到字典所有的key# print(infos.items()) # 获取字典所有的k-vpeople = {'田雨':{'age':18,'money':200000,'clothes':'100套','hzp':'n多','shoes':['nike','addis','lv','chanle']},'张流量':{'金库':'2000w','house':['三环一套','4环2套'],'cars': {'japan':['普拉多','兰德酷路泽'],'usa':['林肯','凯迪拉克','福特'],'china':['五菱宏光','qq','红旗']}}}people['张流量']['cars']['usa'].append('牧马人')# people['田雨']['shoes'].append('匡威')# print(people)# people['田雨']['money'] = people['田雨']['money']+200# people['田雨']['money'] += 200# print(people)#直接循环一个字典的话,那么循环的是字典的key# for p in people:#print(p)for k,v in people.items(): #循环的时候,同时取key和valueprint(k,'======》',v)

5.字典练习:

users = {'niuhanyang':'123456','yangyafu':'456789',}#所有的账号和密码# username# pwd# cpwd# print( '123456' in users ) #字典里面用in来判断的话,只是判断key是否存在for i in range(3):username = input('账号:').strip()passwd = input('密码:').strip()cpasswd = input('密码确定:').strip()if username=='' or passwd=='' or cpasswd=='':print('用户名/密码不能为空')elif username in users:print('用户名已经被注册!')elif passwd!=cpasswd:print('两次输入的密码不一致')else:print('恭喜,注册成功!')# users.setdefault(username,passwd)users[username]=passwdbreakelse:print('错误次数过多')print(users)

作业1:

# 第一个作业# 1、校验密码是否合法的程序。#输入一个密码#1、长度5-10位#2、密码里面必须包含,大写字母、小写字母和数字## /archives/160 取交集的这种方式可以实现#3、最多输入5次capital={'A','B','C','D','E','F','G','H','I','G','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}minuscules={'a','b','c','d','e','f','g','h','i','g','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}number={'1','2','3','4','5','6','7','8','9','0'}password=[]for i in range(5):pwd=input("请输入密码:").strip()long=len(pwd)password = set(pwd)if long > 10 or long<5:print("密码长度需要在5-10位之间")elif password & capital == set() or password & minuscules == set() or password & number == set():print('密码里面必须包含,大写字母、小写字母和数字')elif pwd == '':print("请输入密码:")else:print("您输入的密码合法")

作业2:

#二维字典的插入和读取#写一个程序根据输入进行录入学生信息或查看作业情况homeworks = {'张流量':{'.3.22':'未交','.3.23':'未交'},'田雨':{'.3.22':'未交','.3.23':'未交'},}for i in range(3):choice = input('请输入你的选择:\n''1、录入学生作业情况\n''2、查看作业情况\n')if choice=='1':name = input('学生姓名:')date = input('日期:')status = input('是否作业:')if name=='':print("请输入姓名")else:homeworks.setdefault(name,{})homeworks[name][date]=statusprint('录入成功!您录入的信息为:''%s:%s:%s' %(name,date,status))elif choice=='2':for k, v in homeworks.items(): # 循环的时候,同时取key和valueprint(k, ':', v)else:print('输入错误')print('您的输入已达到三次,系统自动退出')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。