鱼C论坛

 找回密码
 立即注册
查看: 1940|回复: 6

[已解决]求助 while 字句

[复制链接]
发表于 2020-5-21 00:07:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用while循环解“1到100分别乘以5”的题目,
a = 1
while a<101:
    print(5*a)
    a = a+1
为什么要加上 a=a+1
最佳答案
2020-5-21 00:17:54
while循环不会自己改变条件的,这是和for循环不同的地方。
while循环需要自己受到修改循环条件,这就是循环内 a=a+1 的作用

你的第二段代码中,从来没有修改过a的值,a 一直是 1 ,永远满足条件,所以是个死循环,一直输出5
用for循环的话就不必手动修改循环条件,因为for循环开始的时候就会生成一个可迭代对象,进行逐个遍历。
如下程序,开始循环的 时候就会生成一个遍历列表[1,2,3,…,98,99,100]然后每次循环,就将列表中的值逐个赋值给a
for a in range(1,101):
    print(5*a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-21 00:08:13 | 显示全部楼层
为什么  下面这个代码结果全是 5
a = 1
while a<101:
    print(5*a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 00:17:54 | 显示全部楼层    本楼为最佳答案   
while循环不会自己改变条件的,这是和for循环不同的地方。
while循环需要自己受到修改循环条件,这就是循环内 a=a+1 的作用

你的第二段代码中,从来没有修改过a的值,a 一直是 1 ,永远满足条件,所以是个死循环,一直输出5
用for循环的话就不必手动修改循环条件,因为for循环开始的时候就会生成一个可迭代对象,进行逐个遍历。
如下程序,开始循环的 时候就会生成一个遍历列表[1,2,3,…,98,99,100]然后每次循环,就将列表中的值逐个赋值给a
for a in range(1,101):
    print(5*a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-21 00:43:43 | 显示全部楼层
sunrise085 发表于 2020-5-21 00:17
while循环不会自己改变条件的,这是和for循环不同的地方。
while循环需要自己受到修改循环条件,这就是循 ...

大佬 刚学python不到一个星期,很多基础的知识并不清楚,重新把 a=a+1 放到 print 上面跑了一下,大概了解了,后面的a=a+1 其实是在上一次 print(a*5) 之后,计算出a+1,保证a+1<101后,继续 print(a*5),如此往复循环,直至a+1>=101 ,结束计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-21 00:44:17 | 显示全部楼层
sunrise085 发表于 2020-5-21 00:17
while循环不会自己改变条件的,这是和for循环不同的地方。
while循环需要自己受到修改循环条件,这就是循 ...

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-21 00:46:57 | 显示全部楼层
sunrise085 发表于 2020-5-21 00:17
while循环不会自己改变条件的,这是和for循环不同的地方。
while循环需要自己受到修改循环条件,这就是循 ...

是不是 第一行a=1的意思是 从a=1开始计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 10:30:21 | 显示全部楼层
如果是我来定义,我更喜欢定义a <= 100;另外,使用range来确定范围,最后一个字符是不在范围内吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 16:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表