Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-for与计数器_Python - Fatal编程技术网

Python-for与计数器

Python-for与计数器,python,Python,可能重复: 我想知道:Python有类似的功能吗 for (i=0; i < length; i += 1){ .... } 但是我认为应该有类似于(I=0;…)的东西,不是吗?使用: 或使用: (在Python2上,您将使用它) range()让我们以1以外的步骤逐步介绍i: >>> list(range(0, 5, 2)) [0, 2, 4] >>> list(range(4, -1, -1)) [4, 3, 2, 1, 0] 不过,您通常不需

可能重复:

我想知道:Python有类似的功能吗

for (i=0; i < length; i += 1){ .... }
但是我认为应该有类似于(I=0;…)的东西,不是吗?

使用:

或使用:

(在Python2上,您将使用它)

range()
让我们以
1
以外的步骤逐步介绍
i

>>> list(range(0, 5, 2))
[0, 2, 4]
>>> list(range(4, -1, -1))
[4, 3, 2, 1, 0]
不过,您通常不需要对序列使用索引;不与或;涵盖了“特殊”索引值范围的大多数用例:

>>> menu = ['spam', 'ham', 'eggs', 'bacon', 'sausage', 'onions']
>>> # Reversed sequence
>>> for dish in reversed(menu):
...     print(dish)
... 
onions
sausage
bacon
eggs
ham
spam
>>> import itertools
>>> # Only every third
>>> for dish in itertools.islice(menu, None, None, 3):
...     print(dish)
... 
spam
bacon
>>> # In groups of 4
>>> for dish in itertools.izip_longest(*([iter(menu)] * 4)):
...     print(dish)
... 
('spam', 'ham', 'eggs', 'bacon')
('sausage', 'onions', None, None)

试图说明这是一种深思熟虑的语言选择。在低级语言中,大多数情况下都会循环使用数字,这些数字在序列中用作索引。对于实际需要数字的情况,应使用
range
内置函数-该函数返回带有所需
范围([start],end,[step])
输入值的iterable

更常见的情况是,您确实需要序列的项及其索引,在这种情况下,您应该使用内置的
enumerate

for index, letter in enumerate("word"):
     print index, letter
最后,在C语言和派生语言(Java、PHP、Javascript、C#、Objective C)中,的
语法只是while循环的一些(非常粗糙的)语法-您可以用Python编写相同的while循环

而不是:
for(start_expr,check_expr,incr_expr){code_body}

start_expr
while check_expr:
    code_body
    incr_expr
它的工作原理完全相同。

如果我想做我--而不是++?或者使i+=4?@AlanDert:
range()
采用一个步长参数:
range(0,len(items),4)
将以4的步长步进该范围。消极的步骤也起作用。
>>> menu = ['spam', 'ham', 'eggs', 'bacon', 'sausage', 'onions']
>>> # Reversed sequence
>>> for dish in reversed(menu):
...     print(dish)
... 
onions
sausage
bacon
eggs
ham
spam
>>> import itertools
>>> # Only every third
>>> for dish in itertools.islice(menu, None, None, 3):
...     print(dish)
... 
spam
bacon
>>> # In groups of 4
>>> for dish in itertools.izip_longest(*([iter(menu)] * 4)):
...     print(dish)
... 
('spam', 'ham', 'eggs', 'bacon')
('sausage', 'onions', None, None)
for i in range(length):
    #do something
for index, letter in enumerate("word"):
     print index, letter
start_expr
while check_expr:
    code_body
    incr_expr