python - 获得未解决的参考
问题描述
出于某种原因,我在 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' |
推荐阅读
- ios - 如何为特定的视图控制器编码?- 苹果斯威夫特/Xcode
- python - 当我在另一个函数循环中调用 Python 函数时,它的行为不同
- tabs - 设置安全标头时同时显示所有 ZK 选项卡
- sql - 在列上带有 where 子句的 SELECT 语句
- javascript - 具有输入类型的 GraphQL 突变不会将参数传递给解析器
- python - 如果用户在先前给定的列表中,则限制用户仅输入值
- php - 如何使用 PHP 实现服务器端文本框和复选框验证?
- powerbi - 我如何允许用户将报告从 power bi 服务导出为 pdf
- scala - 使用分区来决定一个流是否应该进入下一个流,如果没有,则让流从开始的下一个滴答中拾取它(Akka)
- javascript - 在地图中的多个元素之间共享状态