首页 > 解决方案 > 获得未解决的参考

问题描述

出于某种原因,我在 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

'''

标签: python

解决方案


蟒蛇是对的。你没有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' |


推荐阅读