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