大家好,欢迎来到 Crossin的编程教室 !
上次我们讲解了Python中 while循环,并提到还有一种可以指定次数的循环形式:
代码语言:javascript复制for i in range(10):
print('此处为循环执行代码')
这句 for 循环语句有2个知识点:
1.
for循环的语法是
代码语言:javascript复制for 变量名 in 一个序列:
循环代码
所谓序列就是一组数据,比如「1 2 3 4 5」,又比如「a b c d e」。
for 循环的作用就是按照顺序,每次取出序列中的一个元素,赋值给前面的这个变量,直到全部取一遍。
这个过程又被称作「遍历」。
for 后面跟着的 i 就是每次循环中被赋值的变量,它不一定非要叫 i,也可以写成 abc、xxx,甚至是一个下划线_,只要符合变量命名规则就可以。
2.
后面的 range,是一个生成整数序列的方法,默认从0开始,到你括号里设定的数为止,但注意是不包含这个数,比如 range(10) 就是 0~9。
代码语言:javascript复制print(list(range(10)))
输出:
代码语言:javascript复制[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
注意:严格来说,range的结果并不是序列,而是一个生成器。所以必须再套上一个 list 函数才能得到一个列表。关于这方面的细节,我们以后讲到列表和生成器的时候再详细解释。
上面1和2两部分一结合,range 生成 0~n-1 的整数序列,再由 for 循环遍历一遍,就实现了循环 n 次的效果。
在 Python 里,字符串、列表都是序列,所以都可以用 for 语句进行遍历。
代码语言:javascript复制for x in 'Crossin':
print(x)
for i in [1, 2, 3, 4, 5]:
print(i)
输出:
代码语言:javascript复制C
r
o
s
s
i
n
1
2
3
4
5
关于 range 再多说几句。
range 可以提供 1/2/3 个参数。
给1个参数时,表示生成从 0 到 这个数(不包含)的序列;
给2个参数时,表示生成从 第1个数(包含)到 第2个数(不包含)的序列;
给3个参数时,表示生成从 第1个数(包含)到 第2个数(不包含),并以 第3个数 为间隔的序列。
代码语言:javascript复制for i in range(3, 10, 2):
print(i)
输出:
代码语言:javascript复制3
5
7
9
这个间隔甚至可以是负数。
代码语言:javascript复制for i in range(10, 3, -2):
print(i)
输出:
代码语言:javascript复制10
8
6
4
最后留一道练习题:
用户输入一个数,程序输出0到这个数之间,所有可以被2和3整除的数
对于 Python 的循环,你有什么想说的?欢迎在留言区讨论。