Gaoooo 发表于 2021-1-8 16:41:06

请问python3.0中,if后面一定要跟else吗

num = 0
while num<=100:
    if num%2 == 0:
      print(num)
      num = num + 1
#    else:
#       num += 1

如果我把else这两行注释掉,按F5后再idle中会卡着不动,这是为什么呢?不是说可以if后面不加else吗?
结果:
>>>
=============== RESTART: C:/Users/g18291/Desktop/python/fish6.py ===============
0

昨非 发表于 2021-1-8 16:44:36

本帖最后由 昨非 于 2021-1-8 16:50 编辑

如果去掉else分支,当if不成立的时候,怒骂作为循环变量,它不变怎么跳出循环啊
else可以不加,但是num+=1一定要出现在每次循环里,无论执行if还是else
num = 0
while num<=100:
    if num%2 == 0:
      print(num)
    num += 1#大可把这一行写到if外,这样无论if满不满足num都会+1

Gaoooo 发表于 2021-1-8 16:56:40

昨非 发表于 2021-1-8 16:44
如果去掉else分支,当if不成立的时候,怒骂作为循环变量,它不变怎么跳出循环啊
else可以不加,但是num+=1 ...

哦哦,明白了,非常感谢

jackz007 发表于 2021-1-8 16:58:14

num = 0
while num<=100:
    if num%2 == 0:
      print(num)
      num = num + 1   # 只有 num 是偶数的时候 num 的值才会更新
      num 从 0 开始,算是一个偶数,于是执行 num = num + 1,num = 1 是个奇数,由于 num 只在偶数的时候才会更新,从此,num 再没有机会修改,while 循环也就变成一个死循环了。

昨非 发表于 2021-1-8 16:59:59

Gaoooo 发表于 2021-1-8 16:56
哦哦,明白了,非常感谢

满意的话请设为最佳答案吧
页: [1]
查看完整版本: 请问python3.0中,if后面一定要跟else吗