Python中for循環(huán)語(yǔ)句實(shí)戰(zhàn)案例
一、for循環(huán)語(yǔ)法
for i in range(10): print(i)
上面代碼會(huì)從0-9,共循環(huán)10次,這個(gè)range(10),其實(shí)是相當(dāng)于產(chǎn)生一個(gè)從0-9的列表,每循環(huán)一次,就會(huì)把列表里的下一個(gè)元素取出來(lái)給臨時(shí)變量i。
執(zhí)行結(jié)果:
二、循環(huán)的使用
2.1、循環(huán)猜年齡
需求:最多允許猜三次,猜對(duì)了就退出程序
age = 38 for i in range(3): guess = int(input("猜測(cè)的年齡:")) if (guess>age): print("猜大了") elif (guess<age): print("猜小了") else: print("猜對(duì)了")
2.2、打印奇偶數(shù)
打印50-100間的奇數(shù)
for i in range(50,100): if (i%2 == 1): print(i)
打印偶數(shù)
for i in range(50,100): if (i%2 == 0): print(i)
2.3、循環(huán)嵌套
這里寫(xiě)了一個(gè)不是很靈活的冒泡排序,本質(zhì)也是使用嵌套循環(huán)去完成的
number = [6,7,4,2,1,3,5] for i in range(5): for j in range(6): if (number[j] > number[j+1]): tmp=number[j] number[j]=number[j+1] number[j+1]=tmp print(number)
三、break & continue
我們這里寫(xiě)一個(gè)打印樓層的小程序
需求:一棟樓有5層,每層2間房,要求把本樓所有的房間號(hào)都打印一遍。
for i in range(1,6): for j in range(1,3): print(f"{i}層-{i}0{j}室")
我們現(xiàn)在需求改一下,遇到第三層時(shí),不打印任何房間號(hào),其他層都打印
3.1、continue
continue的語(yǔ)法作用是,只要程序一遇到continue,本次循環(huán)就不繼續(xù)了,直接進(jìn)入下一次循環(huán)
for i in range(1,6): for j in range(1,3): if i==3: continue print(f"{i}層-{i}0{j}室")
3.2、break
break的語(yǔ)法作用是,只要程序遇到break,就會(huì)結(jié)束當(dāng)前這個(gè)循環(huán),注意如果是多層嵌套循環(huán),只結(jié)束當(dāng)前這一層的循環(huán)。
for i in range(1,6): for j in range(1,3): if i==3: continue #跳過(guò)第三層,從第四層開(kāi)始 if i==2 and j==2: break #當(dāng)dao2層2室的時(shí)候直接退出二層循環(huán)。從三層開(kāi)始走 print(f"{i}層-{i}0{j}室")
四、打印三角形
打印這樣的三角形
*
**
***
****
*****
****
***
**
*
#一種方法 for i in range(1,6): print("*" * i) for i in range(4,0,-1): print("*" * i) #第二種方法 n=10 for i in rang(n): if i<5: print(i*"*") else: print((n-i)*"*")
五、while循環(huán)
與for必須指定循環(huán)多少次不一樣的是,while循環(huán)的次數(shù)可以是不定的,只要條件滿足就可以永遠(yuǎn)循環(huán)下去。
5.1、while語(yǔ)法
while 條件: #只要條件為真,就不斷循環(huán) print(xxxxx)
5.2、死循環(huán)
count = 0 while True: print(f"第{count}次循環(huán)") count +=1
5.3、循環(huán)10次
count = 0 while count < 10: print(f"第{count}次循環(huán)....") count+=1
5.4、python寫(xiě)99乘法表
for i in range(1,10): print() for j in range(1,i+1): print(f"{i}*{j}={i*j}",end=" ")
5.5、用while實(shí)現(xiàn)循環(huán)猜年齡
需求:允許用戶猜三次,若還不對(duì),鈣塑它,你真笨,還想繼續(xù)猜嗎?如果用戶選擇yes,就讓他繼續(xù),如果選擇no就退出
guess_age = 30 guess_num=0 while True: guess_num += 1 if guess_num<=3: guess = int(input("請(qǐng)輸入猜的數(shù)字:")) if guess < guess_age: print("數(shù)字猜小了") elif guess > guess_age: print("數(shù)字猜大了") else: print("恭喜猜對(duì)了") else: choice = str(input("錯(cuò)三次了,你還想繼續(xù)猜嗎?[yes/no]")) if choice == "": continue elif choice == "yes": print("游戲繼續(xù)") guess_num = 0 else: break
六、random和string模塊(隨機(jī)數(shù))
6.1、random模塊
可以殘生指定范圍內(nèi)的隨機(jī)數(shù),字符串等
import random #導(dǎo)入random模塊 a = random.choice("abcdefghigk") #參數(shù)也可以是一個(gè)列表 print(a) s = "asdfghjklzxcv" s = random.sample(s,5) #從數(shù)據(jù)源s中隨機(jī)取出5個(gè)值 print(s) i = random.randint(1,100) #打印一個(gè)隨機(jī)數(shù) print(i)
6.2、string模塊
import string a = string.ascii_letters #大小寫(xiě)全部字符 print(a) s = string.ascii_uppercase #大寫(xiě)字符 print(s) i = string.ascii_lowercase #小寫(xiě)字符 print(i) j = string.punctuation #打印特殊字符 print(j) g = string.digits #打印數(shù)字 print(g)
6.3、京牌搖號(hào)小程序
需求:允許用戶最多選3次
每次放出20個(gè)車牌公用戶選擇
3車牌[A-Z]-[xxxxx],可以是數(shù)字和字母在組合
import random import string num_lsit = [] tmp = (string.digits+string.ascii_uppercase) print(random.sample(tmp,5)) count = 3 while count > 0: count-=1 num_lsit = [] for i in range(20): car_code = random.choice(string.ascii_uppercase) car_num = f"京{car_code}-{''.join(random.sample(tmp,5))}" num_lsit.append(car_num) print(i,car_num) choice = input("choice:").strip() if choice in num_lsit: exit(f"恭喜你選購(gòu)成功,您的車牌為{choice}") else: print(f"未選中,還有{count}次機(jī)會(huì)")
6.4、年會(huì)抽獎(jiǎng)程序
需求:張三公司有300員工,年會(huì)抽獎(jiǎng),獎(jiǎng)項(xiàng)如下
一等獎(jiǎng)3名,泰國(guó)五日游
二等獎(jiǎng)6名,iphon手機(jī)
三等獎(jiǎng),小玩具一個(gè)
每個(gè)員工只能限一次。
import random import string a = [] for j in range(1,301): a.append(j) #建立一個(gè)員工的地址池 ###########抽一等獎(jiǎng)############## print("抽一等獎(jiǎng),三等獎(jiǎng)是泰國(guó)五日游") print("得獎(jiǎng)員工:",end="") for yi in range(3): tmp = random.choice(a) #隨機(jī)去一個(gè)員工 print(tmp,end=" ") a.remove(tmp) #因?yàn)槊總€(gè)員工只能拿一個(gè)獎(jiǎng),所以刪除員工池以得獎(jiǎng)的用戶 print("") #另起一行 ###########抽二等獎(jiǎng)############### print("抽二等獎(jiǎng),二等獎(jiǎng)是一部iphon手機(jī)") print("得獎(jiǎng)員工:",end="") for er in range(7): tmp = random.choice(a) print(tmp,end=" ") a.remove(tmp) print("") ############抽三等獎(jiǎng)############## print("抽三等獎(jiǎng),三等獎(jiǎng)是小玩具一個(gè)") print("得獎(jiǎng)員工:",end="") for san in range(11): tmp=random.choice(a) print(tmp,end=" ") a.remove(tmp)
總結(jié)
到此這篇關(guān)于Python中for循環(huán)語(yǔ)句的文章就介紹到這了,更多相關(guān)Python for循環(huán)語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python pytest裝飾器總結(jié)(實(shí)例詳解)
這篇文章主要介紹了Python pytest裝飾器總結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04Django框架實(shí)現(xiàn)的簡(jiǎn)單分頁(yè)功能示例
這篇文章主要介紹了Django框架實(shí)現(xiàn)的簡(jiǎn)單分頁(yè)功能,在之前一篇留言板之上增加了簡(jiǎn)單分頁(yè)功能,涉及Paginator模塊的簡(jiǎn)單使用技巧,需要的朋友可以參考下2018-12-12python+selenium識(shí)別驗(yàn)證碼并登錄的示例代碼
本篇文章主要介紹了python+selenium識(shí)別驗(yàn)證碼并登錄的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12django模板語(yǔ)法學(xué)習(xí)之include示例詳解
寫(xiě)過(guò) Web 程序的都對(duì) include 包含文件很熟悉,那么在 Django,include 又是怎么一個(gè)機(jī)制呢?下面這篇文章主要給大家介紹了關(guān)于django模板語(yǔ)法學(xué)習(xí)之include的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12Python實(shí)現(xiàn)一個(gè)列表分割成多個(gè)列表的四種示例
本文主要介紹了Python實(shí)現(xiàn)一個(gè)列表分割成多個(gè)列表的四種示例,包括使用循環(huán)、切片操作、itertools.groupby()和numpy的array_split(),具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12python算法測(cè)試結(jié)果自動(dòng)保存到excel表格的實(shí)現(xiàn)步驟
我們?cè)谶M(jìn)行算法評(píng)估是通常會(huì)針對(duì)每個(gè)樣本的算法處理結(jié)果進(jìn)行統(tǒng)計(jì),例如每個(gè)樣本正確預(yù)測(cè)數(shù)量、漏檢數(shù)量和誤檢數(shù)量、精度等,本文小編將給大家介紹python算法測(cè)試結(jié)果自動(dòng)保存到excel表格的實(shí)現(xiàn)步驟,感興趣的朋友可以參考下2023-12-12