gpt4 book ai didi

python - python 函数和返回多个元素

转载 作者:行者123 更新时间:2023-11-30 22:09:08 24 4
gpt4 key购买 nike

我正在尝试编写一个关于扑克游戏的程序,对于比较部分,我为每个设置调用(返回)多个值。

在本例中,我返回了一个数组,其中之一是 bool 值,其中之一是整数。但是当我尝试在另一个函数中使用它们时,我收到错误('bool'对象不可下标),我不知道为什么。我的整个代码有近 150 行,为了运行它,您需要额外的文件,所以我将分享其中的一些部分。

这些是每个组合的设置部分

def straight(n):
F = converter(n)
if consecutive(F) == True:
return [True, F[0]]
return False


def full_house(n):
F = converter(n)
if len(set(F)) == 2:
for i in F:
if F.count(i) == 3:
return [True, i]
return False

这是我对它们进行排名的部分

def ranking(n, k):
if n == "AKQJT" and flush(k) == True:
return 9
elif straight(n)[0]== True and flush(k) == True:
return [8,straight(n)[1]]

elif four_kind(n)[0]== True:
return [7,four_kind(n)[1]]

elif (full_house(n))[0]== True:
return [6,full_house(n)[1]]

elif flush(k) == True:
return 5

elif (straight(n))[0]== True:
return [4,straight(n)[1]]

例如当我尝试时

print(ranking("44447","DDDDD"))

我收到错误

 elif  straight(n)[0]== True and flush(k) == True: line ...
TypeError: 'bool' object is not subscriptable

但是有趣的是,当我尝试同花顺时(第二个 elif 部分对其进行了测试)。例如,

print(ranking("23456","DDDDD")

我得到的答案是这样的

[8,6] 

这是正确的答案,但我又得到了同样的错误。

最佳答案

在默认情况下,您不返回数组:

    return False

将其更改为类似的内容

    return [False, None]

或任何对您的情况有意义的内容。

关于python - python 函数和返回多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52012293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com