为什么我不能在此代码中的“ if”条件的同一行中放置“ elif”的条件?

时间:2019-09-15 12:22:46

标签: python for-loop if-statement

好吧,我正在尝试使用for循环和if-else条件打印字母“ R”,这是我不明白为什么我必须使用elif语句的原因,因为我无法仅使用if语句来运行代码。 如果尝试将elif内容放到不起作用的话。

a=4
b=2
for i in range(7):
    for j in range(5):
        if (j==0) or ((j==4)and (0<i<3)) or ((i==0 or i==3) and (4>j>0)) :
            print("R",end=" ")
        elif (i==a and j==b) and j>0:
            print("R",end=" ")
            a+=1
            b+=1
        else:
            print(" ",end=" ")
    print()

此代码运行正常

a=4
b=2
for i in range(7):
    for j in range(5):
        if (j==0) or ((j==4)and (0<i<3)) or ((i==0 or i==3) and (4>j>0)) or ((i==a and j==b) and j>0):
            print("R",end=" ")
            a+=1
            b+=1
        else:
            print(" ",end=" ")
    print()

我无法使用以下代码制作R模式。

"""R R R R   
   R       R 
   R       R 
   R R R R   
   R   R     
   R     R   
   R       R """

1 个答案:

答案 0 :(得分:0)

尝试做:

a=4
b=2
for i in range(7):
    for j in range(5):
        if (j==0) or ((j==4)and (0<i<3)) or ((i==0 or i==3) and (4>j>0)) or ((i==a and j==b) and j>0):
            print("R",end=" ")
            # This part is edited.
            if (i==a and j==b) and j>0:
                a+=1
                b+=1
        else:
            print(" ",end=" ")
    print()

这部分代码:

a+=1
b+=1

仅在以下情况下应执行:

(i==a and j==b) and j>0

是真的。