在下面的示例代码中,counter=0是否真的是必需的,或者是否有更好、更多的Python方法来访问循环计数器?我看到一些与循环计数器相关的pep,但它们要么被延迟,要么被拒绝(PEP 212和PEP 281)。
这是我问题的一个简单例子。在我的实际应用程序中,这是用图形完成的,整个菜单必须重新绘制每一帧。但这是以一种简单的文本方式演示的,很容易再现。
也许我还应该补充一下,我正在使用Python2.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
像这样使用^{} :
注意:如果需要,您可以选择在
counter, option
周围放置括号,例如(counter, option)
,但它们是无关的,通常不包括在内。你也可以:
尽管如果有重复的选项,您会遇到问题。
我有时会这样做:
不过,如果这意味着我要说
options[i]
几次以上的话,我会尽量避免。相关问题 更多 >
编程相关推荐