gpt4 book ai didi

python - 尝试查找素数 Python 时的奇怪输出

转载 作者:行者123 更新时间:2023-12-03 20:00:34 24 4
gpt4 key购买 nike

好吧,我承认我是个菜鸟,我一直在学习关于 udemy 的编程类(class)。问题是要求编写一个函数来查找直到给定数字的所有素数。所以我开始编写以下代码来提取不偶数的数字,以及不能被 3 整除的数字,只是为了开始:

def count_primes(num):
num_list5 = []
for i in range(num + 1):
print(i)
if i % 2 != 0 or i % 3 != 0:
num_list5.append(i)

return num_list5
当我用 100 的数字调用函数时: count_primes(100)在输出中,我得到 num_list5显示范围内除 6 和 6 的倍数外的所有数字: [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14 ...]就像 if 语句在这里执行 AND 操作一样……因为 6 可以被 2 AND 3 整除。这是错误还是什么?或者我没有正确理解和/或操作?
奇怪的是,它曾经在某一时刻工作,在进行更改并恢复之后,它开始这样做......
我正在使用 VSCode 和 Jupyter 笔记本,并在 Ubuntu 20.04 上尝试了 Python 3.8.5 64 位和 3.9.4 64 位

最佳答案

i % 2 != 0 or i % 3 != 0等于 not (i % 2 == 0 and i % 3 == 0) (德摩根定律)
应该是 i % 2 != 0 and i % 3 != 0

关于python - 尝试查找素数 Python 时的奇怪输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67184521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com