Python分支語句與循環(huán)語句應(yīng)用實(shí)例分析
本文實(shí)例講述了Python分支語句與循環(huán)語句應(yīng)用。分享給大家供大家參考,具體如下:
一、分支語句
1、if else語句
語法:
if 條件判斷:
執(zhí)行的語句塊1
else :
執(zhí)行語句塊2
當(dāng)滿足條件的時(shí)候則執(zhí)行語句塊1 ,不滿足條件就執(zhí)行語句塊2
注意:1、條件判斷后面要加冒號”:“;
2、執(zhí)行語句塊需要縮進(jìn)【4個(gè)空格】。
else 與 if對齊,else后面要加”:”,語句塊縮進(jìn)4個(gè)空格
''' 從控制臺輸入年齡,如果年齡小于18歲,打印”未成年人禁止進(jìn)入“ 大于18歲,打印”歡迎光臨“ ''' age = input("請輸入您的年齡:") age = int(age) if age < 18: print("未成年人禁止進(jìn)入") print("等你滿18歲就可以來了") else: print("歡迎光臨")
輸出:
請輸入您的年齡:18
歡迎光臨
''' 從控制臺輸入兩個(gè)數(shù),輸出較大的值,不能使用max函數(shù) ''' num1= int(input("請輸入number1:")) num2= int(input("請輸入number2:")) if num1 > num2 : print("較大的數(shù)為number1:",num1) elif num1 == num2 : print("number1 %d與 number2 %d相等"%(num1,num2)) else: print("較大的數(shù)為number2:",num2)
輸出:
請輸入number1:12
請輸入number2:13
較大的數(shù)為number2: 13
需要多重判斷的時(shí)候,我們則可以使用以下的方式來解決
if 條件判斷1:
語句1
elif 條件判斷2:
語句2
...
elif 條件判斷n:
語句n
else:
語句
注意:elif是else if的縮寫,可以有多個(gè)elif。
所以,根據(jù)上面的需求,我們的代碼則可以這樣寫
''' 如果年齡小于等于18,打印少年,年齡大于18且小于等于25,則打印青年,大于25小于等于40,打印壯年,大于40,打印您更年期到了。。。 ''' age = 34 if age <= 18: print("少年") elif age <= 25: print("青年") elif age <= 40: print("壯年") else: print("您的更年期到啦")
if語句有個(gè)特點(diǎn),它是從上往下判斷,如果在某個(gè)判斷上是True,把該判斷的語句對應(yīng)執(zhí)行后,就忽略掉其他的elif和else。
if判斷語句還可以簡寫:
if x:
print("True")
只要x是非零數(shù)值,非空字符串,非空list,就判斷為True,否則為False
2、嵌套的if語句
需求:現(xiàn)輸入一個(gè)數(shù),判斷他是否為大于10的偶數(shù)
如果要解決上述的需求,可能我們需要兩個(gè)判斷語句,第一個(gè)判斷輸入的數(shù)是否大于10,第二個(gè)判斷是在第一個(gè)的基礎(chǔ)上來判定這個(gè)數(shù)是否為偶數(shù)。
簡單的說,就是在if語句中再嵌套一個(gè)if語句,效果如下:
語法:
if 表達(dá)式1:
語句1
if 表達(dá)式2:
語句2
num = 20 if num > 10: if num % 2 == 0: print(num)
注意:從語法的角度上說,嵌套的層數(shù)沒有限制,但是,從代碼的可讀性和可維護(hù)性來說,最好的嵌套的層數(shù)不要超過三層。
3、if 的神奇用法(三目運(yùn)算)
偽三目運(yùn)算
result1 if 判斷條件 else result2
若條件成立則輸出結(jié)果result1,否則輸出結(jié)果result2
>>> x = 10 >>> y = 20 >>> x if x > y else y 20
二、循環(huán)語句之while
1、while循環(huán)的語法:
while 判斷語句:
執(zhí)行代碼塊
當(dāng)判斷語句成立的時(shí)候,執(zhí)行下面的代碼塊【判斷語句的結(jié)果為True,即不等于0,0.0,False,None的情況下執(zhí)行代碼塊】。
... 計(jì)算 1 + 2 + 3 + ... + 1000 ... n = 1 sum = 0 while n <= 100: sum = sum + n n = n + 1 print("sum = %d" % sum) print("n = %d" % n)
輸出:
sum = 5050
n = 101
''' 從[100,1000)的水仙花數(shù) ''' n = 100 print("水仙花數(shù)") while n < 1000: bai = n // 100 shi = n //10 % 10 ge = n %10 if n == pow(bai,3) + pow(shi,3) + pow(ge,3): print("%d" %n) n += 1
輸出:
水仙花數(shù)
153
370
371
407
2、while 之死循環(huán)
死循環(huán)出現(xiàn)的契機(jī):當(dāng)表達(dá)式永遠(yuǎn)為真的時(shí)候,會出現(xiàn)死循環(huán)。
while 1: print("I am very good !")
3、while else
''' while else 的語法 while 條件判斷: 循環(huán)語句塊 else: 語句塊 當(dāng)條件判斷的結(jié)果為True的情況下,執(zhí)行循環(huán)語句塊 直到條件判斷的結(jié)果為False的時(shí)候跳出循環(huán),并且執(zhí)行else語句,如果是通過break跳出循環(huán)則不執(zhí)行else語句 ''' n = 100 print("水仙花數(shù)") while n < 1000: bai = n // 100 shi = n //10 % 10 ge = n %10 if n == pow(bai,3) + pow(shi,3) + pow(ge,3): print("%d" %n) n += 1 else: print("循環(huán)已結(jié)束")
輸出:
水仙花數(shù)
153
370
371
407
循環(huán)已結(jié)束
4、while之簡單的語句組
如果你的while循環(huán)體中只有一條語句,你可以將該語句與while寫在同一行。
語法:
while 條件: 語句
while True: print("you are a good man")
三、結(jié)束循環(huán)語句
1.break語句的使用
在循環(huán)中,使用break語句可以提前退出循環(huán)。
例如:本來循環(huán)打印1~100的數(shù)字,但是,現(xiàn)在我要提前結(jié)束,當(dāng)數(shù)字大于10的時(shí)候,打印循環(huán)結(jié)束。
n = 1 while n <= 100: if n > 10: #當(dāng)n = 11時(shí),條件滿足,執(zhí)行break語句 break print(n) n += 1 print("循環(huán)結(jié)束")
2.continue語句的使用
在循環(huán)的過程中,可以通過continue語句,跳過當(dāng)前的這次循環(huán),直接開始下一次循環(huán)。
n = 0 while n < 10: n += 1 print(n)
通過上面的程序可以打印出1~10,但是,如果我們只想打印奇數(shù),可以使用continue語句跳過某些循環(huán)。
思考三:打印1~100以內(nèi)的奇數(shù)
num = 1 while num <= 100: if num%2 == 0: continue print(n)
3. pass語句的使用
pass 語句是空語句,是為了保持程序結(jié)構(gòu)的完整性
pass 不做任何事情,一般用做占位語句
if True: pass else: print("hello")
四、循環(huán)語句之for
1、for循環(huán)
python 的循環(huán)有兩種,一種是我們之前講的while循環(huán),另外一種就是for…in循環(huán),依次把list或者tuple中的元素或者字符串迭代出來。
name = ['lili','Bob','Tracy'] for name in names: print(name)
執(zhí)行這段代碼,會依次打印names的每一個(gè)元素
lili
Bob
Tracy
所以 for x in …
循環(huán)就是把每個(gè)元素帶入變量x,然后執(zhí)行縮進(jìn)塊語句。
計(jì)算1~10的整數(shù)之和,可以用一個(gè)sum變量做累加:
sum = 0 for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum + x print(sum)
如果要計(jì)算1~100的整數(shù)之和,從1到100有點(diǎn)困難,在python中提供一個(gè)range()函數(shù),可以生成一個(gè)整數(shù)序列,再通過list()函數(shù)可以轉(zhuǎn)換為list,比如range(5)生成的序列是從0開始小于5的整數(shù)。
sum = 0 for x in range(100): sum += x print(sum)
2、for 循環(huán)使用else語句
與while…else類似,else也會在循環(huán)正常執(zhí)行完的情況下執(zhí)行
for i in range(10): print(i) else: print("********")
3、range函數(shù)
range函數(shù)可創(chuàng)建一個(gè)可迭代對象,一般用在for循環(huán)中
函數(shù)語法:
range([start,] stop[, step])
參數(shù)說明:
python
1.start:計(jì)數(shù)從start開始,默認(rèn)從0開始,例如:range(5)等價(jià)于range(0, 5)
2.stop:計(jì)數(shù)到stop結(jié)束,但不包括stop。例如:range(0,5)的取值為[0,5)
3.step:步長,默認(rèn)為1,例如range(0,5) 等價(jià)于range(0, 5, 1)
函數(shù)返回一個(gè)可迭代對象,從這個(gè)可迭代對象中可以獲取一個(gè)整數(shù)列表。
#使用list函數(shù),可以從可迭代對象中獲取整數(shù)列表 >>> list(range(5)) [0, 1, 2, 3, 4]
五、嵌套循環(huán)
我們可以在循環(huán)體中嵌套循環(huán)。
需求:打印九九乘法表
for i in range(1,10): for j in range(1,i + 1): print("%d*%d=%d"%(j,i,j*i),end='\t') print()
輸出:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python入門與進(jìn)階經(jīng)典教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python 抓取動態(tài)網(wǎng)頁內(nèi)容方案詳解
這篇文章主要介紹了Python 抓取動態(tài)網(wǎng)頁內(nèi)容方案詳解,首先通過Chrome的工具來進(jìn)行分析,然后再使用python進(jìn)行處理,最終得到我們需要的內(nèi)容,非常的方便,這里也算是給大家提供一個(gè)思路2014-12-12淺談Python里面None True False之間的區(qū)別
這篇文章主要介紹了淺談Python里面None True False之間的區(qū)別,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07Django Admin實(shí)現(xiàn)三級聯(lián)動的示例代碼(省市區(qū))
多級菜單在很多上面都有應(yīng)用,這篇文章主要介紹了Django Admin實(shí)現(xiàn)三級聯(lián)動(省市區(qū)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06Python實(shí)現(xiàn)捕獲異常發(fā)生的文件和具體行數(shù)
這篇文章主要介紹了Python實(shí)現(xiàn)捕獲異常發(fā)生的文件和具體行數(shù)。具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法示例
這篇文章主要介紹了Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法,結(jié)合實(shí)例形式分析了Python使用pycrypto模塊進(jìn)行AES加密與解密操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04Django QuerySet查詢集原理及代碼實(shí)例
這篇文章主要介紹了Django QuerySet查詢集原理及代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06