为什么for循环求素数时,两种写法会导致截然不同的结果?
for循环不同写法的微妙区别
小白菜提出一个引人入胜的问题,让我们来深入研究两种for循环写法在求素数和问题中的微妙区别。
第一个写法:
for i in range(m,n): if prime(i): sum+=i else: sum+=0
在这个写法中,对于每个i,如果prime(i)返回true,表明i是素数,那么将其添加到和(sum)中。否则,添加0(这实际上不会改变和)。
问题:
在这个写法中,如果i不满足素数条件,就会在第一次循环时执行else语句,然后返回true。这会导致错误地将非素数标记为素数。例如,当i=9时,9%2!=0,因此它会执行else语句并返回true,导致9被错误地标记为素数。
第二个写法(正确的写法):
for i in range(m,n): if prime(i): sum+=i
在这个写法中,只有当for循环结束后才返回true。这意味着只有当所有的i都不能整除i时才返回true,从而确保了正确性。如果i不满足素数条件,那么循环将继续到下一个i,不会错误地将非素数标记为素数。
文章推荐
-
Python程序将列表中的所有元素连接成一个字符串
列表是Python中可用的可变数据结构之一,用于存储任何数据类型的数据。它用方括号“[]”表示,列表中的所有元素都用逗号...
Python
23秒前 0 -
学习起来哪个更容易,SQL还是Python?
当今最流行的编程语言是 Python 和 SQL,每种语言都有其独特的优点和缺点。不过,仍有待确定的是哪一种更容易学习。...
Python
58秒前 0 -
Python - 使用切片获取最后K个列表项的总和
在Python中,切片方法允许我们从序列(如字符串、列表或元组)中提取特定元素。它提供了一种简洁灵活的方式来处理较大序列...
Python
2分钟前 0 -
Python程序计算标准差
在本文中,我们将学习如何实现 Python 程序来计算数据集的标准差。考虑在任意坐标轴上绘制的一组值。这些值集的标准偏差...
Python
2分钟前 0 -
使用内置函数的Python程序来反转数组的元素
数组是一种数据结构,用于按顺序存储同质元素。存储的元素由索引值或键来标识。 Python 没有特定的数据结构来表示数组。...
Python
3分钟前 0
最新文章
- Python程序将列表中的所有元素连接成一个字符串 23秒前
- 学习起来哪个更容易,SQL还是Python? 58秒前
- Python - 使用切片获取最后K个列表项的总和 2分钟前
- Python程序计算标准差 2分钟前
- 使用内置函数的Python程序来反转数组的元素 3分钟前
- Python程序检测链表中的循环 4分钟前
- 在Python中,两个字典键的乘积 4分钟前
- 如何使用OpenCV Python创建一张黑色图像和一张白色图像? 5分钟前
- Python和Anaconda之间有什么区别? 6分钟前
- Python - 检查字符串中的所有字符是否都是字母数字? 6分钟前