Python迴圈與判斷
阿新 • • 發佈:2018-12-05
1.for 迴圈
使用for語句可以遍歷全部元素,例如逐個輸出字串中的字元,逐個輸出列表中的元素,元組中的元素,集合中的元素(注意賦值時各元素的順序),字典中的鍵……
1-1.range迴圈:
1 for i in range(5): #range(5)函式是生成一個0-4的列表來作為迴圈次數的判定 2 print(i) 3 """輸出結果: 4 D:\Python\venv\Scripts\python.exe D:/Python/基礎/迴圈.py 5 0 6 1 7 28 3 9 4
這是從range生成的列表裡分別從0開始賦值給i變數,每賦值一次就迴圈一次,一直到列表結束""""
元組的方式:
for i in (0,1,2,3,4) print(i) ##輸出結果跟上面是一樣的,但是一般不會使用,不簡潔。
列表的方式:
for i in ["j",1,3,"a",5]: print(i)
字串的方式:
for i in "python": print(i)
2.while 迴圈
如果條件成立(true),重複執行相同操作,條件不符合,跳出迴圈
while 迴圈條件:
迴圈操作
例:計算1-10相加的值
1 i = 1 ##賦值一個初始值給i變數 2 num = 0 #賦值一個初始值給num變數 3 while(i<=10): #設定迴圈判定條件:如果i變數小於10則條件成立,執行迴圈裡的語句,否則跳出迴圈 4 num = num + i #計算語句 5 i = i + 1 #給變數i+1返回給變數i 6 print(num)
巢狀迴圈 --> 外部迴圈滿足條件後,執行程式碼開始執行內部迴圈,等內部迴圈全部執行完畢,如果還滿足外部迴圈條件,則外部迴圈再次執行,依次類推,直到跳出外層迴圈。
例:分別輸入兩個學生的5門成績,並分別計算平均成績
1 j=1 # 定義外部迴圈計數器初始值 2 prompt='請輸入學生姓名' # 定義字串變數,在使用者輸入時呼叫此變數可以減少敲漢字的麻煩 3 while j<=2: # 定義外部迴圈為執行兩次 4 sum=0 # 定義成績初始值,之所以定義在這裡,是為了當第二個學生輸入成績時可以讓sum初始化為0,重新接收新學生的成績和 5 i=1 # 定義內部迴圈計數器初始值 6 name = raw_input(prompt) # 接收使用者輸入的學生姓名,賦值給name變數 7 while i<=5: # 定義內部函式迴圈5次,就是接收5門課程的成績 8 print ('請輸入第%d門的考試成績: '%i) #提示使用者輸入成績,其中用到了格式化輸出,%d的取值隨i的值顯示,第1門課程,第2門課程…… 9 sum= sum + input() # 接收使用者輸入的成績,賦值給sum 10 i+=1 # i變數自增1,i變為2,繼續執行迴圈,直到i等於6時,跳出迴圈 11 avg=sum/(i-1) # 計算第一個學生的平均成績 sum/(6-1),賦值給avg 12 print name,'的平均成績是%d\n'%avg # 輸出學生成績平均值 13 j=j+1 # 內部迴圈執行完畢後,外部迴圈計數器j自增1,變為2,再進行外部迴圈 14 print '學生成績輸入完成!' # 外部迴圈結束,提示輸入完成!
3.迴圈控制
迴圈控制語句可以改變迴圈正常的執行順序
迴圈控制語句
break語句:跳出本次迴圈(巢狀迴圈中只跳出一層迴圈)
continue語句:跳過當前一輪迴圈體的剩餘語句,重新測試迴圈狀態,進入下一輪迴圈,比如迴圈的次數一共有5次,第四次遇到continue了,那麼不繼續執行了,直接進行第5次迴圈判斷
4.if elif else -->條件判定執行
if condition:
expressions
如果 condition 的值為 True,將會執行 expressions 語句的內容,否則將跳過該語句往下執行。
例:輸入一個數字判定
1 while True: #建立一個死迴圈 2 try: #異常捕獲 3 num = float(input('請輸入一個數字:')) #鍵盤獲取一個值 4 if num == 0: #if判定是否等於0 5 print('輸入的數字是零') #如果等於0則輸出 6 elif num > 0: ##if判定是否大於0 7 print('輸入的數字是正數') #如果大於0則輸出 8 else: #以上判定都不符合則輸出else下的語句 9 print('輸入的數字是負數') 10 break 11 except ValueError: #捕獲輸入異常 12 print("你輸入的數字無效!") #捕獲到異常則執行 13