2024-03-28 12:46:59 发布
网友
我刚刚意识到这段代码并没有像我希望的那样工作。。。在
for i in [0,2,4]: if i%2==0: print i else: print "There are no EVEN #s"
那么,编码这种结构的最佳方式是什么
这样做的目的是,如果“if”语句在“for”循环的所有迭代中都不为真,则运行“else”语句代码
由于if和{}不在同一级别的作用域中,代码无法按您的意愿工作。但是,在Python中有一个for...else语法,您可能正试图使用它。有关这方面的信息,请参见here。要使用for...else语法,需要在for循环中有一个break语句。如果中断,则不调用else,否则在循环完成后调用else。在
if
for...else
for
break
else
但是,如果没有break语句,那么else总是运行。在
这是您的代码,已更正:
for i in [0,2,4]: if i%2==0: print i break else: print "There are no EVEN #s"
一旦循环遇到偶数,循环就会中断。否则,如果循环将完全执行(即遍历整个列表),那么它也将运行else。以下是奇数列表上的循环,仅供参考:
只需在if语句中设置一个标志,以便在for循环运行完毕后进行检查。在
例如
flag = False for i in [0,2,4]: if i%2==0: print i flag = True if not flag: print "There is an ODD #"
我认为更“pythonic”的方法是过滤列表并检查过滤后的列表是否包含任何元素以确定要打印的内容:
lst = [0, 2, 4] filtered = [x for x in lst if x%2 == 0] if filtered: for item in filtered: print item else: print "No evens"
由于}不在同一级别的作用域中,代码无法按您的意愿工作。但是,在Python中有一个
if
和{for...else
语法,您可能正试图使用它。有关这方面的信息,请参见here。要使用for...else
语法,需要在for
循环中有一个break
语句。如果中断,则不调用else
,否则在循环完成后调用else
。在但是,如果没有
break
语句,那么else
总是运行。在这是您的代码,已更正:
一旦循环遇到偶数,循环就会中断。否则,如果循环将完全执行(即遍历整个列表),那么它也将运行
^{pr2}$else
。以下是奇数列表上的循环,仅供参考:只需在if语句中设置一个标志,以便在for循环运行完毕后进行检查。在
例如
我认为更“pythonic”的方法是过滤列表并检查过滤后的列表是否包含任何元素以确定要打印的内容:
相关问题 更多 >
编程相关推荐