迭代:for
迭代语句,也称为循环语句 (Looping statements),允许重复执行一个代码块。
Python 提供了 for
和 while
语句来执行迭代。
for
语句可用于迭代序列(list
, string
, tuple
, range
)的项。它也可以用于迭代无序序列,如 set
和 dict
。
这个过程可以用下面的流程图来演示:
让我们通过一些代码示例来演示如何使用 for
语句迭代序列。
列表迭代
代码
python
cars = ["现代", "本田",
"福特", "丰田",
"宝马", "大众"]
for make in cars:
print(make)
输出
现代
本田
福特
丰田
宝马
大众
元组迭代
代码
python
cars = ("现代", "本田",
"福特", "丰田",
"宝马", "大众")
for make in cars:
print(make)
输出
现代
本田
福特
丰田
宝马
大众
字符串迭代
代码
python
name = "python"
for char in name:
print(char)
输出
p
y
t
h
o
n
Range 迭代
range
类型表示一个不可变的数字序列,通常用于 for
循环中,以循环特定次数。range
对象无论表示的范围有多大,始终占用相同(少量)的内存,这是它相对于普通 list
或 tuple
的优势。
语法: range(stop)
或 range(start, stop[, step])
python
>>> range(10)
range(0, 10)
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10, 2))
[1, 3, 5, 7, 9]
range()
函数广泛用于 for
语句中,以控制迭代次数并提供每次迭代的索引值 (i
)。
示例 #1
打印从 0 到 20 的 5 的倍数。
代码
python
for i in range(5):
print(i*5)
输出
0
5
10
15
20
示例 #2
打印从 2 到 5 的所有整数,包括边界值。
代码
python
for i in range(2, 6):
print(i)
输出
2
3
4
5
示例 #3
打印 2 到 10 之间的所有奇数。
代码
python
for i in range(3, 10, 2):
print(i)
或者
python
for i in range(2, 10):
if i % 2 != 0:
print(i)
输出
3
5
7
9
示例 #4
打印 python programming
中所有 o
出现的索引。
代码
python
s = "python programming"
for i in range(len(s)):
if s[i] == "o":
print(i)
输出
4
9
练习
让我们看一些使用 for
迭代语句的编程问题。
1. 复利
编写一个程序,计算给定本金、利率(年复利)和总时间(年)应支付的总复利。
代码
python
prin = float(input("输入本金金额: "))
rate = float(input("输入年利率: "))
time = int(input("输入贷款期限(年): "))
amt = prin
for n in range(time):
amt += rate*amt/100
print("应付总利息:", amt - prin)
输出
输入本金金额: 500000
输入年利率: 5
输入贷款期限(年): 3
应付总利息: 78812.5
2. 阶乘
正整数 n
的阶乘,表示为 n!
,是所有小于或等于 n
的正整数的乘积。 n! = n×(n-1)×(n-2)...3×2×1
编写一个程序,为给定的 n
计算 n!
(假设 n
大于 0
)。
代码
python
n = int(input("输入 n: "))
factorial = 1
for i in range(1, n+1):
factorial *= i
print("n! :", factorial)
输出
输入 n: 6
n! : 720