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  #     *  #    ***  #   *****  #  *******  # *********