python提供的for语句,可以用在列表解析和生成器表达式中,它会自动地调用迭代器的next()方法,捕获StopIteration异常并结束循环(所有这一切都是在内部发生的)。
大部分编程语言提供的for循环,通常只接受一个计数器变量,且该变量必须为数字,循环每执行一次,计算器值就改变一次(每次改变的量相同)。python,for循环由于能够直接对序列进行循环,因此python的for循环要比那些传统的for循环更加灵活。
一般语法
for循环会访问一个可迭代对象(例如序列或是迭代器)中的所有元素,并在所有条目都处理过后 结束循环,它的语法如下:
for iter_var in iterable:
suite_to_repeat
每次循环,iter_var迭代变量被设置为可迭代对象(序列、迭代器或其他支持迭代的对象)的当前元素,提供给suite_to_repeat语句块使用。
用于序列类型
用for循环迭代不同的序列对象。样例将涵盖字符串、列表及元组。
for eachLetter in 'Names':
print 'current letter: ', eachLetter
1. 通过序列项迭代
nameList=["Walter", "Nicole", "Steven", "Henry"]
for eachName in nameList:
print eachName
每次迭代,eachName变量都被设置为列表中特定某个元素。
2. 通过序列索引迭代
nameList=["Walter", "Nicole", "Steven", "Henry"]
for nameIndex in range(len(nameList)):
print nameList[nameIndex]
直接迭代序列要比通过索引迭代快。
3. 使用项和索引迭代
两全其美的办法是使用内建的enumerate()函数。
nameList=["Walter", "Nicole", "Steven", "Henry"]
for i, eachName in enumerate(nameList):
print "%d %s " % (i+1,eachName)
#演示用for循环操作字符串
word=raw_input("Enter a word: ")
print("\nHere's each letter in your word:")
for letter in word:
print(letter)
输出结果:
for i in range(10):
print(i,end=" ")
for i in range(0,50,5):
print(i,end=" ")
输出:
for i in range(10,0,-1):
print(i,end=" ")
输出: