Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有3个参数(int、bool、dict)的函数,并测试int是否在字典中_Python - Fatal编程技术网

Python 具有3个参数(int、bool、dict)的函数,并测试int是否在字典中

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

所以我必须用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”

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)