如何在Python for循环中添加条件

如何在Python for循环中添加条件,python,for-loop,runtime,Python,For Loop,Runtime,在Java中,FOR循环语法提供了一个可以添加条件的地方。例如,在下面的代码中,条件是i*j

在Java中,FOR循环语法提供了一个可以添加条件的地方。例如,在下面的代码中,条件是i*j
for (i=0; i*j < n; i++) 
{ ... }

我知道我们可以在for循环中添加if语句,但我担心它会将运行时间增加到O(n)。请注意。

的复杂性为
O(n)
,因此
if
不会改变复杂性

Java中(i=0;i*j表示为
,而Python中的
表示为:

i = 0  # initialization
while i * j < n:  # conditions
   do_something
   i += 1  # step
i=0#初始化
而i*j
的复杂性为
O(n)
,因此如果
不会改变复杂性

Java中(i=0;i*j表示为
,而Python中的
表示为:

i = 0  # initialization
while i * j < n:  # conditions
   do_something
   i += 1  # step
i=0#初始化
而i*j
当我从C转换到python时,这是我最大的担忧之一,但事实证明,这实际上是对语法的误解。在python中,虽然您可以为范围(n)中的i编写
,但这通常表明您在做其他错误的事情。人们认为通过元素循环比通过数字循环更好。例如,在C语言中,您可以编写

for(i=0; i<len(str); i++){
    str[i] blah blah blah
}

当我从C转换到python时,这是我最大的担忧之一,但事实证明这实际上是对语法的误解。在python中,虽然您可以为范围(n)中的i编写
,但这通常表明您在做其他错误的事情。人们认为通过元素循环比通过数字循环更好。例如,在C语言中,您可以编写

for(i=0; i<len(str); i++){
    str[i] blah blah blah
}

我认为你在任何情况下都不会有任何不同。你可以用
而不是
来代替
,而
就本例而言,你可以用
来实现范围(n//j+1)
内的i的相同功能。我认为在任何情况下,你都不会在O(n)上有任何差异。对于
,您可以使用
而不是
,而
就本例而言,对于范围(n//j+1)
中的i,您可以使用
实现同样的效果。