于熙顿 发表于 2021-8-3 16:57:31

关于循环语句

i = 1
while i <= 30 and i % 2 == 1:
    print(i)
为什么用如上代码无法输出所有小于等于30的奇数?

wp231957 发表于 2021-8-3 17:00:21

i没有自增,循环没法跑

青出于蓝 发表于 2021-8-3 17:00:29

i = 1
while i <= 30:
   if i%2==1:
      print(i)
   i=i+1
   

青出于蓝 发表于 2021-8-3 17:01:09

1,i需要不断增大
2,i%2==1不是循环的条件,而是输出的条件

于熙顿 发表于 2021-8-3 17:06:31

青出于蓝 发表于 2021-8-3 17:01
1,i需要不断增大
2,i%2==1不是循环的条件,而是输出的条件

第一点明白了,第二点还是有点懵,不是得通过循环判断i%2==1是否成立才行吗,为什么是输出的条件呢?

青出于蓝 发表于 2021-8-3 17:07:44

于熙顿 发表于 2021-8-3 17:06
第一点明白了,第二点还是有点懵,不是得通过循环判断i%2==1是否成立才行吗,为什么是输出的条件呢?

因为如果把它设为循环条件,一旦不成立就不会在继续循环了。

StudyPython_1 发表于 2021-8-3 17:07:52

相比较while循环,我感觉还是range比较友好一点
for i in range(1,31):
    if i%2==1:
      print(i)

于熙顿 发表于 2021-8-3 17:08:16

青出于蓝 发表于 2021-8-3 17:01
1,i需要不断增大
2,i%2==1不是循环的条件,而是输出的条件

还有i%2==1在写代码的时候中间一定用加空格吗?

于熙顿 发表于 2021-8-3 17:09:27

青出于蓝 发表于 2021-8-3 17:01
1,i需要不断增大
2,i%2==1不是循环的条件,而是输出的条件

while和and可以连用吗?

青出于蓝 发表于 2021-8-3 17:09:46

于熙顿 发表于 2021-8-3 17:06
第一点明白了,第二点还是有点懵,不是得通过循环判断i%2==1是否成立才行吗,为什么是输出的条件呢?

lz可以跑一跑,我们代入进来试一试,加入吧i%2设为循环条件
i=1,输出1
i=2,不符合循环条件,跳出循环。
程序运行完毕
慢慢思考,是否发现了问题所在?

青出于蓝 发表于 2021-8-3 17:10:17

于熙顿 发表于 2021-8-3 17:08
还有i%2==1在写代码的时候中间一定用加空格吗?

不是的

青出于蓝 发表于 2021-8-3 17:12:45

于熙顿 发表于 2021-8-3 17:09
while和and可以连用吗?

可以

于熙顿 发表于 2021-8-3 17:21:36

青出于蓝 发表于 2021-8-3 17:09
lz可以跑一跑,我们代入进来试一试,加入吧i%2设为循环条件
i=1,输出1
i=2,不符合循环条件,跳出循环 ...

想明白了谢谢

于熙顿 发表于 2021-8-3 17:22:37

青出于蓝 发表于 2021-8-3 17:10
不是的

我还想问一下是不是像i%2==1这样一类的运算式子中间都可以不加空格

于熙顿 发表于 2021-8-3 17:23:09

StudyPython_1 发表于 2021-8-3 17:07
相比较while循环,我感觉还是range比较友好一点

谢谢 我以后找时间试一下

青出于蓝 发表于 2021-8-3 17:25:25

于熙顿 发表于 2021-8-3 17:22
我还想问一下是不是像i%2==1这样一类的运算式子中间都可以不加空格

运算符前后?
可加可不加但注意要一致
正确:
i%2==1
i%2 == 1
i%2==1
错误:
i%2 ==1

于熙顿 发表于 2021-8-3 17:30:01

青出于蓝 发表于 2021-8-3 17:25
运算符前后?
可加可不加但注意要一致
正确:


万分感谢~~

青出于蓝 发表于 2021-8-3 17:30:39

于熙顿 发表于 2021-8-3 17:30
万分感谢~~

{:10_268:}
有问题多交流
页: [1]
查看完整版本: 关于循环语句