使用数学运算符的Python For循环
好的,我正在学习Python,有一个关于使用数学运算符的Python For循环,python,for-loop,Python,For Loop,好的,我正在学习Python,有一个关于for循环的快速问题。我想知道是否可以在它们中使用数学运算符,比如JavaScript。例如,我可以做: for i = 0, i < 5, i++: #code here 对于i=0,i
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中实现类似Cfor
循环的东西了。我将把它作为一个练习:-)
注意:由于生成等距整数值序列是一种常见情况,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中实现类似Cfor
循环的东西了。我将把它作为一个练习:-)
注意:由于生成等距整数值序列是一种常见情况,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
循环完全不同(更清晰、更稳健)的答案。一般来说,退回到很少使用的低级结构,因为它们的工作方式与您熟悉的一样,意味着您缺少了一些东西。我个人不这么认为