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 b等于3,然后再判断a是不是等于2或者4,此时如果a等于3的话,那么a等于3并且b等于3的结果就不会有输出,因为这个elif后面没有else了。
我之前想的是a等于3并且b等于3的时候,是会直接跳到最后一个else里面,然后打印出两个空格,搞了半天才发现问题,写代码一定要严谨。