python-if條件判斷與while/for循環
- 2019 年 10 月 7 日
- 筆記
條件判斷if
讓電腦像人一樣,能判斷是非對錯,根據條件做一些事情。
if
''' ------ if程式碼結構:------- if 條件: 程式碼體 tips:同一縮進範圍內的程式碼被視作同一程式碼體,python官方推薦python縮進一次為4個空格 ''' is_happy = True if is_happy: print("Nice to meet you!") # Nice to meet you!
if else
1 ''' 2 ------ if程式碼結構:------- 3 if 條件: 4 程式碼體 5 else: 6 程式碼體 7 8 tips:當不滿足if 的條件時就會執行到else ,運行else 中的程式碼 9 10 ''' 11 is_happy = False 12 if is_happy: 13 print("Nice to meet you!") 14 else: 15 print("Today is a bad day!") 16 # Today is a bad day!
if elif else
1 ''' 2 ------ if程式碼結構:------- 3 if 條件: 4 程式碼體 5 elif 條件: 6 程式碼體 7 else: 8 程式碼體 9 10 tips:當不滿足if 的條件時就會執行到下一個elif....如果接著的都不滿足,那最後執行到else 11 12 ''' 13 math_score = 99 14 if math_score >= 90: 15 print("優秀") 16 elif math_score >= 80: 17 print("良好") 18 elif math_score >= 60: 19 print("一般") 20 else: 21 print("很遺憾,未及格!") 22 # 優秀
if 嵌套
# if可以多級嵌套,注意縮進 math_score = 99 if math_score >= 90: if math_score > 100: print("您的輸入有誤,請輸入正確的分數(0~100)!") else: print("優秀")
循環
使用循環來替代重複往返的動作
while循環
while
''' while 條件: 程式碼體 tips:不要忘了 條件後面的 : 程式碼體需要縮進4個空格 ''' i = 1 while i < 4: print(i) i += 1 # 1 # 2 # 3
死循環
# 死循環,使CPU 一直處於運算狀態 i = 1 while True: i += 1 # 雖然也是 while True 但因其要等待用戶輸入資訊才進入下一輪循環,並非死循環 while True: input("請輸入資訊")
while else
1 # ---------------對於while else 結構:-------------------- 2 # 當while 循環正常循環(執行)完畢沒有遇到break 後會進入else 中 3 4 i = 1 5 while i < 4: 6 if i == 2: 7 i += 1 8 continue 9 print(i) 10 i += 1 11 else: 12 print("while 循環正常執行結束,沒有遇到break 提前退出") 13 14 # 1 15 # 3 16 # while 循環正常執行結束,沒有遇到break 提前退出 17 18 # 遇到break 退出循環,則不會進入到else 中 19 i = 1 20 while i < 4: 21 if i == 2: 22 i += 1 23 break 24 print(i) 25 i += 1 26 else: 27 print("while 循環正常執行結束,沒有遇到break 提前退出") 28 # 1
break:退出本層循環
continue:結束本次循環,直接進入下一次循環
1 i = 1 2 while i < 6: 3 if i == 3: 4 i += 1 5 break 6 print(i) 7 i += 1 8 print(i) 9 # 1 10 # 2 11 # 4 12 # 執行到i == 3的if 語句時就退出了整個循環, 後面的i 只到了4 (i == 3 的時候執行了if i == 3 中的 i += 1) 13 14 i = 1 15 while i < 6: 16 if i == 3: 17 i += 1 18 continue 19 print(i) 20 i += 1 21 print(i) 22 # 1 23 # 2 24 # 4 25 # 5 26 # 6 27 # 執行到i == 3的if 語句時就退出了本次循環,直接重新進入到了 while i < 6 這裡開始下一次循環
for循環
for
''' ------for程式碼結構:------- for 條件: 程式碼體 tips: for的末尾要寫 : 不要漏了程式碼體的縮進(4各個空格) ''' for i in range(1, 4): print(i) # 1 # 2 # 3
range()函數
''' ------- range()函數 --------- python 2.x: range() xrange() 調用range()函數會生成一個列表 調用xrange()函數會生成一個迭代器對象,只有在使用的時候才會取出裡面的對象 python 3.x: range() 同python 2.x 中的 xrange()函數 '''

break、continue: 與while 循環中一致
for else:當for 循環正常執行結束沒有遇到break 時會進入 else
# ---------------對於for else 結構:-------------------- # 當for 循環正常循環(執行)完畢沒有遇到break 後會進入else 中 for i in range(1, 4): if i == 2: continue print(i) else: print("for 循環正常執行結束,沒有遇到break 提前退出") # 1 # 3 # for 循環正常執行結束,沒有遇到break 提前退出 # 遇到break 退出循環,則不會進入到else 中 for i in range(1, 4): if i == 2: break print(i) else: print("for 循環正常執行結束,沒有遇到break 提前退出") # 1
多重循環(循環嵌套)
1 # 退出雙層循環的while循環嵌套 2 user_db = 'abc' 3 pwd_db = '123' 4 flag = True 5 while flag: 6 inp_user = input('username>>>: ') 7 inp_pwd = input('password>>>: ') 8 if inp_user == user_db and pwd_db == inp_pwd: 9 print('login successful') 10 while flag: 11 cmd = input('請輸入你需要的命令:') 12 if cmd == 'q': 13 flag = False 14 break 15 print('%s功能執行'%cmd) 16 else: 17 print('username or password error, please input again!') 18 print('退出了while循環')
技巧:定義標誌位 flag 跳出多重循環
小案例
九九乘法表
for i in range(1, 10): for j in range(1, i+1): print("%d * %d = %2dt" %(i, j, i*j), end='') print() # 1 * 1 = 1 # 2 * 1 = 2 2 * 2 = 4 # 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 # 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 # 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 # 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 # 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 # 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 # 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
列印指定層數金字塔
num = int(input("輸入層數 >>>:")) level = 0 for level in range(1, num + 1): for i in range(num - level): print(" ", end='') for j in range(2 * level - 1): print("*", end='') print() # 輸入5 # * # *** # ***** # ******* # *********