鱼C论坛

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

[已解决]第四讲作业

[复制链接]
发表于 2021-7-1 08:36:45 | 显示全部楼层 |阅读模式

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

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

x
temp = input('请输入一个整数:')
number = int(temp)
i = 1
while number:
    print(i)
    i = i + 1
    number = number - 1
大佬们最后这个number = number - 1是怎么回事啊,没看懂,如果把这个去掉他就会一直往下打
最佳答案
2021-7-1 10:04:40
这个问题在于你对while判定的不理解,while (条件),你可以理解为 当(条件为真)的时候,执行后面的循环,对于数字来说,如果这个数字为0,那么就是条件为假,所以number=number-1就是为了让你的判定条件不断变化,最后一定会出现number小于等于0的情况,那时候就终止循环了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-1 08:37:51 From FishC Mobile | 显示全部楼层
while number:这里的 number不变成0
循环如何能结束???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-1 09:44:03 | 显示全部楼层
number = number - 1是让number每次都减去1

这样使得当number == 0时,while number不成立,从而退出循环

如果去掉这一行,number的值不会变化,使得条件while number永远成立,造成死循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-1 10:04:40 | 显示全部楼层    本楼为最佳答案   
这个问题在于你对while判定的不理解,while (条件),你可以理解为 当(条件为真)的时候,执行后面的循环,对于数字来说,如果这个数字为0,那么就是条件为假,所以number=number-1就是为了让你的判定条件不断变化,最后一定会出现number小于等于0的情况,那时候就终止循环了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-1 10:14:29 | 显示全部楼层
leafu 发表于 2021-7-1 10:04
这个问题在于你对while判定的不理解,while (条件),你可以理解为 当(条件为真)的时候,执行后面的循环 ...

另外,while后面的判定条件如果是数字的话,只有这个数字为0的时候,才会判定为假。负数也是判定为真
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-1 10:48:25 | 显示全部楼层
leafu 发表于 2021-7-1 10:04
这个问题在于你对while判定的不理解,while (条件),你可以理解为 当(条件为真)的时候,执行后面的循环 ...

我懂了,while是只要出现(条件),就会开始重复,不管是自己输入的还是程序中出现的对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-1 10:49:17 | 显示全部楼层
逃兵 发表于 2021-7-1 09:44
number = number - 1是让number每次都减去1

这样使得当number == 0时,while number不成立,从而退出循 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-14 19:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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