Python 3.8中含while True的整数输入函数失效问题求助
解决Python输入年龄验证的问题
嘿,我发现你的代码里有几个小问题导致它没法正常运行,咱们一步步来修正:
问题1:布尔值大小写错误
Python是严格区分大小写的,你写的while true:里的true是小写的——但Python里的布尔值“真”应该是大写首字母的True!小写的true会被当成一个未定义的变量,直接触发语法错误,这就是代码连启动都没反应的核心原因。
问题2:多余的break语句
函数里的break完全没必要,因为return userinput已经会直接终止函数并返回结果了,后面的break根本没机会执行,删掉就好。
问题3:缺少函数调用
你只定义了inputnumber函数,但没调用它来实现实际的输入交互,所以即使函数写对了,也不会有任何输出。
修正后的完整代码
这里给你整理了能正常运行的版本,还加上了姓名输入的逻辑:
def inputnumber(message): while True: # 这里改成大写的True try: userinput = int(input(message)) except ValueError: print("Please input integers") continue else: return userinput # return之后函数直接结束,不需要break # 调用函数实现完整的姓名+年龄输入功能 name = input("Please input your name: ") age = inputnumber("Please input your age: ") print(f"Hello {name}, you are {age} years old!")
运行效果说明
- 如果输入的年龄不是整数(比如输入
abc或者12.5),程序会打印提示并让你重新输入年龄 - 只有输入合法的整数年龄后,才会继续执行并输出结果
内容的提问来源于stack exchange,提问作者SirLad
相关产品推荐
相关产品推荐

