【发布时间】:2020-05-30 03:58:57
【问题描述】:
我是 Python 编程新手。以下是编写的代码,当我打印任何数字并按预期给我所需的结果时它工作正常,但是当我输入字符串(除整数/浮点数以外的任何内容)而不是只给我除了语句时,问题就来了,它也给了我一个我不想要的错误。所以,我想要的是当用户输入除数字以外的任何内容时,应该提示他一条消息,即“输入无效。请输入一个数字”,而不是我在最后的除了打印语句之后得到的错误.请帮忙。
hours_string = input("Enter Hours: ")
rate_string = input("Enter Rate: ")
try:
hours_float = float(hours_string)
rate_float = float(rate_string)
except:
print("Invalid input. Enter a number please.")
result = hours_float * rate_float
print("Pay",result)
这是我得到的错误。如果我输入字符串,我应该只得到一个 except 语句。而已。没有任何其他错误。我怎样才能到达那里?
Enter Hours: 9
Enter Rate: entered string by mistake
Invalid input. Enter a number please.
Traceback (most recent call last):
File "<string>", line 9, in <module>
NameError: name 'rate_float' is not defined
【问题讨论】:
-
当您点击
except时,它不会返回并再次询问小时数和费率。因此,rate_float从未真正被分配。 -
尝试使用
try/except/else -
你能告诉我如何在我的场景中做到这一点吗?将不胜感激!发布答案的人不适合我。它向我显示了同样的错误。
-
我接受了 Tomerikoo 的建议,并使其适合您@Fiona Daniel
标签: python