当前位置: 首页 > news >正文

【小白笔记】判断一个正整数是否为质数(Prime Number)-循环语句中的else语句


💻 两种判断质数方法的分析

📌 代码片段一:循环内使用 else (逻辑错误)

# 判断质数 (方法一:在 for 循环的内部使用了 else)
n=int(input("请输入一个正整数:"))
for i in range(2,n**0.5+1):if n%i==0:print(f"{n}不是素数")break # 强制中断就不会执行else语句else: # <--- 错误:这个 else 是和 if 配对的print(f"{n}是素数") # <--- 错误:不应该在这里判断是素数
❌ 逻辑错误所在:
  1. else 的误用: 这个 else 是与内层的 if n%i==0 配对的。这意味着,只要 n 第一次没有被 iii 整除,程序就会立即打印 n 是素数
  2. 错误示例: 如果输入 n=9n=9n=9
    • 循环开始,i=2i=2i=2
    • 9%2≠09 \% 2 \ne 09%2=0,进入 else 块,立即打印 “9 是素数”
    • 结果错误,因为 999 实际不是素数 (9=3×39=3 \times 39=3×3)。

这个代码完全没有实现质数判断的功能,它在第一次不整除时就给出了错误的结论。

📌 代码片段二:函数内使用 return True/False (逻辑错误)

def is_prime(n):for i in range(2,n**0.5+1):if n%i==0:return False # 正确:一旦找到因子,立即返回 Falseelse:return True # <--- 错误:不应该在这里返回 True
❌ 逻辑错误所在:
  1. return True 的位置错误: 这个 else 也是与内层的 if 配对的。这意味着,只要 n 第一次没有被 iii 整除,函数就会立即返回 True
  2. 错误示例: 如果输入 n=9n=9n=9
    • 循环开始,i=2i=2i=2
    • 9%2≠09 \% 2 \ne 09%2=0,进入 else 块,立即返回 True
    • 结果错误。

与代码一类似,这段代码也是在第一次不整除时就草率地断定 nnn 是素数,是错误的判断逻辑。


🎯 Python 中循环 else 的正确用法

Python 的 for 循环(和 while 循环)可以带一个 else,这个 else 块的含义是:

只有当循环是自然结束(即没有break 语句中断)时,else 块中的代码才会被执行。

这对于判断质数非常有用。

✅ 质数判断的正确逻辑(利用循环 else

一个数 nnn 是素数,当且仅当所有可能的因子都没有整除 nnn

条件动作
找到因子 (n%i==0)立即 break (中断循环),nnn 不是素数。
循环自然结束说明尝试了所有可能的因子,都没有找到。nnn 素数。
💻 质数判断的正确代码实现
def is_prime_correct(n):# 边界情况判断if n <= 1:return Falseif n == 2:return True# 从 2 遍历到 sqrt(n)for i in range(2, int(n**0.5) + 1):if n % i == 0:# 找到因子,不是素数return False# 在脚本中对应 break# 循环结束后执行的语句return True # 在脚本中对应 else 块中的语句
💻 使用 for...else 语法的正确脚本
n = int(input("请输入一个正整数:"))
if n <= 1:print(f"{n}不是素数")
else:# 循环检查因子for i in range(2, int(n**0.5) + 1):if n % i == 0:print(f"{n}不是素数")break # 找到因子,跳出循环else: # <--- 正确用法:循环没有被 break 才会执行print(f"{n}是素数")

总结: 原代码中的 else 都与内层 if 配对,导致逻辑错误;正确的方法是将 else外层 for 循环配对,利用它来判断循环是否被 break 中断。

http://www.dtcms.com/a/545249.html

相关文章:

  • 传奇网站一般怎么做的在国外做h网站怎么样
  • Next.js, Node.js, JavaScript, TypeScript 的关系
  • 做一个综合商城网站多少钱合肥seo关键词排名
  • 网站开发与管理对应的职业及岗位优质的seo网站排名优化软件
  • 新人如何学会安装与切换Rust版本:从工具链管理到生产实践
  • 公司网站制作源码wordpress 最快的版本
  • Rust:与JSON、TOML等格式的集成
  • 应用商城发布项目
  • 6.3.3.1 大数据方法论与实践指南-大数据质量度量指标体系
  • 二叉树----规矩森严的“家族树”(第11讲)
  • 随州网站建设有哪些南昌网站建设是什么意思
  • php免费企业网站模板祥云县住房和城乡建设网站
  • 宏观经济走势对网民互联网消费行为的影响:基于开源链动2+1模式AI智能名片S2B2C商城小程序的实证分析
  • 网站开发 环境品牌设计概念
  • 网站建设加盟培训网站内图片变换怎么做
  • Linux设置服务开机自启动脚本
  • wordpress适合做大型网站吗潍坊专业人员继续教育
  • openpnp - 如果出现不正常的情况,需要将设备和主板重新上电
  • 【音视频】WebRTC连接建立流程详解
  • 从零开始的C++学习生活 17:异常和智能指针
  • OceanBase 分布式数据库的 ETL 实践:从抽取到实时分析
  • 在谷歌上做国际网站支持wordpress的主机
  • Prometheus 详解:从原理到实战,打造企业级云原生监控体系
  • 使用SSE进行实时消息推送!替换WebSocket,轻量好用~
  • YOLO V2全面解析:更快、更准、更强大的目标检测算法
  • 小白python入门 - 12. Python集合——无序容器的艺术与科学
  • 墨刀做的网站设计阿里云域名出售
  • 悬垂引用的攻防战:Rust 如何从根源杜绝内存访问灾难
  • IDEA好用的插件
  • 湖南住房与城乡建设部网站顺义公司网站建设