Python 3.x VS代码上Python3的值键字典查找问题

Python 3.x VS代码上Python3的值键字典查找问题,python-3.x,dictionary,Python 3.x,Dictionary,Python3编码。任何超过一位数的值,因此您希望获取33的键,它返回的键不存在,即使它在字典中也不存在。然而,8带着钥匙回来了。我还尝试了另一个人的代码,它对超过一位数的任何值都做了完全相同的事情。VS代码说我的程序有问题(如下)。谁能告诉我我做错了什么?如果它不是我的程序,那么有没有修复VS代码或MSPYTHON和MSPylance扩展的问题?我应该删除一个还是两个 favnum = {"gabi": 8, "kristi": 33, "re

Python3编码。任何超过一位数的值,因此您希望获取33的键,它返回的键不存在,即使它在字典中也不存在。然而,8带着钥匙回来了。我还尝试了另一个人的代码,它对超过一位数的任何值都做了完全相同的事情。VS代码说我的程序有问题(如下)。谁能告诉我我做错了什么?如果它不是我的程序,那么有没有修复VS代码或MSPYTHON和MSPylance扩展的问题?我应该删除一个还是两个

favnum = {"gabi": 8, "kristi": 33, "reva": 11, "KC": 25, "whoever": 77}


def GetKey(val):
    for key, value in favnum.items():
        if val == value:
            return key
        else:
            return "Key doesn't exist"


print(GetKey(33))
print(GetKey(8))
print(GetKey(77))

虽然有一个循环,但如果值与第一个项匹配,则返回键,否则返回not found,而不检查任何其他值

将你正在做的事情转移到循环之外

def GetKey(val):
    for key, value in favnum.items():
        if val == value:
            return key
    return "Key doesn't exist"

你总是只检查第一个项目,得到并修复了它。现在工作!谢谢你的帮助!