3.2 for 循环与 range()
如果循环次数比较明确,for 循环通常比 while 更清晰。它把“依次取出一组值”这件事写在一行里。
range()
range() 函数可以生成整数序列,常和 for 一起使用。
python
for i in range(5):
print(i, end=' ')
print()
for i in range(10, 15):
print(i, end=' ')
print()
for i in range(1, 10, 2):
print(i, end=' ')运行结果:
text
0 1 2 3 4
10 11 12 13 14
1 3 5 7 9range(start, stop, step) 会从 start 开始,按 step 增加,但不包含 stop。也就是说,stop 更像是“到这里就停”的边界,而不是最后一个会被输出的值。
正在加载交互实验...
正在加载概念检查...
固定次数的累加
计算 1 到 100 的整数和,可以使用 range(1, 101)。因为 range 不包含结束值,所以这里要写到 101。
python
total = 0
for i in range(1, 101):
total += i
print("1 到 100 的总和:%d" % total)运行结果:
text
1 到 100 的总和:5050这种写法比 while 更容易看出循环变量 i 的取值范围。
正在加载交互实验...
正在加载概念检查...
斐波那契数列
斐波那契数列(Fibonacci sequence)的前两项是 1, 1,从第三项开始,每一项都等于前两项之和。
python
n = int(input("请输入项数:"))
if n <= 0:
print("请输入正整数。")
elif n == 1:
print(1)
else:
first = 1
second = 1
print(first, second, end=' ')
for i in range(3, n + 1):
current = first + second
print(current, end=' ')
first = second
second = current
print()一次可能的运行结果:
text
请输入项数:10
1 1 2 3 5 8 13 21 34 55循环中最重要的更新是这两行:
python
first = second
second = current它们会把窗口向后移动一格,让下一轮继续使用“前两项”。
正在加载交互实验...
正在加载概念检查...
正在加载本节练习...