代码无法运行求助:输入数字仍提示‘仅允许输入数字’该如何修复?
修复输入数字仍提示"only numbers are allowed"的问题
嘿,我看了你的代码,问题出在while循环的条件判断逻辑上啦!
你写的while age != age.isdigit()这里有个逻辑错误:age.isdigit()会返回一个布尔值(True或False),而age是用户输入的字符串。当你输入数字时,age.isdigit()是True,但你拿字符串和布尔值做不等比较(比如"25" != True),这个结果永远是True,所以循环会一直执行,哪怕你输入的是数字。
正确的逻辑应该是当输入不是数字的时候进入循环提示,也就是用not age.isdigit()作为循环条件。
修复后的代码如下:
age = input("What's your age? ") while not age.isdigit(): print("only numbers are allowed") age = input("What's your age? ") age = int(age)
简单说下修改后的逻辑:
- 先获取用户输入的年龄字符串
- 循环条件
not age.isdigit():只要输入的字符串不是纯数字,就进入循环提示用户重新输入 - 当用户输入纯数字时,
age.isdigit()返回True,not True就是False,循环终止,最后把字符串转成整数类型
这样调整后,程序就能正常识别数字输入啦!
内容的提问来源于stack exchange,提问作者Ana
相关产品推荐
相关产品推荐

