以下实例使用了嵌套循环输出2~100之间的素数

本文提供了一个使用Python编写的简单程序,用于找出100以内的所有素数。通过双重循环和模运算,程序有效地筛选出了指定范围内的素数,并打印输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
 
i = 2
while(i < 100):
   j = 2
   while(j <= (i/j)):
      if not(i%j): break
      j = j + 1
   if (j > i/j) : print(str(i) + " 是素数")
   i = i + 1

print "Good bye!"

以上实例输出结果:

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 是素数
Good bye! 是素数
3 是素数
5 是素数
7 是素数
11 是素数
13 是素数
17 是素数
19 是素数
23 是素数
29 是素数
31 是素数
37 是素数
41 是素数
43 是素数
47 是素数
53 是素数
59 是素数
61 是素数
67 是素数
71 是素数
73 是素数
79 是素数
83 是素数
89 是素数
97 是素数
Good bye!

<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. 遍历2100之间的每个数。 2. 对于每个数n,判断它是否为素数:用2到$\sqrt{n}$(取整)之间的数去除n,如果都不能整除,则n是素数。 代码实现: ```python # 寻找100以内的素数 for num in range(2, 101): # 遍历2100 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`减少不必要的计算 |
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值