获取未解决的参考
出于某种原因,我在 python 3.9.x 中得到了一个未解决的引用 'i' 错误
如何修改我的代码以使其正常运行?
for card in range(len(cards)):
card = cards[i]
print(f"{i+1} - {card}")
# get choice
choice = get_int_input(1, len(cards))
# get card
return cards[choice-1] if choice else None
'''
回答
蟒蛇是对的。你没有i变量。你在哪里看到的?
如果卡片包含 4 个元素,您card将依次选择0、1、2、3。所以像这样改变你的 for 循环:
for i in range(len(cards)):
card = cards[i]
print(f"{i+1} - {card}")
但做你想做的最好的方法是这样的:
for i, card in enumerate(cards):
print(f"{i+1} - {card}")
enumerate函数将创建一个包含(key, value). 例如:
>>> print(list(enumerate(['a', 'b', 'c'])))
[(0, 'a'), (1, 'b'), (2, 'c')]
在同一个例子中,这个循环:
for i, letter in enumerate(['a', 'b', 'c'])
将依次采用此变量: | 迭代 | 我| 信| | ---- | ------ | ----- | | 1 | 0 | '一个' | | 2 | 1 | 'b' | | 3 | 2 | 'c' |