主要来自 Java 编码,想知道 Python 是否可以在其 for 循环中使用条件和不同类型的递增,如 Java 和 C 可以。对不起,如果这似乎是一个简单的问题。
IE。:
boolean flag = True
for(int i = 1; i < 20 && flag; i *= 2) {
//Code in here
}
最佳答案
不直接。一个 for
loop 迭代预先生成的序列,而不是生成序列本身。天真的翻译可能看起来像
flag = True
i = 1
while i < 20:
if not flag:
break
...
if some_condition:
flag = False
i *= 2
但是,您的代码可能会执行 break
无论您在哪里设置声明 flag
至 False
,所以你可能完全摆脱了标志。i = 1
while i < 20:
...
if some_condition:
break
i *= 2
最后,您可以定义自己的生成器来迭代def powers_of_two():
i = 1
while True:
yield i
i *= 2
for i in powers_of_two():
...
if some_condition:
break
关于python - 有没有办法在 Python (3) for 循环中做条件语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62683076/