图图666 发表于 2020-11-13 10:25:36

关于python第6讲问题

请写一个程序打印出 0~100 所有的奇数。
i = 0
while i <= 100:
    if i % 2 != 0:
      print(i, end=' ')
      i += 1
    else:
      i += 1
这段小甲鱼的代码从if这开始有点看不懂,求大神讲解一下,谢谢

昨非 发表于 2020-11-13 10:36:53

i取余2不等于0,就是i除以2的余数不为0,也就是奇数的意思咯

Twilight6 发表于 2020-11-13 10:39:01


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

% 是求余符号, i 如果余数为 0 那么说明被 2 整除,即不是基数,所以只有 在 i 不被 2 整除时候为奇数

后执行 if 下面的代码块,打印出不被 2 整除的数,即奇数

print 里面的 end 参数是 print 函数打印完自动追加打印的一个参数,默认情况下 end = '\n' 换行符,所以 print 函数会自动换行

当我们人为的为 print 函数的 end 参数赋值,如你这里代码赋值了 end = '' 一个空格,所以这里 print 就不会自动换行,而是每次打印完后追加打印一个空格

i + 1 是为了测试下一个数,否则会导致死循环,一直计算一个 i 的值

else:
    i += 1

因为 前面的 if 条件代码是 i % 2 != 0 ( i 不被 2 整除) , 当 i 被 2 整除时候就会执行 else 的代码块,执行 i += 1 开始测试下一个数是否为奇数
页: [1]
查看完整版本: 关于python第6讲问题