为何未输入就触发ValueError: invalid literal for int() with base 10错误?
问题原因解析
你的代码逻辑完全搞反了input()和int()的调用顺序:
input()函数的参数是用来展示给用户的提示文本,它只接受字符串类型,不需要额外转换。- 你写的
input(int("How many rooms do you have?")),Python会先执行括号内层的int("How many rooms do you have?")——也就是尝试把字符串"How many rooms do you have?"转换成整数。但这个字符串本身不是合法的数字,所以直接触发ValueError: invalid literal for int() with base 10,根本没机会走到让用户输入的步骤。
正确的写法应该是先通过input()获取用户输入的字符串,再用int()转换:
rooms = int(input("How many rooms do you have?"))
内容的提问来源于stack exchange,提问作者P K Washington
相关产品推荐
相关产品推荐

