鱼C论坛

 找回密码
 立即注册
查看: 931|回复: 10

[已解决]以下程序里是如何跳出循环的不太理解

[复制链接]
发表于 2020-4-23 11:44:05 | 显示全部楼层 |阅读模式

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

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

x
这是零基础学Python L005动动手里面的题目不理解的地方在程序里备注了:
temp = input('请输入一个年份:')
while not temp.isdigit():
#input()返回值是字符串,所以not temp.isdigit()的结果应该是True(我理解没错吧?);然后我就一直没想通是怎么跳出循环的,哪位能帮忙解答一下吗?
    temp = input("抱歉,您的输入有误,请输入一个整数:")

year = int(temp)
if year/400 == int(year/400):
    print(temp + ' 是闰年!')
else:
    if (year/4 == int(year/4)) and (year/100 != int(year/100)):
        print(temp + ' 是闰年!')
    else:
        print(temp + ' 不是闰年!')
最佳答案
2020-4-25 11:23:58
anjingziji 发表于 2020-4-25 08:49
不好意思,回复晚了,还是有点不懂,因为input('请输入一个年份:')里面不是本来就有文字吗?所以仅为数 ...

input()里面你打的字是输入提示,实际传到temp的内容是程序运行时的输入,而isdigit()判断的是temp里面的内容,所以只需要你输入的全是数字就可以使isdigit()为true
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-23 11:47:06 From FishC Mobile | 显示全部楼层
isdigit()是字符串的方法,如果内容是数字返回true
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-23 11:51:09 | 显示全部楼层
isdigit是字符串的方法,就是用于判断给的字符串里面是否仅为数字组成
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-23 12:04:18 | 显示全部楼层
倒戈卸甲 发表于 2020-4-23 11:47
isdigit()是字符串的方法,如果内容是数字返回true

嗯,这个我是理解的,我现在不懂的是while循环是怎么跳出来的,因为要跳出循环不是要不符合循环条件吗,但我现在感觉input()里面输入和整数应该还是符合循环条件的,想知道为什么输入整数就不符合:
not temp.isdigit这个条件了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-23 12:14:39 From FishC Mobile | 显示全部楼层
anjingziji 发表于 2020-4-23 12:04
嗯,这个我是理解的,我现在不懂的是while循环是怎么跳出来的,因为要跳出循环不是要不符合循环条件吗, ...

是整数那就true,那not true就是跳出啊,这难道还有什么玄机吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-23 13:10:54 | 显示全部楼层
isdigit() 是字符串的方法,这里表示如果用户输入的不是数字就继续循环,如果是数字则结束循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-23 13:12:19 | 显示全部楼层
anjingziji 发表于 2020-4-23 12:04
嗯,这个我是理解的,我现在不懂的是while循环是怎么跳出来的,因为要跳出循环不是要不符合循环条件吗, ...

not 就是取反,如果 temp.isdigit() 为 True 则 not temp.isdigit() 为 False,如果 temp.isdigit() 为 False 则 not temp.isdigit() 为 True 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-23 13:22:12 | 显示全部楼层
isdigit()方法用于检查字符串是否仅由数字组成。
若并非(while not) 仅为数字,则显示“抱歉,您的输入有误,请输入一个整数:”
否则就跳出循环,执行下一行指令了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-25 08:49:03 | 显示全部楼层
404-404 发表于 2020-4-23 13:22
isdigit()方法用于检查字符串是否仅由数字组成。
若并非(while not) 仅为数字,则显示“抱歉,您的输入 ...

不好意思,回复晚了,还是有点不懂,因为input('请输入一个年份:')里面不是本来就有文字吗?所以仅为数字的情况是怎么出现的?(因为还是新手,问题可能有点奇怪,请多见谅哈。。。)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-25 11:23:58 | 显示全部楼层    本楼为最佳答案   
anjingziji 发表于 2020-4-25 08:49
不好意思,回复晚了,还是有点不懂,因为input('请输入一个年份:')里面不是本来就有文字吗?所以仅为数 ...

input()里面你打的字是输入提示,实际传到temp的内容是程序运行时的输入,而isdigit()判断的是temp里面的内容,所以只需要你输入的全是数字就可以使isdigit()为true
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-25 12:33:28 | 显示全部楼层
pythonboy123 发表于 2020-4-25 11:23
input()里面你打的字是输入提示,实际传到temp的内容是程序运行时的输入,而isdigit()判断的是temp里面的 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 20:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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