Python如何实现仅接受正整数输入的代码块,添加>0校验逻辑?
Python正整数输入程序修改方案
你现有代码存在两个问题:一是try和except两个分支都加了break,不管输入是否合法都会直接终止循环,无法实现重复校验输入的效果;二是没有对转换后的整数做大于0的判断。
你可以按照以下逻辑修改代码:
- 移除
except代码块中的break,输入非整数内容时不会直接退出,会回到循环开头让用户重新输入 - 整数转换成功后新增数值大于0的校验,只有符合要求才跳出循环,否则提示错误后继续等待输入
修改后的完整代码如下:
while True: number = input('Type an integer positive number: ') try: number = int(number) # 新增正整数校验逻辑 if number > 0: break else: print('输入错误,请输入大于0的正整数') except ValueError: print('Value not accepted')
运行逻辑说明:程序会持续循环,直到用户输入合法正整数才会继续执行后续代码。如果输入内容无法转换为整数,会触发ValueError捕获提示错误;如果能转换为整数但数值小于等于0,也会提示错误要求重新输入。
内容的提问来源于stack exchange,提问作者Stm Dask
相关产品推荐
相关产品推荐

