首页 > 解决方案 > 一个旨在接受 2 个参数但不接受的函数

问题描述

嘿,我有一个非常简单且可能很愚蠢的问题要问,我正在尝试编写一个函数,该函数将接受两个参数,一个潜在的键和字典名称,如果键不在字典中,它应该返回类似于“x”的东西是无效键。这是我到目前为止所拥有的:

test_dictionary = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}

def show_value():
    i = ()
    if i in test_dictionary:
        pass
else:
    print((i)('is not a valid key'))

show_value(1, test_dictionary)

现在,当我运行此代码时,它说 show_value 接受 0 个位置参数,但给出了两个,但是当我尝试输入 2 个参数时,它说“元组”对象不可调用。对此的任何帮助将不胜感激

标签: python

解决方案


问题

  • 函数定义与函数调用不匹配。如果您传递两个参数,则接收端也应该有两个。

  • i = ()创建一个元组(如果您已通过它,则不需要并替换i值)。使用(i)(..),您试图调用一个元组对象,这是不可能的。

工作代码

test_dictionary = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}

def show_value(i, dictionary):
    if i in test_dictionary:
        print(f'{i} found')
    else:
        print(f'{i} not found')

show_value(6, test_dictionary)

推荐阅读