Python分支語句與循環(huán)語句應(yīng)用實例分析
本文實例講述了Python分支語句與循環(huán)語句應(yīng)用。分享給大家供大家參考,具體如下:
一、分支語句
1、if else語句
語法:
if 條件判斷:
執(zhí)行的語句塊1
else :
執(zhí)行語句塊2
當滿足條件的時候則執(zhí)行語句塊1 ,不滿足條件就執(zhí)行語句塊2
注意:1、條件判斷后面要加冒號”:“;
2、執(zhí)行語句塊需要縮進【4個空格】。
else 與 if對齊,else后面要加”:”,語句塊縮進4個空格
'''
從控制臺輸入年齡,如果年齡小于18歲,打印”未成年人禁止進入“
大于18歲,打印”歡迎光臨“
'''
age = input("請輸入您的年齡:")
age = int(age)
if age < 18:
print("未成年人禁止進入")
print("等你滿18歲就可以來了")
else:
print("歡迎光臨")
輸出:
請輸入您的年齡:18
歡迎光臨
'''
從控制臺輸入兩個數(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
需要多重判斷的時候,我們則可以使用以下的方式來解決
if 條件判斷1:
語句1
elif 條件判斷2:
語句2
...
elif 條件判斷n:
語句n
else:
語句
注意:elif是else if的縮寫,可以有多個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語句有個特點,它是從上往下判斷,如果在某個判斷上是True,把該判斷的語句對應(yīng)執(zhí)行后,就忽略掉其他的elif和else。
if判斷語句還可以簡寫:
if x:
print("True")
只要x是非零數(shù)值,非空字符串,非空list,就判斷為True,否則為False
2、嵌套的if語句
需求:現(xiàn)輸入一個數(shù),判斷他是否為大于10的偶數(shù)
如果要解決上述的需求,可能我們需要兩個判斷語句,第一個判斷輸入的數(shù)是否大于10,第二個判斷是在第一個的基礎(chǔ)上來判定這個數(shù)是否為偶數(shù)。
簡單的說,就是在if語句中再嵌套一個if語句,效果如下:
語法:
if 表達式1:
語句1
if 表達式2:
語句2
num = 20
if num > 10:
if num % 2 == 0:
print(num)
注意:從語法的角度上說,嵌套的層數(shù)沒有限制,但是,從代碼的可讀性和可維護性來說,最好的嵌套的層數(shù)不要超過三層。
3、if 的神奇用法(三目運算)
偽三目運算
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í)行代碼塊
當判斷語句成立的時候,執(zhí)行下面的代碼塊【判斷語句的結(jié)果為True,即不等于0,0.0,False,None的情況下執(zhí)行代碼塊】。
...
計算 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)的契機:當表達式永遠為真的時候,會出現(xiàn)死循環(huán)。
while 1:
print("I am very good !")
3、while else
'''
while else 的語法
while 條件判斷:
循環(huán)語句塊
else:
語句塊
當條件判斷的結(jié)果為True的情況下,執(zhí)行循環(huán)語句塊
直到條件判斷的結(jié)果為False的時候跳出循環(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é)束,當數(shù)字大于10的時候,打印循環(huán)結(jié)束。
n = 1
while n <= 100:
if n > 10:
#當n = 11時,條件滿足,執(zhí)行break語句
break
print(n)
n += 1
print("循環(huán)結(jié)束")
2.continue語句的使用
在循環(huán)的過程中,可以通過continue語句,跳過當前的這次循環(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的每一個元素
lili
Bob
Tracy
所以 for x in … 循環(huán)就是把每個元素帶入變量x,然后執(zhí)行縮進塊語句。
計算1~10的整數(shù)之和,可以用一個sum變量做累加:
sum = 0 for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum + x print(sum)
如果要計算1~100的整數(shù)之和,從1到100有點困難,在python中提供一個range()函數(shù),可以生成一個整數(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)建一個可迭代對象,一般用在for循環(huán)中
函數(shù)語法:
range([start,] stop[, step])
參數(shù)說明:
python
1.start:計數(shù)從start開始,默認從0開始,例如:range(5)等價于range(0, 5)
2.stop:計數(shù)到stop結(jié)束,但不包括stop。例如:range(0,5)的取值為[0,5)
3.step:步長,默認為1,例如range(0,5) 等價于range(0, 5, 1)
函數(shù)返回一個可迭代對象,從這個可迭代對象中可以獲取一個整數(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īng)典教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
Python 抓取動態(tài)網(wǎng)頁內(nèi)容方案詳解
這篇文章主要介紹了Python 抓取動態(tài)網(wǎng)頁內(nèi)容方案詳解,首先通過Chrome的工具來進行分析,然后再使用python進行處理,最終得到我們需要的內(nèi)容,非常的方便,這里也算是給大家提供一個思路2014-12-12
淺談Python里面None True False之間的區(qū)別
這篇文章主要介紹了淺談Python里面None True False之間的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Django Admin實現(xiàn)三級聯(lián)動的示例代碼(省市區(qū))
多級菜單在很多上面都有應(yīng)用,這篇文章主要介紹了Django Admin實現(xiàn)三級聯(lián)動(省市區(qū)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
Python實現(xiàn)捕獲異常發(fā)生的文件和具體行數(shù)
這篇文章主要介紹了Python實現(xiàn)捕獲異常發(fā)生的文件和具體行數(shù)。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python基于pycrypto實現(xiàn)的AES加密和解密算法示例
這篇文章主要介紹了Python基于pycrypto實現(xiàn)的AES加密和解密算法,結(jié)合實例形式分析了Python使用pycrypto模塊進行AES加密與解密操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-04-04

