Python循环结构详解:从基础到实战
1. range函数核心用法
1.1 基本语法
range(start, stop[, step])
1.2 参数说明
参数 | 默认值 | 说明 |
---|---|---|
start | 0 | 起始值(包含) |
stop | 必填 | 终止值(不包含) |
step | 1 | 步长(正数递增/负数递减) |
1.3 典型示例
range(5) # 0,1,2,3,4
range(0,9,3) # 0,3,6
range(10,0,-2) # 10,8,6,4,2
2. for循环结构解析
2.1 基本语法
for 变量 in 可迭代对象:
循环体代码块
2.2 执行流程
- 从可迭代对象获取第一个元素赋值给变量
- 执行循环体代码
- 重复步骤1-2直到遍历完所有元素
2.3 遍历range示例
for i in range(1, 6):
print(f"当前值: {i}")
# 输出:1 2 3 4 5
3. 循环应用案例
3.1 区间数遍历
l = int(input("左边界: "))
r = int(input("右边界: "))
for num in range(l, r+1):
print(num, end=' ')
3.2 等差数列求和
n = int(input("输入N: "))
sum_result = 0
for i in range(1, n+1):
sum_result += i
print(f"1到{n}的和为: {sum_result}")
3.3 阶乘计算
n = int(input("输入N: "))
factorial = 1
for i in range(1, n+1):
factorial *= i
print(f"{n}! = {factorial}")
4. 进阶应用技巧
4.1 奇偶分类求和
n = int(input("输入N: "))
odd_sum = even_sum = 0
# 方法1:条件判断法
for i in range(1, n+1):
if i % 2 == 1:
odd_sum += i
else:
even_sum += i
# 方法2:range步长优化
odd_sum = sum(range(1, n+1, 2))
even_sum = sum(range(2, n+1, 2))
print(f"奇数和: {odd_sum} 偶数和: {even_sum}")
4.2 等差数列公式法
def arithmetic_series(a1, an, n):
return (a1 + an) * n // 2
n = int(input("输入N: "))
last_odd = n if n%2 else n-1
last_even = n if not n%2 else n-1
odd_count = (last_odd - 1)//2 + 1
even_count = last_even//2
print(f"奇数和: {arithmetic_series(1, last_odd, odd_count)}")
print(f"偶数和: {arithmetic_series(2, last_even, even_count)}")
5. 编程练习题
题目1:质数判断
n = int(input("输入数字: "))
is_prime = True
for i in range(2, int(n**0.5)+1):
if n % i == 0:
is_prime = False
break
print(f"{n}是质数" if is_prime else f"{n}不是质数")
题目2:九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f"{j}×{i}={i*j:2}", end=' ')
print()
题目3:图形打印
n = 5
for i in range(n):
print(' '*(n-i-1) + '*'*(2*i+1))
6. 常见问题解答
Q:range包含stop值吗?
A:不包含!range始终生成左闭右开区间
Q:如何逆序遍历?
for i in range(10, 0, -1):
print(i) # 10到1倒序
Q:如何避免浮点误差?
# 使用整数运算代替浮点数
for i in range(0, 100, 1):
print(i/100) # 可能产生精度问题