使用数学运算符的Python For循环

使用数学运算符的Python For循环,python,for-loop,Python,For Loop,好的,我正在学习Python,有一个关于for循环的快速问题。我想知道是否可以在它们中使用数学运算符,比如JavaScript。例如,我可以做: for i = 0, i < 5, i++: #code here 对于i=0,i

好的,我正在学习Python,有一个关于
for
循环的快速问题。我想知道是否可以在它们中使用数学运算符,比如JavaScript。例如,我可以做:

for i = 0, i < 5, i++:
    #code here
对于i=0,i<5,i++:
#代码在这里
现在,我很清楚Python不支持
I++
,我认为它也不支持逗号。如果我可以这样做,你能提供一个样品吗。
谢谢

您可以使用范围循环:

for i in range(5):
    #code here
如果要在循环中递增,可以使用while循环:

i = 0
while i < 5:
    i += 1 
i=0
当我<5时:
i+=1

要递减,您将使用
i-=1

您将使用范围循环:

for i in range(5):
    #code here
如果要在循环中递增,可以使用while循环:

i = 0
while i < 5:
    i += 1 
i=0
当我<5时:
i+=1
要减小,您可以使用
i-=1

快速回答 您可以使用:

for i in range(5):
    # code here

或者,您可以使用理解:

initial_values = range(5) # we've declared the initial values
squares = [i**2 for i in initial_values]
或者更紧凑地说:

squares = [i**2 for i in range(5)]
我经常遇到没有Pythonic方式编写代码的问题,最后我编写了类似于C的Python(如上面的快速回答所示)。但正如我经常发现的那样,有一种更优雅、更易读的方式来做事情,这通常表明先前的数据设计存在一些缺陷。

快速回答 您可以使用:

for i in range(5):
    # code here

或者,您可以使用理解:

initial_values = range(5) # we've declared the initial values
squares = [i**2 for i in initial_values]
或者更紧凑地说:

squares = [i**2 for i in range(5)]

我经常遇到没有Pythonic方式编写代码的问题,最后我编写了类似于C的Python(如上面的快速回答所示)。但正如我经常发现的那样,有一种更优雅、更易读的方式来做事情,这通常表明先前的数据设计中存在一些缺陷。

正如
引入循环一样,并不意味着不同语言的行为相同

Python的for循环迭代对象。类似C-
for
的循环不存在

但是,循环(
for(;;)
的C
实际上与C代码相同:

<init>;
while ( <cond> ) {
    <statement>
    <update>
}
;
而(){
}
因此,有了附加的信息,Python确实有一个
while
循环,其行为类似于C-
while
循环,现在您应该能够在Python中实现类似C
for
循环的东西了。我将把它作为一个练习:-)


注意:由于生成等距整数值序列是一种常见情况,Python提供了
range()
(Python 3)或
xrange()
(Python 2)函数。这确实创建了一个
RangeObject
,它(基本上)为开始、停止和步骤参数给定的序列生成下一个值。

正如
引入循环一样,并不意味着不同语言的行为相同

Python的for循环迭代对象。类似C-
for
的循环不存在

但是,
循环(
for(;;)
的C
实际上与C代码相同:

<init>;
while ( <cond> ) {
    <statement>
    <update>
}
;
而(){
}
因此,有了附加的信息,Python确实有一个
while
循环,其行为类似于C-
while
循环,现在您应该能够在Python中实现类似C
for
循环的东西了。我将把它作为一个练习:-)


注意:由于生成等距整数值序列是一种常见情况,Python提供了
range()
(Python 3)或
xrange()
(Python 2)函数。这确实创建了一个
RangeObject
,它(基本上)为开始、停止和步进参数给定的序列生成下一个值。

我知道我可以这样做,但是还有其他方法吗,如果是这样的话,有多少种不同的for循环方法?是的@Ryan你可以在范围(0、5、2)内对I使用
@Ryan,在你的问题中没有像你这样的循环,如果你想增加,你会使用while循环。我知道还有另一种循环,我就是想不起来。非常感谢。both@Ryan,不用担心,python中也没有前后递增/递减运算符的概念等等。我知道我可以这样做,但还有其他方法吗,如果是的话,有多少种不同的方法来执行for循环?是的@Ryan你可以在范围(0,5,2)内使用
for I
@Ryan,没有像你所问的那样,如果你想增加,你会使用一个while循环。我知道还有另一种循环,我就是想不起来。非常感谢。both@Ryan,不用担心,python中也没有前后递增/递减运算符的概念等等。我很想以“不清楚你在问什么”作为结束语。你想解决的问题是什么?你想用这个语法做什么?@jpmc26我已经得到了我想要的答案,但我会让你觉得有趣:我试图使用for循环,不是像我建议的那样,而是实际正确的方式,比如:
for I in range(x)
。这是正常的,直到我开始测试它多一点,并意识到如果你用某种方式,它会继续增加,即使我不希望它。我对Python非常陌生,在JS方面也不是最好的,但我比Python更了解它,我只是想知道我是否可以像JS中的for循环那样使用for循环。我不知道我想要的是while循环。你能说得更具体些,说明你做了什么,以及“添加”是什么意思吗?我怀疑这是一个循环,更高层次上的细节可能会提出一个与
while
循环完全不同(更清晰、更稳健)的答案。一般来说,退回到很少使用的低级结构,因为它们的工作方式与您熟悉的一样,意味着您缺少了一些东西。我个人不这么认为