Python如何让try块同时接收int输入和'exit'等指定退出字符串
实现思路
你需要先保存用户输入的原始字符串,不要直接做int转换,优先判断是否为退出指令,再做int类型校验,调整逻辑如下:
- 先获取用户输入的原始字符串存入变量
- 先校验原始字符串是否为
exit,匹配则直接终止程序 - 若不是退出指令,再尝试将原始字符串转换为int类型,捕获转换异常提示非法输入
代码实现
单次输入版本
import sys try: raw_inp = input('Int: ').strip() # 先判断是否为退出指令 if raw_inp == 'exit': print("退出程序") sys.exit() # 再尝试转int inp = int(raw_inp) print(f"输入的合法整数为:{inp}") except ValueError: print('Not an int.')
循环输入版本(反复要求输入直到触发退出/拿到合法整数)
import sys while True: try: raw_inp = input('Int: ').strip() if raw_inp == 'exit': print("退出程序") sys.exit() inp = int(raw_inp) print(f"输入的合法整数为:{inp}") # 拿到合法整数后要跳出循环可取消下面注释 # break except ValueError: print('Not an int.')
补充说明
- 如果需要支持不区分大小写的退出指令(比如输入
Exit/EXIT也能退出),可以把判断条件改为if raw_inp.lower() == 'exit': - 不需要退出整个程序的场景,也可以把
sys.exit()替换为对应业务的跳出逻辑(比如循环内直接用break跳出即可)
内容的提问来源于stack exchange,提问作者Henri
相关产品推荐
相关产品推荐

