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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值