lze001 发表于 2019-1-19 10:13:12

关于continue语句的求助

for i in range(10):
    if i%2 != 0:
      print(i,end=" ")
      continue
    i += 2
    print(i,end=" ")

小弟天资愚钝,心中苦闷,特来求解
1、当i=0的时候,0%2的余数是0 不满足 !=0这个条件,所以i直接到这里面 i+=2,结果是0+2=2,所以print的第一个结果是2
2、当i=1的时候,1%2的余数是1 满足!=0这个条件,所以直接print的结果就是1
3、当i=2的时候,2%2的余数是0 不满足!=0这个条件,所以i直接到这里面 i+=2,结果是2+2=2,所以print的第一个结果是4

请问大家,我这个理解过程正确么?

另外 有两个小学级别的问题
1、为什么0%2的余数是0,0不是不能作为被除数吗?
2、1%2的余数又怎么是1??1/2不该等于0.5么?

heidern0612 发表于 2019-1-19 10:29:44

本帖最后由 heidern0612 于 2019-1-19 10:31 编辑

你理解是对的,continue满足的话,就直接返回for循环,不往下进行了。

1、0不能作为除数,不是被除数,如果0作为除数进行计算的话,Python会抛出个除0错误的提示。

2、1%2余数只能是自己,因为没办法被2除,没有办法被某数整数时,返回的都是除商后剩余的数,例如7%2,这里结果是1,相等于2*3+1。

注意这里求的是余数,而不是实际结果。求实际结果的话,就用对应的7/2就可以。

lze001 发表于 2019-1-19 10:59:47

heidern0612 发表于 2019-1-19 10:29
你理解是对的,continue满足的话,就直接返回for循环,不往下进行了。

1、0不能作为除数,不是被除数,如 ...

谢谢!!真的是很清晰易懂
页: [1]
查看完整版本: 关于continue语句的求助