
3.3.2 for循环语句

3.3.2 for循环语句
Python中的for循环语句与Java、C等语言略有不同。Python的for语句依据任意序列(集合、列表、元组或字符串)中的子项,按它们在序列中的顺序来进行迭代。
1.for语句的基本语法格式
for语句的基本语法格式为:

说明:
1)for语句可以遍历任何序列的项目,包括字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。“变量”用于存放从序列类型变量中读取出来的项(或元素),所以一般不会在循环中对“变量”手动赋值。“循环体”是指具有相同缩进格式的多行代码(与while语句一样)。
2)for语句可以循环遍历字符串。
【例3-19】 使用for循环遍历“a12张三”字符串的过程中,变量ch先后被赋值为“a”“1”“2”“张”“三”,并代入循环体中运行。

运行结果为:

3)for语句可以进行数值循环。在使用for语句时,最基本的应用就是进行数值循环。
2.range()函数
range()函数是Python内置的函数,用于生成一系列连续的整数,多用于for语句中。range()函数的语法格式如下:

此函数中各参数的含义如下。
start:用于指定计数的起始值,如果省略不写,则默认从0开始。
end:用于指定计数的结束值(不包括此值),此参数不能省略。
step:用于指定步长,即两个数之间的间隔,如果省略,则默认步长为1。
总之,在使用range()函数时,如果只有一个参数,则表示指定的是end;如果有两个参数,则表示指定的是start和end。
range()函数所生成的数从start开始,不包括范围中的结束值end,每个数间隔步长step。start、end、step可以是负数。
【例3-20】 实现从1到100的累加。

【例3-21】 输出0~3的数字。

运行结果为:

【例3-22】 输出10~25(不包括25)以内所有的奇数。

运行结果为:

【例3-23】 输出从20(包括20)到1(不包括1)的偶数。

运行结果为:

【例3-24】 用循环输出从-10(包括-10)到-100(不包括-100)的间隔为30的数。

运行结果为:

3.for语句使用实例
【例3-25】 计算n的阶乘。
分析:根据阶乘的计算公式n!=1×2×3×…×n可知,首先需要生成1~n的整数序列,然后在for语句中,把从序列中得到的整数进行乘法运算。factorial乘积的初始值为1,循环的初始值是1,结束值是n+1。

运行结果如图3-9所示。
如果希望显示阶乘的过程算式,修改程序如下:


运行结果如图3-10所示。

图3-9 例3-25运行结果1

图3-10 例3-25运行结果2