python - 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])
解决方案
在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)
推荐阅读
- html - 具有高度的 flexbox:100% 不适用于 chrome 72+
- python - 关于 tf.layers .dense 的问题
- c# - Windows 服务对运行 .exe 文件的限制
- java - gle.firebase.database.core.utilities.encoding.CustomClassMapper.serialize 错误是什么?
- nginx - Geth websocket over nginx 反向代理
- typescript - 如何更新firestore中的文档字段?
- symfony - 根据第三方捆绑包中的配置使用服务进入服务
- ios - 如何在额外的功能中外包这种重复的代码气味?iOS Swift 函数
- dart - 如何获取流中的最后一个值
使用 rxdart? - odoo - 如何更新 Odoo 中继承模型的 Many2one 字段的“comodel_name”属性?