python - Python Prime Number for-else 范围
问题描述
lower = int(input("from:"))
upper = int(input("to:"))
for num in range(lower,upper + 1):
if num > 1:
for i in range(2,num):
if (num % i) == 0:
break
else:
print(num)
为什么此代码将“2”打印为质数?(它是但它不应该打印它)
2%2==0 所以它应该跳过它......
解决方案
当num
为 2 时,range(2, num)
为空,因此if (num % i) == 0:
不执行检查,执行else
块。
推荐阅读
- javascript - 将参数从 URL 添加到元素并滚动到元素
- python - 对 post 请求使用异步、多处理或多线程是否好?
- pointers - 给定两个变量,在计算机的大脑(内存)中找到它们的距离(以字节为单位)
- wpf - 将变量绑定到 Powershell 中的组合框和文本框
- reactjs - 如何优化大型 lang.json 文件以减小包大小
- javascript - React.js - 如何在不创建输入空间(段落空间)的情况下点击输入?
- python - 单击时移除 QPushButton 周围的方格边框
- html - 使用 HTML 选择下拉菜单,有没有办法让一些文本作为选项,但相应的文本显示为选中?
- javascript - 将数组拆分为均匀分布的数组
- javascript - 如何从 chrome 开发工具中获取准确的 .css 目标?