Python 具有3个参数(int、bool、dict)的函数,并测试int是否在字典中
所以我必须用3个参数(int,bool,dict)创建一个名为“test”的函数,bool设置为True,dict为{2:3,4:5,6:8}。因此,如果bool为True,则测试int是否在dict中。如果是,则返回值,如果不是,则返回False。布尔值和dict也是可选参数,我不知道这是否会改变什么。这是我的问题:编写一个函数test,它接受三个参数:一个必需的整数,一个可选的布尔值,其默认值为True,以及一个可选的字典dict1,其默认值为{2:3,4:5,6:8}。如果布尔参数为True,则函数应测试整数是否为字典中的键。然后应返回该键的值。如果布尔参数为False,则返回布尔值“False”Python 具有3个参数(int、bool、dict)的函数,并测试int是否在字典中,python,Python,所以我必须用3个参数(int,bool,dict)创建一个名为“test”的函数,bool设置为True,dict为{2:3,4:5,6:8}。因此,如果bool为True,则测试int是否在dict中。如果是,则返回值,如果不是,则返回False。布尔值和dict也是可选参数,我不知道这是否会改变什么。这是我的问题:编写一个函数test,它接受三个参数:一个必需的整数,一个可选的布尔值,其默认值为True,以及一个可选的字典dict1,其默认值为{2:3,4:5,6:8}。如果布尔参数为Tru
def test(x, abool = True, dict1 = {2:3, 4:5, 6:8}):
if abool == True:
if x in dict1:
return x
else:
return False
首先,你不可能100%清楚你想要什么或者什么是错的。我建议你看看。也就是说,您似乎希望返回dict的值,而不是键。为此,您需要致电:
return dict1[x]
而不是
return x
这将检查键是否在字典中,然后返回键,而不是您想要的值
它可能是这样的:
if x in dict1:
return dict1[X]
如果键在字典中,则返回相应的值
或者,您可以使用dict.get(key[,default])
方法
return abool and dict1.get(x, False)
这将检查字典中是否有x。否则,它将返回默认值(
False,在本例中为)。如果是,则返回相应的值 问题到底是什么?你能指定你真正想要什么吗?请用示例调用test()
,并使用示例参数和预期的返回来更新你的问题。@TheAnd-此注释应该是问题的一部分。不是返回x,而是返回dict1[x]我刚刚做了第二个建议,谢谢你,你的最后一个不太对;即使abool
为False,它也会返回dict1[x]
的值。尝试返回abool并改为dict.get(x,False)
。
return abool and dict1.get(x, False)