如何在Python for循环中添加条件
在Java中,FOR循环语法提供了一个可以添加条件的地方。例如,在下面的代码中,条件是i*j如何在Python for循环中添加条件,python,for-loop,runtime,Python,For Loop,Runtime,在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,您可以使用实现同样的效果。