8.for循环与range序列

for循环

while 循环的循环条件是自定义的,自行控制循环条件

for循环是一种"轮询"机制,是对一轮内容进行"逐个处理"

for 临时变量 in 待处理数据集:

  循环满足条件时执行的代码

无法定义循环条件,只能被动取出数据处理

要注意循环内的语句,需要空格缩进

语法中的待处理数据集,严格来说,称之为:序列类型 包括:字符串、列表、元组等

name = "python"
for i in name:
    print(f"{i}",end="")
python
name = "数一数这些字里面有几个数这个字"
count = 0
for i in name:
    if i == "数":
        count += 1
print(count)
3

序列类型range

range 是一种序列类型,range类型用于表示不可变的整数序列。

可以调用内置函数range(类range的构造方法)创建range类型的对象,有三种调用方式:

1.range(stop)

2.range(start,stop)

3.range(start,stop,step)

其中

整数序列起始值默认为0,可以使用参数start指定;
可以使用参数stop指定整数序列的结束值,创建的range对象不包含stop值;
整数序列的步长的默认值是1,可以使用参数step进行指定。

内置函数range的返回值是一个迭代器对象,为了清楚地表示返回的迭代器对象所表示的整数序列,可以将其转换成列表。

print(range(6))
print(list(range(6)))
print(list(range(0,7,2)))
print(list(range(0,-20,-4)))

for i in range(10,100,5):
    print(f"{i} ",end="")
print()

# 有几个偶数
count = 0
for i in range(1,50):
    if i % 2 == 0:
        count += 1
print(count)
range(0, 6)
[0, 1, 2, 3, 4, 5]
[0, 2, 4, 6]
[0, -4, -8, -12, -16]
10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95
24

for循环的变量作用域

for 临时变量 in 待处理数据集:

  循环满足条件时执行的代码

临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部

如果在for循环外部说临时变量,实际上是可以访问到的,在编程规范上,是不允许,不建议这么做的。

# 不建议 不规范
for i in range(6):
    print(f"{i} ",end='')
print()
print(i)    # 会读取for循环最后一个值
0 1 2 3 4 5
5
# 规范用法
i = 0
for i in range(6):
    print(f"{i} ",end='')
print()
print(i)    # 会读取for循环最后一个值
0 1 2 3 4 5
5

for循环的嵌套

for 临时变量 in 待处理数据集(序列):

  循环满足条件时执行的代码

  for 临时变量 in 待处理数据集(序列):

    循环满足条件时执行的代码

注意缩进,嵌套for循环同样通过缩进确定层次关系

for循环和while循环可以相互嵌套使用

i = 0
for i in range(1,11):
    print(f"今天是第{i}天,攒钱")
    for j in range(1,6):
        print(f"攒了{j}百块")
    print(f"攒钱")
print(f"坚持了{i}天")

案例-九九乘法表

for i in range(1,10):
    for j in range(1,i + 1):
        print(f"{j} * {i} = {i*j}\t",end='')
    print()
1 * 1 = 1
1 * 2 = 2   2 * 2 = 4
1 * 3 = 3   2 * 3 = 6   3 * 3 = 9
1 * 4 = 4   2 * 4 = 8   3 * 4 = 12  4 * 4 = 16
1 * 5 = 5   2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25
1 * 6 = 6   2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36
1 * 7 = 7   2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49
1 * 8 = 8   2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64
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