Boibot 发表于 2022-10-17 10:31:51

最后三行的功能有点不理解,谁能给注释一下

i = 0
while i <= 100:
    if i % 2 != 0:
      print(i, end=' ')
      i += 1
    else:
      i += 1

tommyyu 发表于 2022-10-17 10:31:52

Boibot 发表于 2022-10-17 11:45
第5行i += 1在while缩进不在if缩进,请解释一下

第一个是改动前的流程图
第二个是改动后的流程图

jcpython2 发表于 2022-10-17 10:50:35

本帖最后由 jcpython2 于 2022-10-17 10:53 编辑

i = 0
while i <= 100:                  #当i小于等于100结束循环
    if i % 2 != 0:               #如果 i 余 2不等于0 i就+1
      print(i, end=' ')   #输出i,end= ' '就是输出i后再输出个空格
      i += 1
    else:                        #否则i就+1这里否则没有写条件,那就是跟上面那个条件一起的话你这个代码无论i是啥都+1
      i += 1

但凡i余2不定于0都打印出i的话,那就是说,i不是偶数就打印出i,你这个整体循环就是打印基数

tommyyu 发表于 2022-10-17 10:58:49

感觉写的有点繁琐,可以这样写:
i = 0
while i <= 100:
    if i % 2 != 0:
      print(i, end=' ')
    i += 1

Boibot 发表于 2022-10-17 11:45:55

tommyyu 发表于 2022-10-17 10:58
感觉写的有点繁琐,可以这样写:

第5行i += 1在while缩进不在if缩进,请解释一下

tommyyu 发表于 2022-10-17 11:49:16

Boibot 发表于 2022-10-17 11:45
第5行i += 1在while缩进不在if缩进,请解释一下

因为在这里面,无论是if还是else都有i+=1这条语句,所以可以直接放在if的外面

jackz007 发表于 2022-10-17 12:19:39

         最后三行确实很多余,if时执行,else 也执行,不就是无条件执行吗?所以,i += 1 和 if 无关,应该从 if ... else 语句块移出,安排到 if 语句块之下,与 if 缩进相同的位置。

Boibot 发表于 2022-10-17 13:10:23

jackz007 发表于 2022-10-17 12:19
最后三行确实很多余,if时执行,else 也执行,不就是无条件执行吗?所以,i += 1 和 if 无关, ...

这个解释也还行
页: [1]
查看完整版本: 最后三行的功能有点不理解,谁能给注释一下