1. 程式人生 > >python初識03-流程控制

python初識03-流程控制

流程控制方法的使用極大的增強了程式的執行能力,使得程式能像人一樣,能夠判斷條件並根據結果來執行一系列任務。

流程控制包括 if判斷、while迴圈和for迴圈。

1、if判斷

我們先看一個用if判斷寫的猜數字遊戲:

bkg_num = 18
guess = input("input a number >>>")
if guess != bkg_num:
    print("not this number")

if 是if判斷的標誌,在if後面加上判斷條件,如果條件滿足就執行if語句內的程式碼塊。此外,if經常和elif,else連用。

elif用來連線多個條件的判斷,而else上面的所有條件都不滿足時,就會執行else下的程式碼塊。

你可以嘗試寫一段判斷成績的程式碼,當輸入分數時,會根據分數確定成績等級:

score = input('your score>>: ')
score = int(score)
if score >= 90:
    print('優秀')
elif score >= 80:
    print('良好')
elif score >= 70:
    print('普通')
else:
    print('很差')

if判斷還可以用來巢狀,在一個if語句的子程式碼塊裡再次使用if判斷。

2、while 迴圈

if判斷只能執行一次,如果想要多次執行一段程式碼,直到滿足要求才停止,就需要用到while迴圈。

i = 0
while i < 5:
    print(i)
    i += 1

while後面是判斷條件,當條件滿足時(True),會執行子程式碼塊,執行完子程式碼塊時,會再次判斷條件是否滿足,如果滿足,繼續執行,如此迴圈。為了不讓程式陷入死迴圈,通常會新增一段程式碼(比如 i+=1 這樣的計數器)來控制迴圈。

你可以使用while迴圈來實現一個簡化的登陸功能。

name_of_bk='xiaoli'
pwd_of_bk='123'

tag=True
count = 0
while tag:
    inp_name=input('your name>>: 
') inp_pwd=input('your password>>: ') if inp_name == name_of_bk and inp_pwd == pwd_of_bk: print('login successful') tag=False else: print('username or password error') count+= 1 if count == 3: tag = False

可以看到,程式碼中使用了變數count作為控制的變數,每次輸入錯誤,count自增1,當count ==3 時,tag = False,while迴圈的條件就不滿足了,從而終止迴圈。

終止迴圈還可以使用關鍵字break 和 continue,break會無條件終止其所在迴圈,並且放棄執行這個迴圈中break下方的程式碼,然後跳出這個迴圈。而 continue 會跳出本次迴圈,不執行本次迴圈中continue下方的程式碼,回到判斷條件。

while True:
    num1 = int(input("give me a number>>>"))
    if num1 < 5:
        print("被break終止")
        break
    else:
        print("遇到了continue")
        continue

與其他語言不同的是,while迴圈後也可以加else,當while語句正常執行完,沒有被break,就會執行else裡的語句。

while迴圈也能巢狀,用while迴圈列印一個下圖所示的金字塔:

row = 1
while row <6:
    rank = 0
    while rank<(5-row):
        print(" ",end="")
        rank+=1
    print("*"*(2*row-1))
    row+=1

while迴圈還可以列印楊輝三角,斐波那契數列等,請自行嘗試。