该函数应带有2个参数但不包含

时间:2019-03-03 03:37:51

标签: python

嘿,我有一个非常简单且可能很愚蠢的问题要问,我正在尝试编写一个函数,该函数将两个参数包含一个可能的键和字典名称,以及该键是否不在字典中它应该返回与“ 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个参数时,它说“ tuple”对象不可调用。在这方面的任何帮助将不胜感激

5 个答案:

答案 0 :(得分:2)

问题

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

  • 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)

答案 1 :(得分:1)

您需要添加函数参数,以便它可以接受两个值。

def show_value(i, dict):

此外,您的else语句与上面的if语句未正确对齐。祝你好运!

答案 2 :(得分:1)

docs.python.org是解决此类问题的好地方。在您的特定情况下,我认为this是您想要的页面。

答案 3 :(得分:1)

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

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

show_value(1, test_dictionary)  # OK
show_value(5, test_dictionary)  # 5 is not a valid key

答案 4 :(得分:1)

看看有关如何编写函数的tutorial