PYTHON自动化Day3-列表/元组/切片/字典/字符串处理方法
生活随笔
收集整理的這篇文章主要介紹了
PYTHON自动化Day3-列表/元组/切片/字典/字符串处理方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.列表:
stus='趙傳慧,賈丹,段家林,劉偉,梁盼,劉艷'new_stus = ['趙傳慧','賈丹','張流量','李wifi','顏軍田'] #列表、list、數(shù)組、array #下標、索引、角標、編號 print(new_stus[-1]) #最前面一個元素的下標是0,最后面一個元素的下標是-1 cities = [] #增 cities.append('北京') #在列表末尾增加一個元素 cities.insert(0,'上海') #在指定的位置增加元素 cities.append('廣州') #刪 cities.pop(0) #刪除指定位置的元素 cities.remove('北京')#刪除指定的元素 cities.clear() #清空list del cities[-1] #刪除指定位置的 print(cities) #修改 cities[1]='南京' #修改的時候如果指定的下標不存在,會報錯 print(cities) # #查 print(cities[0]) #指定位置的 print(cities.index('廣州')) #獲取元素的下標,如果找不到那個元素的話,會報錯 print(cities.count('廣州')) #查看元素在list里面出現(xiàn)了多少次 my_list = ['python','jmeter','charles','postman'] print(my_list.reverse()) #就是把這個list反轉(zhuǎn)一下 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)#合并list print(cities*3) #復制幾次 print('哈哈哈'*3) words = ['view','code','tools',['price','num',198,['hello','usa','吃雞']] ] #二維數(shù)組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()添加數(shù)據(jù)時只能添加一項無論參數(shù)是list還是單一變量#而extent則不同,extent是將參數(shù)看成一個list每次取list內(nèi)部的一項list循環(huán)
lists = ['張流量','李wifi','王路由器','牛網(wǎng)線',[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循環(huán)在循環(huán)可迭代對象的時候,每次循環(huán)的是里面的每一個元素list小練習:
# 校驗用戶名是否合法:# 輸入賬號 #input# 如果賬號存在的,提示已經(jīng)被注冊,如果不存在的,就讓他注冊 all_users 【 】#不能為空 #strip()#用戶名長度長度6-12之間 len()#最多輸入3次 #循環(huán) 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('這個名字太好啦,已經(jīng)被注冊啦!')else:print('名字不錯,趕緊注冊吧!')breakelse:print('用戶名長度不合法!長度6-12之間!') else:print('失敗次數(shù)過多')小練習2:
stus=[['小明','未交'],['小白','已交'],['小紫','已交'],['小紅','未交'],['小綠','未交'],['小黃','未交'],['小黑','已交']] pass_list = [ ] #所有已經(jīng)交作業(yè)的同學 fail_list = [ ] #沒有交作業(yè)同學的名字 for stu in stus:status = stu[1] #狀態(tài)name = stu[0] #名字if status == '未交':fail_list.append(name)else:pass_list.append(name) print('未交作業(yè)的所有同學是 %s ,總共有 %s 個人'%(fail_list,len(fail_list))) print('已交作業(yè)的所有同學是 %s ,總共有 %s 個人'%(pass_list,len(pass_list)))2.元組
# 元組也是一個list,他和list的區(qū)別是,元組里面元素無法修改 # print(type(t)) # #試試 循環(huán)、切片、下標取值、修改值 # 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)) #找到元素的個數(shù)3.切片
# 切片是list取值的一種方式 nums = ['段佳林','陳衛(wèi)亮','王占宇','李博']# 0 1 2 3 print(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]) #步長,隔幾個取一次 #如果步長是正數(shù)的話,從左往右邊開始取值 ##如果步長是負數(shù)的話,從右邊往左邊開始取值 print(lis[::-1]) #反轉(zhuǎn)list print(lis) print(lis[1::-1]) print(lis[:]) lis.reverse() #改變了原來list的值 new_list = lis[::-1] #產(chǎn)生了新的一個list,不會改變原來list的值 print(new_list) print(lis) #切片操作同樣適用于字符串。 info = '你好,今天天氣很好' # 0 1 2 3 4 5 6 7 8 print(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、取數(shù)據(jù)方便 # 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 #增加一個key infos.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-v people = {'田雨':{'age':18,'money':200000,'clothes':'100套','hzp':'n多','shoes':['nike','addis','lv','chanle']},'張流量':{'金庫':'2000w','house':['三環(huán)一套','4環(huán)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) #直接循環(huán)一個字典的話,那么循環(huán)的是字典的key # for p in people: # print(p) for k,v in people.items(): #循環(huán)的時候,同時取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('用戶名已經(jīng)被注冊!')elif passwd!=cpasswd:print('兩次輸入的密碼不一致')else:print('恭喜,注冊成功!')# users.setdefault(username,passwd)users[username]=passwdbreak else:print('錯誤次數(shù)過多') print(users)作業(yè)1:
# 第一個作業(yè) # 1、校驗密碼是否合法的程序。 # 輸入一個密碼 # 1、長度5-10位 # 2、密碼里面必須包含,大寫字母、小寫字母和數(shù)字 # # http://www.nnzhp.cn/archives/160 取交集的這種方式可以實現(xiàn) # 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('密碼里面必須包含,大寫字母、小寫字母和數(shù)字')elif pwd == '':print("請輸入密碼:")else:print("您輸入的密碼合法")作業(yè)2:
#二維字典的插入和讀取 #寫一個程序根據(jù)輸入進行錄入學生信息或查看作業(yè)情況 homeworks = {'張流量':{'2018.3.22':'未交','2018.3.23':'未交'},'田雨':{'2018.3.22':'未交','2018.3.23':'未交'}, } for i in range(3):choice = input('請輸入你的選擇:\n''1、錄入學生作業(yè)情況\n''2、查看作業(yè)情況\n')if choice=='1':name = input('學生姓名:')date = input('日期:')status = input('是否作業(yè):')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(): # 循環(huán)的時候,同時取key和valueprint(k, ':', v)else:print('輸入錯誤') print('您的輸入已達到三次,系統(tǒng)自動退出')?
轉(zhuǎn)載于:https://www.cnblogs.com/lilyzhang-2018/p/8667095.html
總結
以上是生活随笔為你收集整理的PYTHON自动化Day3-列表/元组/切片/字典/字符串处理方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络编程基础之C/S架构和TCP/IP协
- 下一篇: tomcat8源码分析-Connecto