首页 > 解决方案 > Python - 元组索引超出范围,但我认为不是

问题描述

如果有人可以提供帮助,我们将不胜感激 - 从代码中可以看出,我只是想让它打印出每张“卡片”。此代码当前打印纸牌 Ace - 红心之王,但在更改花色时,它会遇到元组索引超出范围。对 python 来说非常新,只是在试验它,所以我明白有更简单的方法来做我想做的事情。非常感谢:)

suits = "Hearts" , "Clubs" , "Diamonds" , "Spades"
values = "Ace" , "Two" , "Three" , "Four" , "Five" , "Six" , "Seven" , "Eight" , "Nine" , "Ten" , "Jack" , "Queen" , "King"

i = -1
j = -1
while i <= 3:
    i = i + 1
    while j <= 12:
        j = j + 1
        print (values[j] , " of " , suits[j])

标签: pythontuples

解决方案


print (values[j] , " of " , suits[j])中,您使用 j 作为值和花色的变量。

只需将 suits 的变量更改为 i 并将 j 的声明放在第一个 while 循环中。

但是,另一种更好的方法是使用 for 循环来实现您想要做的事情。这样你的代码就更干净了,你不必跟踪索引。

这里用 for 循环重写:

suits = "Hearts" , "Clubs" , "Diamonds" , "Spades"
values = "Ace" , "Two" , "Three" , "Four" , "Five" , "Six" , "Seven" , "Eight" , "Nine" , "Ten" , "Jack" , "Queen" , "King"

for suit in suits:
    for value in values:
        print(value, "of", suit)

推荐阅读