我是一个Python编程新手,你很可能会破译看到我的代码无论如何我想知道如何改进我的代码来改进负面测试?

ageinmonths = input("Enter your age in months: ")

age = int(ageinmonths,10)
if type(age) == float:
    print("Invalid age format entered")

if type(age) == str:
    print("Invalid age format entered")


years = int(age/12)
months = age%12

print("Your exact age in years and months is",years,"years",months,"months")

上面这行代码的问题是,当我在几个月内输入正确的值ex:56、48等时,它可以正常工作。
但如果我碰巧输入了一个无效值,则会收到如下错误消息:
Enter your age in months: Welcome
Traceback (most recent call last):
  File "C:\Users\Srinivas\Documents\python\guess_age.py", line 2, in <module>
    age = int(ageinmonths,10)
ValueError: invalid literal for int() with base 10: 'Welcome'
>>>

我想知道如何改进我的代码,为无效搜索条件(如字符串、特殊字符、浮点数等)的否定测试添加正确的错误消息。
我使用的是Python3.6(32位版本)。

最佳答案

正如reut sharabani提到的,你可以使用try ... except块。
你可以这样做:

try:
    int("whatever")
except ValueError:
    print("Upss there was a problem")

注意,我只是捕捉到一个valueerror异常,而不是所有的异常。

07-24 09:52
查看更多