IF語句中一不小心犯的錯誤
阿新 • • 發佈:2018-12-13
for a in range(1,15): for b in range(1,6): if a == 1 or a == 6 or b == 1: if b < 3: print("*",end=" ") elif b == 3 and (a == 2 or a == 4): print("*",end=" ") elif a == 3 and b == 4: print("*", end=" ") else: print(" ", end="") print()
控制檯中輸出的內容:
* *
* *
* *
* *
*
上面是改過的程式碼,下面是沒改之前的程式碼。
for a in range(1,15): for b in range(1,6): if a == 1 or a == 6 or b == 1: if b < 3: print("*",end=" ") elif b == 3: if a == 2 or a == 4: print("*",end=" ") elif a == 3 and b == 4: print("*", end=" ") else: print(" ", end="") print()
控制檯中輸出的內容:
* *
* *
* *
* *
*
問題就出現在第六行,我之前的程式碼是先判斷了elif b3:然後再判斷a是不是等於2或者4,此時如果a等於3的話,那麼a3並且b3的結果就不會有輸出,因為這個elif後面沒有else了。 我之前想的是a3並且b==3的時候,是會直接跳到最後一個else裡面,然後打印出兩個空格,搞了半天才發現問題,難受。