1. 程式人生 > >IF語句中一不小心犯的錯誤

IF語句中一不小心犯的錯誤

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裡面,然後打印出兩個空格,搞了半天才發現問題,難受。