python - 有没有办法在 Python (3) for 循环中做条件语句?

标签 python python-3.x for-loop

主要来自 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无论您在哪里设置声明 flagFalse ,所以你可能完全摆脱了标志。
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/

相关文章:

python - 使用多个分隔符有效地拆分字符串并保留每个分隔符?

python - 这个循环方法正确吗? Python 3.4.3

python - 在Python中使用ftplib将文件传输到FTP服务器时获取 "Connection refused"

c++ - 增量语句的目的是什么?

java - 获取二维数组的最大值

python - 如何在Python中循环嵌套(二维?)数组

python - 如何足够快地计算减少的适当分数的数量?

python - 对象的属性集和它的命名空间有什么区别?

python asyncio.Event.wait() 没有响应 event.set()

python - 我无法运行由 cx_Freeze 构建的电子邮件程序