使用for迭代
Python 频繁地使用迭代器。它允许在数据结构长度未知和具体实现未知的情况下遍历整个数据结构,并且支持迭代快速读写中的数据,以及允许不能一次读入计算机内存的数据流的处理。
在计算机科学里,遍历的一种,指的是按照某种规则,不重复地访问某个对象的所有内容的过程。
for.png
for语句
for item in 'hello world !':
print(item)
for i in range(10)
In [15]: for i in range(10):
...: print(i)
...:
0
1
2
...
range
range() 函数可创建一个整数列表,一般用在 for 循环中。
函数语法:
range(start, stop[, step])
参数说明:
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
In [18]: list(range(10))
Out[18]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [21]: tuple(range(10))
Out[21]: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
for迭代可迭代对象
for可以迭代所有可迭代对象(字符串、列表、元组、集合、字典)
for num in list(range(1000)):
print(num)
案例:用 for 迭代获取所有水仙花数
for num in range(1000):
print(num)
案例:用for循环实现九九乘法表
for row in range(1, 10):
for col in range(1, row + 1):
print("%d * %d = %d" % (col, row, row * col), end="\t")
print()
提升(长见识):
用for实现水仙花数
for x in range(0, 10):
for y in range(0, 10):
for z in range(1, 10):
sum = z * 100 + y * 10 + x
if sum == x ** 3 + y ** 3 + z ** 3:
print(sum)
# 列表推导式
[(x ** 3 + y ** 3 + z ** 3) for x in range(1, 10) for y in range(0, 10) for z in range(0, 10) if (x*100+y*10+z) == x ** 3 + y ** 3 + z ** 3]