当我评论 my_dict 中的所有键值时,应该给我最后一行,返回“没有可用的距离信息”,但它给了我一个错误
my_dict = {
# "distance": 500.5,
# 'speed': 60,
# 'time': 55
}
def rout_info(my_data):
if type(my_data["distance"]) is int:
return f'Distance to your distination is {my_data["distance"]}'
elif 'speed' and 'time' in my_data:
return f'Disntace to your destination is {my_data["speed"] * my_data["time"]}'
else:
return 'No distance info to available'
print(rout_info(my_dict))
我的错误:
Traceback (most recent call last):
print(rout_info(my_dict))
^^^^^^^^^^^^^^^^^^
if type(my_data["distance"]) is int:
~~~~~~~^^^^^^^^^^^^
KeyError: 'distance'
当我删除注释时,if 运算符和 elif 运算符对我有用
根据提供的代码,您的错误来自于字典被注释掉的事实,所以您当然无法访问
distance
键。
另一个问题是
type(my_data["distance"]) is int
是一种不好的做法。 is
关键字用于测试两侧对象是否引用同一个对象,通常用于单例,例如:
a = None
a is None # True
在其他情况下,应使用
isinstance
函数,因此您的代码应如下所示:
if isinstance(my_data["distance"], int):