gpt4 book ai didi

python - 即使输出正确,列表索引也超出范围?

转载 作者:行者123 更新时间:2023-11-28 22:37:50 26 4
gpt4 key购买 nike

我正在为一个类(class)制作一个名为“go fish”的简单程序。

player1Hand = [2, 4, 6, 8, "J", "Q", "K"]
player2Hand = [3, 4, 5, 6, 9, 10, "A"]
player1Guesses = [2, 8, "J", 4, "Q"]
player2Guesses = [6, 9, "A", 5, 3]

基本上有 5 个回合(总共 10 个输出)。如果玩家 1 猜测在玩家 2 手中,那么如果卡片不在手中,我应该输出“这是我的卡”和“GO FISH”,反之亦然。我得到了它的工作,但我不断收到超出索引的错误。

for i in range(20):
if player1Guesses[i] in player2Hand:
print ("HERE'S MY CARD")
else:
print ("GO FISH")
if player2Guesses[i] in player1Hand:
print ("HERE'S MY CARD")
else:
print("GO FISH")

我已经尝试将范围更改为 21 和 19,但我仍然得到相同的错误和输出。

GO FISH
HERE'S MY CARD
GO FISH
GO FISH
GO FISH
GO FISH
HERE'S MY CARD
GO FISH
GO FISH
GO FISH
Traceback (most recent call last):
File "C:\Users\Allen\Dropbox\Computer Science\GoFish.py", line 8, in <module>
if player1Guesses[i] in player2Hand:
IndexError: list index out of range

我得到了我需要的正确输入,但出于某种原因它仍然说索引超出范围。为什么即使程序正常运行也会出现此错误?我对编码也有点陌生,如果您发现任何更简单或更简单的事情,我可以用我的代码来做,请随时指出!提前致谢!

- AVBIRM

最佳答案

你的问题出在这里:

for i in range(20):
if player1Guesses[i] in player2Hand:

您迭代了 20 多个项目(0 到 19),但列表中只有 5 个:

player1Guesses = [2, 8, "J", 4, "Q"]

更改为 range(5) 不会抛出错误,或者您可以检查 i 是否小于 player1Guesses 的长度作为以及您目前正在进行的检查。 player2Guesses 也是如此。

关于python - 即使输出正确,列表索引也超出范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36160614/

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