gpt4 book ai didi

python - 检查数组中是否有 5 个连续数字

转载 作者:行者123 更新时间:2023-12-01 04:25:35 25 4
gpt4 key购买 nike

我正在制作一个扑克模拟器,并尝试定义一个函数来识别顺子并为其指定handstrength值为5。

def straightCheck(playerHand):
playerHand.sort()
print(playerHand)
for playerHand in range(len(playerHand)):
for i in playerHand:
if playerHand[i] == playerHand [i+1] -1:
straight = True
else:
straight = False
if straight == True:
handstrength = 5

x = [1,3,5,4,2]
straightCheck(x)

我不知道 is 出了什么问题,但它不断返回此错误消息:

for i in playerHand:   
TypeError: 'int' object is not iterable

最佳答案

首先,您尝试迭代一个整数,这是不能(也不应该)完成的。看起来你的两个嵌套的 for 循环应该只是一个 for ,就像 for i in range(len(playerHand) - 1) ,当使用 -1 是为了避免您尝试访问playerHand[len(playerHand)]

此外,由于您在每次迭代中将 straight 设置为 TrueFalse,因此只有最后一次迭代才会计算在内,因此您将得到误报。

最后,我不确定您是否希望您的函数返回一个值,但目前您的函数返回没有数据(除非handstrength > 是全局变量)。另外,请注意,目前,通过使用 .sort() 您实际上是在对 playerHand 进行排序,从而在函数内更改它 - 这可能不是您想要的。

类似于您的代码,检查手是否直的可能函数是:

def is_straight(playerHand):
playerHand.sort()
for i in range(len(playerHand) - 1):
if playerHand[i] != playerHand [i+1] - 1:
return False
return True

如果 playerHand 是直的,则此函数返回 True,否则返回 False

关于python - 检查数组中是否有 5 个连续数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33200590/

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