鱼C论坛

 找回密码
 立即注册
查看: 3776|回复: 4

[已解决]新手请教:int_input()函数

[复制链接]
发表于 2018-4-9 23:06:49 | 显示全部楼层 |阅读模式

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

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

x
老师有段代码,是输入整数程序退出,如果输入的不是整数,提示异常,并且继续让用户输入
代码入下:
---------------------------------------------------------------------------------
def int_input(prompt):
    while True:
        try:
            int(input(prompt))
            break
        except ValueError:
            print('出错,您输入的不是整数!')

int_input('请输入一个整数:')
----------------------------------------------------------------------------------

输入是整数正常退出我能看懂,因为触发了break。
输入错误,提示异常那个我也能看懂,但是后面紧跟着又打印出让用户继续输入一个整数,我有点看不明白,程序运行入下:
--------------------------------------------------
请输入一个整数:hhh
出错,您输入的不是整数!
请输入一个整数:
-------------------------------------------------------
1. 不是出现异常就退出异常以后的代码执行吗?为什么还会触发再次input的语句呢?是因为这个异常也是在while true的循环里面吗?
2. 即使在while的大循环里面,但是怎么会又触发了‘'请输入一段整数'’这个段话呢?这段话在while循环的外面啊,也没有用递归,怎么实现的呢?
最佳答案
2018-4-9 23:18:19
HenryZhang 发表于 2018-4-9 23:16
谢谢你的回答,感谢,我这两个问题可能就是一个,就是出现异常了,跳到异常处理了,那怎么会自动继续让你 ...

因为你还在while循环里
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-9 23:11:52 | 显示全部楼层
因为本来在可能出错的地方,你用了try来规避,一旦输入错误
break并没有执行,直接跳到except
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-9 23:16:28 | 显示全部楼层
塔利班 发表于 2018-4-9 23:11
因为本来在可能出错的地方,你用了try来规避,一旦输入错误
break并没有执行,直接跳到except

谢谢你的回答,感谢,我这两个问题可能就是一个,就是出现异常了,跳到异常处理了,那怎么会自动继续让你输入呢,又让你输入的语句是怎么触发的啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-9 23:18:19 | 显示全部楼层    本楼为最佳答案   
HenryZhang 发表于 2018-4-9 23:16
谢谢你的回答,感谢,我这两个问题可能就是一个,就是出现异常了,跳到异常处理了,那怎么会自动继续让你 ...

因为你还在while循环里
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-9 23:23:50 | 显示全部楼层
塔利班 发表于 2018-4-9 23:18
因为你还在while循环里

懂了懂了,恍然大悟,谢谢你,脑力有点乱了,就是prompt一直是被赋值为 '请输入一个整数: ”,这段话的显示,也一直是int(input(prompt))这个语句实现的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-10 08:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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