Python for循环语句的用法(附带示例)
for 循环主要由两个元素组成:
- 循环的执行主体,由程序语句或复合语句组成。
- 循环的条件判断,决定循环何时停止执行。
本文我们重点介绍 Python for 循环,想了解 while 循环的读者请转到:python while 循环的用法。
Python for 循环
for 循环又称为计数循环,是程序设计中较常使用的一种循环形式,可以重复执行固定次数的循环。如果程序设计所需要的循环执行次数固定,那么 for 循环就是最佳选择。图 1 所示为 for 循环的执行流程图。
图1
for 循环可以通过访问任何序列来操作,而序列可以是一串数字、列表或字符串,按序列顺序进行访问,语法结构如下。
for 元素变量 in 序列项目:
# 所要执行的语句
注意:Python 序列项目可以将多个数据类型相同的数据集合在一起,序列中的数据称为元素(Element)或项目(Item),通过“索引值”可以取得存于序列中的所需的数据元素。列表、元组或字符串都是一种序列类型,它们的元素类型一样。
上述 Python 语法所代表的意义是 for 循环会将一序列(如字符串或列表)内所有的元素都访问一遍,访问的顺序是目前序列内元素或项目的顺序。
例如,下面几个示例的 x 变量值都可以作为 for 循环的访问序列项目。
【示例1】程序代码如下:
x = "abcdefghijklmnopqrstuvwxyz" x = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] x = "abcdefghijklmnopqrstuvwxyz" for i in x: print(i,end='')输出结果:
abcdefghijklmnopqrstuvwxyz
【示例2】程序代码如下:
x = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] for i in x: print(i)输出结果:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
【示例3】如何利用 for 循环访问序列项目,同时利用 title() 函数将第一个字母以大写形式显示。代码如下:
x = ['michael', 'tom', 'andy', 'june', 'axel'] print("我有几位好朋友: ") for friend in x: print(friend.title()+ " 是我的好朋友")输出结果:
我有几位好朋友:
Michael 是我的好朋友
Tom 是我的好朋友
Andy 是我的好朋友
June 是我的好朋友
Axel 是我的好朋友
【示例4】程序代码如下:
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for i in x: print(i,end=' ')输出结果:
1 2 3 4 5 6 7 8 9 10
range()函数
Python 提供了 range() 函数来搭配 for 循环,这个函数的主要功能是建立整数序列。range() 函数的语法如下。range([起始值], 终止条件[, 间隔值])
- 起始值:默认为0,参数值可以省略。
- 终止条件:必要参数,不可省略。
- 间隔值:计数器的增减值,默认值为1。
上述语法的说明:
- 1 个参数。range(整数值)产生的序列是 0 到“整数值-1”的序列,例如,range(4)表示会产生 [0,1,2,3] 的序列。
- 2 个参数。range(起始值,终止值)产生的序列是“起始值”到“终止值-1”的序列,例如,range(2,5)表示会产生 [2,3,4] 的序列。
- 3 个参数。range(起始值,终止值,间隔值)产生的序列是“起始值”到“终止值-1”的序列,但每次会递增间隔值,例如,range(2,5,2)表示会产生 [2,4] 的序列。
- range(5)表示从索引值 0 开始,输出 5 个元素,即 0、1、2、3、4 共 5 个元素。
- range(1,11)表示从索引值1开始,到索引编号 11 前结束,也就是说,索引编号 11 不包括在内,即 1、2、3、4、5、6、7、8、9、10 共 10 个元素。
- range(4,12,2)表示从索引值 4 开始,到索引编号 12 前结束,也就是说,索引编号 12 不包括在内,递增值为 2,即 4、6、8、10 共 4 个元素。
下面我们来看几个示例。
【示例1】在 for 循环中搭配使用 range() 函数输出 1~10,每个数字之间以一个空格隔开。代码如下:
for x in range(1,11): #数值1~10 print(x, end=" ") print()输出结果:
1 2 3 4 5 6 7 8 9 10
【示例2】如何利用 for 循环输出指定数量的特殊符号。代码如下:
n=int(input("请输入要输出的特殊符号的数量: ")) for x in range(n): #循环次数为n print("$",end="") print()输出结果:
请输入要输出的特殊符号的数量: 10
$$$$$$$$$$
【示例3】利用 for 循环并配合 range() 函数来计算 11~20 的数字加总。代码如下:
sum = 0 #存储加总结果,初始值为0 print('进行加总前的初始值:', sum) #输出加总前的初始值 for i in range(11, 21): sum += i #将数值累加 print('累加值=', sum) #输出累加结果 else: print('数值累加完毕……')输出结果:
进行加总前的初始值: 0
累加值= 11
累加值= 23
累加值= 36
累加值= 50
累加值= 65
累加值= 81
累加值= 98
累加值= 116
累加值= 135
累加值= 155
数值累加完毕……
- 第 1 行:设定变量 sum 的初始值为 0,变量 sum 是用来存储加总结果的。
- 第 2 行:输出加总前的初始值。
- 第 3~5 行:for 循环的执行块,其中的 range(11,21)表示由 11 开始,到 21 结束;也就是说,当数值为 21 时,就会结束循环的执行工作。
- 第 7 行:如果 for 循环执行结束,则输出“数值累加完毕……”。
下面的程序示例是计算 10!的值,也是 for 循环的应用。我们知道符号 “!” 代表数学上的阶乘。例如,4 阶乘可写为 4!,代表 1*2*3*4 的值;5!=1*2*3*4*5。
【示例4】计算 10! 的值。代码如下:
#计算10! 的值 product=1 for i in range(1,11): #定义for循环 product*=i print("product=%d" %product) #输出乘积的结果输出结果:
product=3628800
程序解说:- 第 2 行:设定变量的初始值为 1。
- 第 3~5 行:循环重复条件为 i 小于等于 10,i 的递增值为 1,所以当 i 大于 10 时,就会停止 for 循环。
注意:在使用 for 循环时还有一个地方要特别留意,那就是 print() 函数。如果该 print() 函数有缩进的话,就表示在for 循环内有要执行的工作,就会按照执行次数来输出。如果没有缩进,就表示不在 for 循环内,只会输出最后的结果。
Python for 嵌套循环
接下来介绍一种嵌套循环,也就是多层次的 for 循环结构。在嵌套 for 循环结构中,必须先等内层循环执行完毕,才会逐层继续执行外层循环。两层式的嵌套 for 循环结构格式如下。
图2
许多人会利用嵌套循环绘制特殊的图案,例如,以下的程序代码就可以绘制三角形图案。
n=int(input("请输入要产生图案的魔术数字: ")) for x in range(1,n+1): #循环次数为n for j in range(1,x+1): print("*",end="") print()输出结果:
请输入要产生图案的魔术数字: 8
*
**
***
****
*****
******
*******
********
【示例5】如何利用两个 for 循环输出九九乘法表。代码如下:
""" 程序名称:九九乘法表 """ for x in range(1, 10): for y in range(1, 10): print("{0}*{1}={2: ^2}".format(y, x, x * y), end=" ") print()输出结果:
1*1=1 2*1=2 3*1=3 4*1=4 5*1=5 6*1=6 7*1=7 8*1=8 9*1=9 1*2=2 2*2=4 3*2=6 4*2=8 5*2=10 6*2=12 7*2=14 8*2=16 9*2=18 1*3=3 2*3=6 3*3=9 4*3=12 5*3=15 6*3=18 7*3=21 8*3=24 9*3=27 1*4=4 2*4=8 3*4=12 4*4=16 5*4=20 6*4=24 7*4=28 8*4=32 9*4=36 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 7*5=35 8*5=40 9*5=45 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 7*6=42 8*6=48 9*6=54 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 8*7=56 9*7=63 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 9*8=72 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
【示例6】利用 for 循环来让用户输入n值,并计算出 “1!+2!+…+n!” 的总和。代码如下:
sum=0 n1=1 n=int(input("请输入任意一个整数:")) for i in range(1,n+1): for j in range(1,i+1): n1*=j; # n!的值 sum+=n1;# 1!+2!+3!+...+n! n1=1 print("1!+2!+3!+...+{0}!={1}".format(n,sum))输出结果:
请输入任意一个整数:8
1!+2!+3!+...+8!=46233
- 第 3 行:外层 for 循环控制i输出,表示可以运算 n 次。
- 第 4~5 行:计算出 n! 的值。
- 第 6 行:累加到 sum 变量中。
- 第 7 行:n1 重新设定为 1。
已知有以下公式,请设计一个程序,根据输入的 k 值,求 π 的近似值。

【示例7】求 π 的近似值。代码如下:
sigma=0 k=int(input("请输入k值:")) #输入k值 for n in range(0,k,1): if n & 1: #如果n是奇数 sigma += float(-1/(2*n+1)) else: #如果n是偶数 sigma += float(1/(2*n+1)) print("PI = %f" %(sigma*4))输出结果:
请输入k值:10000
PI = 3.141493
- 第 1 行:设定 sigma 的初始值。
- 第 2 行:输入 k 值。
- 第 3~8 行:根据给定的公式,配合 for 循环,求 π 的近似值并输出。
声明:《Python系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。