Python入門-分支結構
阿新 • • 發佈:2021-08-16
編寫程式碼的過程中,除了基本的變數,資料型別,在實際開發中,大量程式碼是根據判斷條件,進而選擇不同的的向前執行方式。
這些向前的執行方式基本分為兩種:分支結構,迴圈結構
1.分支結構
if單分支結構
# if單分支結構,程式碼格式如下: if <條件>: <語句塊> # 使用多個if判斷,只要滿足條件會一直執行下去 name = "tom" age = 22 if age >18: print("你已經長大了") if name == "tom": print("你是tom") """ 你已經長大了 你是tom """ # 使用if做多條件判斷,儘量只做是否的判斷,減少邏輯錯誤age = 22 if age < 18: print("你還是個孩子") if age > 18: print("你已經長大了") """ 你已經長大了 """
if-else雙分支結構
#多分支可以實現更多判斷, 對比if單分支判斷,雙分支邏輯更為清晰。只需要判斷一個條件,根據這個條件來決定執行的語句塊,成立執行語句塊1,不成立執行語句塊2。
# 程式碼格式如下 if <條件>: <語句塊1> else: <語句塊2> age = 22 if age <18: print("你還是未成年人") else: print("你已經長大了") """ 你已經長大了 """
if-elif-else多分支結構
# 多分支結構是,根據不同條件來選擇語句塊執行的一種分支結構 #程式碼格式如下: if <條件1>: <語句塊1> elif <條件2>: <語句塊2> ...... else: <語句塊n> #多分支結構需要判斷多個條件,根據判斷當前條件是否成立,決定是否執行當前語句塊 """ 1.當滿足當前條件時,執行當前條件後結束程式碼 2.當前條件不滿足時,進行下一條判斷,如果下一條條件依然不滿足,依次往下執行判斷 3.當所有條件都不成立時,執行else的語句塊。""" # 成績分數判斷程式碼演示 num = 77 if num == 100: print("恭喜你獲得滿分") elif 80 < num <100: print("這是優秀成績") elif 60 < num <80: print("恭喜你及格了,繼續努力") else: print("成績沒及格哦,要加油咯") # 簡單的猜數字遊戲 input_num = input("1-10得範圍,請輸入你猜的數字:") #第一:判斷是否輸入的是數字 if input_num.isdigit(): res_num = int(input_num) # 把輸入的字串轉換為數字 #eval_num = eval(input("請輸入數字:")) 此方法也可以轉換為整型 # 第二:判斷數字是否在輸入範圍內 if res_num <10: #第三:當數字在範圍內,進行邏輯判斷 if res_num > 5: print("數字大了") elif res_num < 5: print("數字小了") else: print("恭喜你,猜對了") else: print("你輸入的數字太大了,只能1-10範圍內") else: print("你輸入的不是數字呀")
小提示: 當判斷結構過於複雜時,可以先寫簡單的外層判斷,外層寫完了再繼續內部判斷
小提示: 在分支結構中,優先把可能遇到的判斷情況,寫在程式碼前面,可以節省效能。
2.迴圈結構
迴圈結構用於,在特定條件下,重複執行一些程式塊。
從上面的分支結構,我們已經看到了如何用縮排來表示程式塊的隸屬關係,迴圈結構也會用到類似的寫法。
while迴圈
# 程式碼演示:100以內數字求和 num = 1 sum_num = 0 while num <= 100: sum_num += num # 累加求和 num += 1 # 修改迴圈結束條件 print(sum_num) # 注意:防止結束條件錯誤,導致死迴圈
while-else迴圈
num = 1 sum_num = 0 while num <= 100: sum_num += num num += 1 else: print(sum_num) print("程式碼結束了。")
# while迴圈的使用-斐波那契數列 a = 0 b = 1 while a < 1000: # 迴圈結束條件 print(a, end = ",") a, b = b, a + b # 利用變數的賦值操作,進行累加 #結果:0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987
for迴圈
# for迴圈需要預先設定好迴圈的次數(n),然後執行隸屬於for的語句n次。 #程式碼結構: for 元素 in 序列: statement # 程式碼演示 for i in [1,2,3]: print(i) """ 1 2 3 """ # 為了解決迴圈次數的問題,常使用range()函式, range(開始,結束),結束位置取不到,只能取到【結束-1】的值。 for i in range(10): print(i) """ 0 1 2 3 4 5 6 7 8 9 """ # 100以內的數字相加求和 s = 0 for i in range(101): # 因為取不到101,只能取到100 s += i print("計算結果為:",s) # 計算結果為: 5050
3.迴圈控制語句
迴圈過程中,語句如果臨時需要中斷,跳過等操作,就需要迴圈控制語句
break停止迴圈
# 找到5,就停止迴圈, for迴圈演示 for i in range(10): print(i, end = ",") if i == 5: break """ 0,1,2,3,4,5, """ # 找到5,就停止迴圈,while迴圈演示 a = 1 while a < 10: print(a, end = "-") if a == 5: break a += 1 """ 1-2-3-4-5- """
continue跳過本次迴圈
# 找到5,就跳過本次迴圈, for迴圈演示 for i in range(10): if i == 5: continue print(i, end = ",") """ 結果中沒有5,其他都有:0,1,2,3,4,6,7,8,9, """ # 找到5,就跳過本次迴圈,while迴圈演示 a = 0 while a < 10: a += 1 if a == 5: continue print(a, end ="-") """ 結果中沒有5,其他都有:1-2-3-4-6-7-8-9-10- """
4.巢狀迴圈
# 列印九九乘法表 # 乘法表規律為:列X行=結果,一共9行,行列相等。 for i in range(1, 10): # 定義九行 for j in range(1, i+1): #定義列數 print("{}*{}={}".format(j, i, j*i), end=" ") #輸出結果 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 """ # 輸出三角形的程式碼演示 # 規律:隨著行數的增加,空格減少,星號增加 line = 7 for i in range(0, line): for x in range(line -i): # 空格減少 print("", end = " ") for y in range(0, i + 1): # 星號增加 print("*", end = " ") print() """ * * * * * * * * * * * * * * * * * * * * * * * * * * * * """