<think>根据用户需求,我们将分步骤讲解Python中的for循环、range函数、嵌套循环,并通过打印九九乘法表和寻找100以内素数两个实例进行实践。以下内容将按照以下结构组织:
1. for循环基础
2. range函数使用
3. 嵌套循环示例
4. 打印九九乘法表
5. 寻找100以内的素数
### 1. for循环基础
在Python中,`for`循环用于遍历任何可迭代对象(如列表、元组、字符串、字典等)中的每个元素。其基本语法如下:
```python
for 变量 in 可迭代对象:
# 循环体
```
例如,遍历一个列表:
```python
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)
```
输出:
```
apple
banana
cherry
```
### 2. range函数使用
`range()`函数用于生成一个整数序列,通常用于循环中指定循环次数。它有三种形式:
- `range(stop)`: 生成从0到stop-1的整数序列。
- `range(start, stop)`: 生成从start到stop-1的整数序列。
- `range(start, stop, step)`: 生成从start到stop-1,步长为step的整数序列。
示例:
```python
# 生成0到4
for i in range(5):
print(i, end=' ') # 输出: 0 1 2 3 4
# 生成2到5
for i in range(2, 6):
print(i, end=' ') # 输出: 2 3 4 5
# 生成1到10,步长为2
for i in range(1, 11, 2):
print(i, end=' ') # 输出: 1 3 5 7 9
```
### 3. 嵌套循环示例
嵌套循环是指在一个循环体内包含另一个循环。例如,我们可以使用嵌套循环来遍历二维列表(矩阵):
```python
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix: # 外层循环遍历每一行
for num in row: # 内层循环遍历当前行的每个元素
print(num, end=' ')
print() # 换行
```
输出:
```
1 2 3
4 5 6
7 8 9
```
### 4. 打印九九乘法表
九九乘法表是一个经典的嵌套循环示例。外层循环控制行(乘数1),内层循环控制列(乘数2)。注意内层循环的范围是1到当前行数(包括当前行数)。
参考引用[3]中的示例,我们使用两层循环实现:
```python
for i in range(1, 10): # 外层循环,控制行数(1到9)
for j in range(1, i+1): # 内层循环,控制每行的列数(1到i)
# 使用格式化字符串输出,end='\t'使每列对齐
print(f"{j}*{i}={i*j}", end='\t')
print() # 换行
```
输出:
```
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
...(省略中间部分)...
1*9=9 2*9=18 3*9=27 ... 9*9=81
```
### 5. 寻找100以内的素数
素数(质数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。我们可以用循环判断每个数是否为素数。
算法步骤:
1. 遍历2到100之间的每个数。
2. 对于每个数n,判断它是否为素数:用2到$\sqrt{n}$(取整)之间的数去除n,如果都不能整除,则n是素数。
代码实现:
```python
# 寻找100以内的素数
for num in range(2, 101): # 遍历2到100
is_prime = True # 假设当前数是素数
# 判断num是否为素数
for i in range(2, int(num**0.5) + 1): # 只需检查到平方根
if num % i == 0: # 如果被整除,则不是素数
is_prime = False
break # 跳出内层循环
if is_prime:
print(num, end=' ')
```
输出:
```
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
```
### 总结
通过以上内容,我们学习了:
- `for`循环的基本用法
- `range`函数的三种形式
- 嵌套循环的结构和应用
- 打印九九乘法表(嵌套循环经典应用)
- 寻找100以内的素数(循环结合条件判断)
希望这些示例能帮助你理解循环结构的使用。接下来,你可以尝试以下练习巩固知识:
1. 使用循环计算1到100的和。
2. 打印一个倒立的九九乘法表。
3. 寻找1000以内的素数,并优化算法(如跳过偶数)。
§§相关问题§§
1. 如何优化寻找素数的算法以提高效率?
2. 除了九九乘法表,嵌套循环还有哪些典型应用?
3. 在Python中,`for`循环和`while`循环有何区别,各自适用什么场景?
4. 如何使用循环结构实现其他数学问题(如斐波那契数列)?</think>### Python for循环基础
`for`循环用于遍历序列(如列表、元组、字符串)或其他可迭代对象。基本语法:
```python
for 变量 in 序列:
# 循环体
```
示例:
```python
# 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(fruit) # 输出每个水果
# 遍历字符串
word = "Python"
for char in word:
print(char) # 输出每个字符
```
---
### range函数详解
`range()`生成整数序列,常用于控制循环次数:
- `range(stop)`:生成 $0$ 到 $\text{stop}-1$ 的整数
- `range(start, stop)`:生成 $\text{start}$ 到 $\text{stop}-1$ 的整数
- `range(start, stop, step)`:按步长 $\text{step}$ 生成
示例:
```python
# 生成0~4
for i in range(5):
print(i, end=' ') # 输出: 0 1 2 3 4
# 生成2~5
for i in range(2, 6):
print(i, end=' ') # 输出: 2 3 4 5
# 生成1~9的奇数
for i in range(1, 10, 2):
print(i, end=' ') # 输出: 1 3 5 7 9
```
---
### 嵌套循环示例
嵌套循环即循环中包含循环,常用于处理多维数据:
```python
# 打印3x3矩阵坐标
for row in range(1, 4):
for col in range(1, 4):
print(f"({row},{col})", end=' ')
print() # 换行
```
输出:
```
(1,1) (1,2) (1,3)
(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)
```
---
### 打印九九乘法表
通过嵌套循环实现,外层控制行,内层控制列:
```python
for i in range(1, 10): # 外层:行数(1~9)
for j in range(1, i+1): # 内层:每行公式数(1~i)
print(f"{j}×{i}={i*j}", end='\t') # \t对齐
print() # 换行
```
输出(部分):
```
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
...(略)...
```
**关键点**:
1. 内层循环范围 `range(1, i+1)` 确保每行输出 $i$ 个公式
2. `end='\t'` 用制表符对齐列[^3][^4]
---
### 寻找100以内素数
素数定义:大于1且仅能被1和自身整除的数。
**实现思路**:
1. 遍历2~100的每个数 $n$
2. 检查 $n$ 是否能被 $2$ 到 $\sqrt{n}$ 之间的整数整除
3. 若均不能整除,则为素数
```python
for num in range(2, 101): # 遍历2~100
is_prime = True # 素数标记
for i in range(2, int(num**0.5) + 1): # 优化:检查到√n即可
if num % i == 0: # 被整除则不是素数
is_prime = False
break # 提前结束内层循环
if is_prime:
print(num, end=' ') # 输出素数
```
输出:
`2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97`
**优化说明**:
- 检查范围缩小到 $\sqrt{n}$(数学定理)[^1]
- 用 `break` 提前终止非素数判断
---
### 知识总结
| 概念 | 要点说明 |
|--------------|--------------------------------------------------------------------------|
| **for循环** | 遍历可迭代对象,需缩进循环体 |
| **range()** | 生成整数序列,`range(起点,终点,步长)`,终点值不包含 |
| **嵌套循环** | 外层每执行1次,内层完整执行一轮,常用于矩阵操作[^2] |
| **素数判断** | 优化关键:缩小除数范围至 $\sqrt{n}$,用`break`减少不必要的计算 |