在 Python 中的 for 循环

在 C/C + + 中,我可以使用以下循环

for(int k = 1; k <= c; k += 2)

在 Python 中如何做同样的事情?

我可以的

for k in range(1, c):

在 Python 中,它与

for(int k = 1; k <= c; k++)

在 C/C + + 中。

232968 次浏览

试着用这个:

for k in range(1,c+1,2):

您还应该知道,在 Python 中,在整数索引上迭代是不好的风格,而且比其他方法慢。如果您只想查看列表或结果中的每个项,那么可以直接循环查看列表或结果。

mylist = [1,2,3]
for item in mylist:
print item


mydict  = {1:'one', 2:'two', 3:'three'}
for key in mydict:
print key, mydict[key]

这实际上比在 range ()中使用上面的代码更快,并且删除了无关的 i变量。

如果需要就地编辑列表中的项目,那么 需要索引,但还有一个更好的方法:

for i, item in enumerate(mylist):
mylist[i] = item**2

同样,这样做不仅更快,而且被认为更具可读性。这是从 C + + 转向 Python 时需要考虑的主要转变之一。

如果你想用 Python 编写一个循环来打印一些整数 no 等等,那么只要复制粘贴这段代码就可以了

# Display Value from 1 TO 3
for i in range(1,4):
print "",i,"value of loop"


# Loop for dictionary data type
mydata = {"Fahim":"Pakistan", "Vedon":"China", "Bill":"USA"  }
for user, country in mydata.iteritems():
print user, "belongs to " ,country

答案是好的,但是对于想要使用 range()的人来说,要做的形式是:

返回文章页面

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

返回文章页面

 >>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

返回文章页面

 >>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]

在 Python 中,通常使用 for In 循环,而不是 C/C + + 之类的一般 for 循环,但是可以使用下面的代码实现同样的功能。

for k in range(1, c+1, 2):
do something with k

参考资料 Python 中的循环。

如前所述,在 C/C + + 中,我们可以执行以下操作

for(int k = 1; k <= c ; k++)
for(int k = 1; k <= c ; k +=2)

我们知道这里的 k从1开始,一直到(预定义的) c,步长值逐渐为1或2。我们可以通过以下步骤在 Python 中实现这一点,

for k in range(1,c+1):
for k in range(1,c+1,2):

检查 这个获得更深入的信息。

使用这个代替 for 循环:

k = 1
while k <= c:
#code
k += 1

Python 中的 range()函数是生成序列的一种方法。序列是可以被索引的对象,如列表、字符串和元组。检查序列的一种简单方法是尝试从它们中检索索引元素。也可以使用来自集合模块的序列抽象基础 Class(ABC)来检查它。

from collections import Sequence as sq
isinstance(foo, sq)

range()有三个参数 startstopstep

  1. start: 所需序列的起始元素
  2. stop: (n + 1)所需序列的第三个元素
  3. step: 序列元素之间所需的间隙。它是一个默认为1的可选参数。

为了得到你想要的结果,你可以使用下面的语法。

range(1,c+1,2)

下面是一些对整数范围和字符串进行迭代的示例:

#(initial,final but not included,gap)
for i in range(1,10,2):
print(i);
1,3,5,7,9


# (initial, final but not included)
# note: 4 not included
for i in range (1,4):
print(i);
1,2,3


#note: 5 not included
for i in range (5):
print (i);
0,1,2,3,4


# you can also iterate over strings
myList = ["ml","ai","dl"];


for i in myList:
print(i);
output:  ml,ai,dl

尽管要求一个 FOR 声明,只是为了记录作为奖金,或者与 WILE,它会是:

k=1
while k<c:
#
# your loop block here
#
k+=2

您可以使用下面的格式。

for i in range(0, 10, 2):
print(i,' ', end='')
print('')

这个会打印出来

0  2  4  6  8