for 语句可以为一个 序列 中的每个项 重复 一个或多个操作。例如,字符串是由单个字符组成的序列,下面的代码段可以将字符串 'Programming' 中的每个字符用两个空格分隔开并显示出来:
for 语句按照如下步骤执行:
在套件中使用目标变量的情况很常见,例如在本例中显示 character 的值,但也可以不使用。
print 函数的关键字参数 end
内置函数 print 的功能是显示它的参数,然后将光标移到下一行。可以通过设置参数 end 来修改输出的效果,例如语句
会在显示 character 的值后继续显示两个空格,而不是换行。因此,光标不会移动到下一行。在Python中将 end 称为 关键字参数 (也称为 命名参数 ),但 end 本身不是Python关键字。关键字参数 end 是可选项,如果参数中不包含 end ,会使用默认值换行符( '\n' )。 Style Guide for Python Code 建议在关键字参数的“ = ”两侧不加空格。
print 函数的关键字参数 sep
可以使用关键字参数 sep ( separator 的简称)来指定分隔 print 显示的项之间的字符串。如果不指定此参数,默认情况下 print 使用空格作为分隔符。下面的代码显示三个数字,每个数字用逗号和空格分隔,而不仅仅是一个空格:
要删除默认的空格,可以使用 sep='' (即空字符串)。
在 for 语句中,关键字 in 右侧的序列必须是一个 可迭代 对象,也就是说, for 语句可以从这个对象中每次获取一个项,直到不再有未处理的项为止。除了字符串,Python还有其他的可迭代对象序列类型。 列表 是最常见的一种,它是用方括号([和])括起来并用逗号分隔的项的合集。下面的代码对列表中的5个整数求和:
每个序列都含有一个 迭代器 。 for 语句使用隐藏的迭代器来依次获取序列中的每一个项,直到没有项需要处理为止。迭代器就像一个书签,使你知道自己在序列中的位置,当被调用时,它可以返回序列中的下一个项。本书会在第5章中详细介绍列表。在这一章里,将会演示列表中项的顺序的重要性,以及列表中的项是 可变的 (即可修改)。
下面的代码使用 for 语句和内置函数 range 进行10次迭代,显示0到9之间的值:
函数调用 range(10) 创建一个可迭代对象,表示从0开始一直到(但不包括)参数值10的连续整数序列,本例中为0、1、2、3、4、5、6、7、8、9。当处理完 range 产生的最后一个整数时,退出 for 语句。迭代器和可迭代对象是Python 函数式编程 的两个组成部分,本书将介绍更多的相关内容。
缺一错误
当假设 range 的参数值包含在生成的序列中时,经常会发生缺一错误。例如,在尝试生成序列0到9时使用9作为 range 的参数,但 range 仅生成0到8的序列。