for循环
for循环的语法格式如下:
for <循环变量> in <遍历结构>:
代码块
- 关键字
for
+空格+<循环变量>
+关键字in
+<遍历结构>+冒号组成for语句 - 代码块通过缩进和for语句形成包含关系
for 循环会依次取出遍历结构中的元素,然后赋值给循环变量,每次遍历都会执行代码块,直到取出遍历结构中的所有元素。
基本数据类型中,字符串,列表,元组,集合,字典都可以进行迭代。
字符串迭代
>>> s = '12345'
>>> for i in s:
... print(i)
1
2
3
4
5
集合迭代
s = {1,2,3,4,5}
>>> for i in s:
... print(i)
1
2
3
4
5
字典的迭代
>>> d = {'name': 'xinlan', 'age': 18}
>>> for key in d: # 直接迭代是迭代字典的key
... print(key)
'name'
'age'
对值的迭代
>>> for key in d: #
... print(d[key])
'xinlan'
18
>>> for value in d.values():
... print(value)
'xinlan'
18
迭代器
迭代器(iterator)是一个可以记住遍历位置的对象。for循环本质上就是通过迭代器来实现的。
通过内建函数iter
可以创建迭代器对象。
>>> iter('abc')
<str_iterator at 0x7fdc6a017670>
不是所有的对象都可以创建迭代器,凡是能够通过函数iter
创建迭代器的对象称为可迭代对象
,反之是不可迭代对象
。
range函数
内建函数range
可以创建输出整数序列的迭代器
。
range(start,stop,step)
range(start, stop,step)
生成start,start+step,start+2*step,stop-step
,start
默认为0,step
默认为1。
# 输出0-9
>>> for i in range(10):
... print(i)
0
1
2
3
4
5
6
7
8
9
# 输出1-10
>>> for i in range(1,11):
... print(i)
1
2
3
4
5
6
7
8
9
10
# 输出-1--10
>>> for i in range(-1,-11,-1):
... print(i)
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
for循环经常和range
函数配合用来指定循环次数。