Python 中字典值为整数时如何返回字符串

问题描述 投票:0回答:1

当我评论 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 运算符对我有用

python if-statement keyerror
1个回答
0
投票

根据提供的代码,您的错误来自于字典被注释掉的事实,所以您当然无法访问

distance
键。

另一个问题是

type(my_data["distance"]) is int
是一种不好的做法。
is
关键字用于测试两侧对象是否引用同一个对象,通常用于单例,例如:

a = None
a is None    # True

在其他情况下,应使用

isinstance
函数,因此您的代码应如下所示:

if isinstance(my_data["distance"], int):
© www.soinside.com 2019 - 2024. All rights reserved.