【发布时间】:2010-11-14 04:58:07
【问题描述】:
在下面的示例代码中,是否真的需要 counter = 0,或者是否有更好、更多 Python 的方法来访问循环计数器?我看到了一些与循环计数器相关的 PEP,但它们要么被推迟,要么被拒绝(PEP 212 和 PEP 281)。
这是我的问题的简化示例。在我的实际应用程序中,这是通过图形完成的,并且必须在每一帧重新绘制整个菜单。但这以一种易于复制的简单文本方式展示了它。
也许我还应该补充一点,我正在使用 Python 2.5,尽管我仍然对是否有特定于 2.6 或更高版本的方法感兴趣。
# Draw all the options, but highlight the selected index
def draw_menu(options, selected_index):
counter = 0
for option in options:
if counter == selected_index:
print " [*] %s" % option
else:
print " [ ] %s" % option
counter += 1
options = ['Option 0', 'Option 1', 'Option 2', 'Option 3']
draw_menu(option, 2) # Draw menu with "Option2" selected
运行时输出:
[ ] Option 0
[ ] Option 1
[*] Option 2
[ ] Option 3
【问题讨论】:
-
你可以简单地使用数组长度属性而不是for in循环方法吗,for i