Python中的程序流程控制語(yǔ)句
前言:
本篇博客將會(huì)講述一下Python
語(yǔ)言中的流程控制語(yǔ)句,在高中我們數(shù)學(xué)中學(xué)過(guò)程序流程題,達(dá)到一個(gè)目的往往需要從開(kāi)始一步一步往下走,有時(shí)順序執(zhí)行、有時(shí)面臨選擇、有時(shí)面臨循環(huán)。循環(huán)與選擇控制著整個(gè)流程。看到下面的圖片是不是感覺(jué)十分熟悉?順序結(jié)構(gòu)就是從上至下一步步執(zhí)行,咱就不在這里多說(shuō)了。直接拿Python語(yǔ)言中的分支語(yǔ)句開(kāi)涮。
一、分支語(yǔ)句
在Python中分支語(yǔ)句只有if…elif…else…
沒(méi)有switch…case…
,官方認(rèn)為if…else…
已經(jīng)可以滿(mǎn)足需求。分支語(yǔ)句的作用就是進(jìn)行一下判斷,篩選出來(lái)符合某種情況的數(shù)據(jù),換一種說(shuō)法就是不同的情況做出不同的事情。
# 單分支結(jié)構(gòu) if 80>70: ? ? print('無(wú)敵666') # 多分支結(jié)構(gòu) s=int(input("請(qǐng)輸入您的考試成績(jī):")) if 100>=s>=90: ? ? print("你的成績(jī)無(wú)敵了") ? ? if s>95: ? ? ? ? print('你的成績(jī)至高無(wú)上') ? ? else: ? ? ? ? print('你的成績(jī)一人之下萬(wàn)人之上') elif 90>s>60: ? ? print('你的成績(jī)僅僅是合格') else: ? ? print('你的成績(jī)不合格,或輸入不規(guī)范') # 條件表達(dá)式【類(lèi)似于C++語(yǔ)言中的三目運(yùn)算符】 print("我是對(duì)的" if 90>80 else "我是錯(cuò)的") # 占位符與對(duì)象的布爾值 # 每個(gè)對(duì)象都有布爾值,所以對(duì)象可以直接放到條件語(yǔ)句中,作為判別條件 # python中也是只有0或空為bool中的false # 占位符就是當(dāng)你不知道那里寫(xiě)什么,但確實(shí)缺少語(yǔ)句處站住位置,編譯器不報(bào)錯(cuò) pass ss=int(input("輸入對(duì)象:")) if ss: ? ? print('yes') ? ? pass elif ss>1: ? ? print('no') else: ? ? pass
二、循環(huán)語(yǔ)句
1.可迭代對(duì)象
在說(shuō)循環(huán)語(yǔ)句之前,先說(shuō)一下什么是可迭代對(duì)象,可迭代對(duì)象每次返回一個(gè)元素主要包含序列、文件對(duì)象、迭代器對(duì)象、生成器函數(shù)。迭代器是一個(gè)對(duì)象表示可迭代的數(shù)據(jù)集合,他的主要特征就是包括方法__iter__()
和__next__()
,可以實(shí)現(xiàn)迭代功能。生成器是一個(gè)函數(shù),使用yield
語(yǔ)句,每次產(chǎn)生一個(gè)值。range
對(duì)象是一個(gè)迭代器對(duì)象。在Python中循環(huán)語(yǔ)句還是分為while與for循環(huán)。
2.while循環(huán)
while后面是循環(huán)條件,在下面的例子中i就是循環(huán)變量,當(dāng)循環(huán)變量不滿(mǎn)足循環(huán)條件時(shí)就退出循環(huán),以下例子打印1-100的和:
代碼如下:
i=1 mysum=0 while i<=100: ? ?mysum+=i ? ?i+=1 # ? ?print(mysum) print(mysum)
3.for循環(huán)
for
循環(huán)的使用方法如下,一般結(jié)合迭代器對(duì)象使用。
代碼如下:
# for循環(huán)計(jì)算100-999之間的水仙花數(shù) for temp in range(100,1000): ? ?if temp==(temp%10)**3+(temp//10%10)**3+(temp//100)**3: ? ? ? print(temp) # 迭代打印語(yǔ)句 for _ in range(5): ? ?print('Hello World') # 利用else 實(shí)現(xiàn)密碼輸入錯(cuò)誤三次報(bào)錯(cuò),以及輸入正確跳出循環(huán) passward=0 for passward in range(3): ? ?if input('請(qǐng)輸入您的密碼:')!='888888': ? ? ? print('密碼輸入錯(cuò)誤!') ? ? ? passward+=1 ? ?else: ? ? ? print('密碼正確!') ? ? ? break else: ? ?print('密碼多次輸入錯(cuò)誤,自動(dòng)退出!')
4.九九乘法表
# 綜合案例,嵌套打印99乘法表 for teg in range(1,10): ? ?temp=1 ? ?while temp<=teg: ? ? ? print(str(temp)+'*'+str(teg)+'='+str(teg*temp),end=' ?') ? ? ? temp+=1 ? ?print()
三.循環(huán)控制語(yǔ)句
1.break
跳出本層循環(huán)
2.continue
跳過(guò)本次循環(huán)
3.goto
內(nèi)置沒(méi)有這個(gè)語(yǔ)句,但是有的第三方庫(kù)中含有該語(yǔ)句 比如:python-goto,感興趣的小伙伴可以用一用。
4.else
這一點(diǎn)還是很獨(dú)特的,Python的循環(huán)語(yǔ)句支持else語(yǔ)句,也就是在循環(huán)語(yǔ)句之后可以加一句else語(yǔ)句。else代碼塊內(nèi)的代碼被執(zhí)行的條件是循環(huán)體沒(méi)有被break.還以九九乘法表為例:
for teg in range(1,10): ? ?temp=1 ? ?while temp<=teg: ? ? ? print(str(temp)+'*'+str(teg)+'='+str(teg*temp),end=' ?') ? ? ? temp+=1 ? ?print() else: ? ? print("asdholcnnl")
四、循環(huán)相關(guān)的內(nèi)置函數(shù)
1.enumerate()
這個(gè)函數(shù)的作用就是為可遍歷的序列加上索引,并且索引開(kāi)始值是我們可以指定的
s=["Tom","jack","lisa"] for i,name in enumerate(s,start=1): ? ? print(f"第{i}個(gè)人是{name}")
2.zip()
如果需要并行遍歷多個(gè)對(duì)象,可以使用這個(gè)函數(shù)進(jìn)行打包。zip的作用就是將多個(gè)可迭代對(duì)象打包成一個(gè)個(gè)元組然后返回一個(gè)可迭代對(duì)象。如果被壓縮的每個(gè)可迭代對(duì)象長(zhǎng)度不同那么按照最短的那個(gè)長(zhǎng)度合并。利用*運(yùn)算符還可以將元組解壓為列表。[*zip(x,y)]
將x,y打包后再轉(zhuǎn)換為列表形式zip(*zip(x,y))
,如果x,y代表一個(gè)矩陣,那么zip(*zip(x,y))
就是其轉(zhuǎn)置
for i,j in zip(range(0,10),range(0,10)): ? ? print(i*j)
3.map()
map函數(shù)可以傳一個(gè)函數(shù)與多個(gè)可迭代列表,如果map傳的函數(shù)為None那么map功能與zip函數(shù)相同。
如果傳的是其余函數(shù),那么函數(shù)將作用與每個(gè)對(duì)象。需要注意的是可迭代對(duì)象的數(shù)目要與傳進(jìn)去函
數(shù)的參數(shù)數(shù)目保持一致。
#結(jié)果1,1,12 list(map(abs,[-1,-1,-12])) #結(jié)果1 1 4 list(map(pow,range(3),range(3)))
五、總結(jié)
篇博客主要分享了一下流程控制語(yǔ)句中的分支語(yǔ)句與循環(huán)語(yǔ)句,分支語(yǔ)句操作起來(lái)比較簡(jiǎn)單,大家主要掌握一下循環(huán)語(yǔ)句,特別是循環(huán)語(yǔ)句中的幾個(gè)內(nèi)置函數(shù),無(wú)論是在寫(xiě)算法題還是數(shù)據(jù)分析中都很常用。
到此這篇關(guān)于Python中的程序流程控制語(yǔ)句的文章就介紹到這了,更多相關(guān)Python程序流程控制語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 中文字符串的處理實(shí)現(xiàn)代碼
python中直接將一個(gè)中文字符串賦值給一個(gè)變量使用的是utf-8格式的編碼,以下為證.2009-10-10python 協(xié)程中的迭代器,生成器原理及應(yīng)用實(shí)例詳解
這篇文章主要介紹了python 協(xié)程中的迭代器,生成器原理及應(yīng)用,結(jié)合具體實(shí)例形式詳細(xì)分析了Python協(xié)程中的迭代器,生成器概念、原理及應(yīng)用操作技巧,需要的朋友可以參考下2019-10-10Python開(kāi)發(fā)之QT解決無(wú)邊框界面拖動(dòng)卡屏問(wèn)題(附帶源碼)
朋友在學(xué)習(xí)QT的過(guò)程中,都會(huì)遇到各種問(wèn)題,今天就QT無(wú)邊框拖動(dòng)花屏問(wèn)題給大家詳細(xì)介紹,究竟該如何解決呢,下面通過(guò)實(shí)例代碼和圖文相結(jié)合給大家詳細(xì)介紹,需要的朋友參考下吧2021-05-05Python PyWebIO提升團(tuán)隊(duì)效率使用介紹
這篇文章主要為大家介紹了Python PyWebIO提升團(tuán)隊(duì)效率使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01PyTorch中的nn.ConvTranspose2d模塊詳解
nn.ConvTranspose2d是PyTorch中用于實(shí)現(xiàn)二維轉(zhuǎn)置卷積的模塊,廣泛應(yīng)用于生成對(duì)抗網(wǎng)絡(luò)(GANs)和卷積神經(jīng)網(wǎng)絡(luò)(CNNs)的解碼器中。該模塊通過(guò)參數(shù)如輸入輸出通道數(shù)、卷積核大小、步長(zhǎng)、填充等,能控制輸出尺寸和避免棋盤(pán)效應(yīng)2024-09-09利用Python腳本實(shí)現(xiàn)ping百度和google的方法
最近在做SEO的時(shí)候,為了讓發(fā)的外鏈能夠快速的收錄,想到了利用ping的功能,google和百度都有相關(guān)的ping介紹,有興趣的朋友可以去看看相關(guān)的知識(shí)。下面這篇文章主要介紹了利用Python腳本實(shí)現(xiàn)ping百度和google的方法,需要的朋友可以參考借鑒,一起來(lái)看看吧。2017-01-01