本文小編為大家詳細(xì)介紹“Python的while循環(huán)和for循環(huán)如何使用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Python的while循環(huán)和for循環(huán)如何使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。
公司主營業(yè)務(wù):網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出濠江免費(fèi)做網(wǎng)站回饋大家。
循環(huán)是另一種控制流程的方式,一個(gè)循環(huán)體中的代碼在程序中只需要編寫一次,但可能會(huì)連續(xù)運(yùn)行多次。在 python 中主要包含兩種循環(huán)結(jié)構(gòu):
? while 循環(huán),表示滿足某種條件是,重復(fù)運(yùn)行一段固定代碼。
? for 循環(huán),表示遍歷某組數(shù)據(jù),每次取出一個(gè),重復(fù)運(yùn)行一段固定代碼。
while 循環(huán)的語法和 if 條件非常類似:
while expression: statement1
當(dāng) expression 條件滿足時(shí),執(zhí)行 statement1 語句, 語句執(zhí)行完后,會(huì)返回第一行繼續(xù)判斷條件是否滿足。如果該條件一直保持滿足狀態(tài),循環(huán)語句無法退出,就會(huì)出現(xiàn)死循環(huán)的狀態(tài)。
while True: print("hello, you")
為了讓程序運(yùn)行到一定階段退出循環(huán)體,需要改變條件,當(dāng)條件改變到不滿足的狀態(tài)時(shí),就可以退出循環(huán)結(jié)構(gòu)了:
times = 0 while times < 1000: print(f"hello you {times}") times += 1
for 循環(huán)是一種更加常用的循環(huán)結(jié)構(gòu),主要作用遍歷一組數(shù)據(jù)達(dá)到循環(huán)執(zhí)行的效果。這組數(shù)據(jù)通常是字符串,列表,元素,字典等可迭代的數(shù)據(jù)。
my_string = 'hello you' for letter in my_string: print(letter)
letter 是一個(gè)臨時(shí)變量,表示每一輪循環(huán)從 my_string 中取出來的元素,第一輪循環(huán)是 h
, 第二輪循環(huán)是 e
。臨時(shí)變量在退出循環(huán)結(jié)構(gòu)之后會(huì)失效。
for letter in my_string: print(letter) # YES print(letter) # NO
遍歷列表
dalaos = ['小芳', '溫暖如初', '小蚊子'] for dalao in dalaos: print(dalao)
遍歷字符串、列表、元組等數(shù)據(jù)時(shí),可以使用 enumerate 函數(shù)同時(shí)獲取索引和值,經(jīng)??梢杂玫健?/p>
dalaos = ['小芳', '溫暖如初', '小蚊子'] for index, item in enumerate(dalaos): print(item)
遍歷字典
遍歷字典默認(rèn)是獲取 key
user = {"name": "小芳", "age": "17"} for item in user: print(item)
同時(shí)獲取 key 和 value 是更常用的做法:
for key, item in user.items(): print(key, item)
range
range 的作用是生成一個(gè)類似于列表的數(shù)據(jù),range(6) 生成類似于 [0,1,2,3,4,5] 的數(shù)據(jù)。當(dāng)你需要對(duì)某段代碼循環(huán)運(yùn)行指定次數(shù),但是又沒有現(xiàn)成的數(shù)據(jù)可以遍歷時(shí),可以用 range
for item in range(10000): print(item)
range() 的參數(shù)類似于切片的寫法,當(dāng)只有一個(gè)參數(shù)時(shí),表示結(jié)束索引號(hào),當(dāng)有兩個(gè)參數(shù)時(shí),表示開始和結(jié)束的索引號(hào),當(dāng)有3個(gè)參數(shù)時(shí),增加步長。
# start, end for item in range(3,8): print(item) # start, end, step for item in range(3,8,2): print(item)
之前我們了解到, for 循環(huán)作用是對(duì)一組數(shù)據(jù)中的不同元素執(zhí)行相同的操作(代碼),如果想對(duì)不同的元素進(jìn)行差異化操作,可以使用 for 循環(huán)嵌套 if 的組合。
dalaos = ['小芳', '溫暖如初', '小蚊子'] for dalao in dalaos: if dalao == '小芳': print("村里有個(gè)姑娘,叫小芳。") else: print("沒有你要找的人")
對(duì)元素分組:
users = [ {"name": 'yyz', "age": 18}, {"name": '小芳', "age":16}, {"name": 'v', "age": 19}, {"name": 'w', "age": 20}, ] adult = [] kids = [] for user in users: # user = {"name": 'yyz', "age": 18} if user['age'] >= 18: adult.append(user) else: kids.append(user) print(adult) print(kids)
在 while 和 for 的循環(huán)體中,都可以使用 break 關(guān)鍵字終止整個(gè)循環(huán)體的運(yùn)行。尤其是在和 if 的搭配使用中,當(dāng)滿足某個(gè)條件時(shí),就終止整個(gè)循環(huán)結(jié)構(gòu)。
while True: username = input("輸入用戶名") paword = input("輸入密碼") if username == 'admin' and paword == '123456': print('login') break
continue 則可以跳過本輪循環(huán),進(jìn)入下一輪循環(huán)。他也常常和 if 搭配使用:
songs = ['傳奇','', '禮物', '故鄉(xiāng)', ''] for song in songs: if not song: print("下一曲") continue print(f"正在播放:{song}")
自動(dòng)化測(cè)試場(chǎng)景:表示多個(gè)測(cè)試數(shù)據(jù)
1、寫一個(gè)程序,存儲(chǔ)一個(gè)測(cè)試數(shù)據(jù)
username = input("請(qǐng)輸入用戶名:") pass = input("請(qǐng)輸入密碼:") age = input("請(qǐng)輸入年齡:") user = dict() user.update(username=username, pass=pass, age=age)
2、寫一個(gè)程序,可以存儲(chǔ)多個(gè)測(cè)試數(shù)據(jù)
users = list() users.append(user) print(users)
3、添加多個(gè)用例,運(yùn)行多個(gè)用例
users = list() while len(users) < 3: username = input("請(qǐng)輸入用戶名:") pass = input("請(qǐng)輸入密碼:") age = input("請(qǐng)輸入年齡:") user = dict() user.update(username=username, passd=pass, age=age) users.append(user) print(users) for case in users: print(f"運(yùn)行用例-用戶名{case['username']}")
剛接觸循環(huán),可能很難分析出代碼接下來會(huì)執(zhí)行哪一行,此時(shí)可以在循環(huán)體內(nèi)設(shè)置一個(gè)斷點(diǎn),通過 debug 模式運(yùn)行程序,從而理解代碼的執(zhí)行過程。
練習(xí)題1:生成 0-100 的奇數(shù)怎么寫?
練習(xí)題2:求出 0-100 的數(shù)的和?
練習(xí)題3:求出 0-100 的數(shù)的奇數(shù)和與偶數(shù)和
練習(xí)題4:生成一個(gè) * 組成的直角三角形
練習(xí)題5:把 c 變成一個(gè)扁平的列表
while True: try: n=int(input()) nums=[int(i) for i in input().split()] a = [] if len(nums)==0: print(0) for i in nums: position = bisect.bisect_left(a, i)#在a中插入i應(yīng)插入的位置index,排序;若i已存在,則返回左邊的位置index if len(a)==position:#第一個(gè)元素,或者大于a中元素的元素才插入 a.append(i) else: a[position]=i#否則替換對(duì)應(yīng)index的值 print(len(a)) except: break
讀到這里,這篇“Python的while循環(huán)和for循環(huán)如何使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。