在下面的示例代码中,是否真的需要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
enumerate()
像这样使用:
def draw_menu(options, selected_index):
for counter, option in enumerate(options):
if counter == selected_index:
print " [*] %s" % option
else:
print " [ ] %s" % option
options = ['Option 0', 'Option 1', 'Option 2', 'Option 3']
draw_menu(options, 2)
注意 :如果需要,您可以选择在圆括号内加上counter, option
,例如(counter, option)
,但是它们是多余的,通常不包含在内。
问题内容: 在遍历列表的Python循环中,我们可以编写: 并巧妙地遍历列表中的所有元素。有没有办法知道循环中到目前为止我循环了多少次?例如,我要列出一个清单,在处理完10个元素之后,我想对它们进行处理。 我考虑过的替代方案可能是: 要么: 是否有更好的方法(就像)来获得到目前为止的迭代次数? 问题答案: pythonic的方法是使用:
我正在编写一个计算e^x值的方法。我在python中实现它的方式如下。 这将很好地返回e^x的值。但是,当我尝试在c#中实现相同的方法时,它没有输出与python中相同的值。以下是c#中的实现。 起初,这段代码的输出是一个无穷大符号。为了解决这个问题,我只是减少了循环运行的次数。在c#中,循环只运行10次,代码的输出非常接近于python中循环运行100次的输出。我的问题是,在不同的编程语言中,两
主要内容:Python for循环的具体应用Python 中的循环语句有 2 种,分别是 while 循环和 for 循环,前面章节已经对 while 做了详细的讲解,本节给大家介绍 for 循环,它常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。 for 循环的语法格式如下: for 迭代变量 in 字符串|列表|元组|字典|集合: 代码块 格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以
问题内容: 我有这个代码: 它显然不会编译,因为在匿名类中需要使用final。但是我不能将它定下来,因为事实并非如此。你会怎么做?一种解决方案是复制它,但我认为可能会有更好的方法: 编辑 只是为了清楚起见,为了示例,我在这里使用了Runnable,问题实际上是关于匿名类的,它可以是其他任何东西。 问题答案: 我认为您的解决方案是最简单的方法。 另一种选择是将内部类的创建重构为一个为您完成的工厂函数
raceback(最近的最后一次调用):File"/User/kaikeichan/Desktop/python_webpage/actionchain.py",第7行,在驱动程序=网络驱动程序中。Chrome(PATH)File"/Library/Framework/Python.framework/Versions/3.10/lib/python3.10/site-packages/selen
我试图在for循环中获得for循环,因此输出如下: 我希望输出显示一个正方形 我不知道它为什么不这样做。下面是我的代码: