2024-10-03 09:10:50 发布
网友
def xPrimes(x) : y = 2 while y < x : if isItPrime(y) == True : y += 1 y += 1 print(primes)
我是python的初学者,在让程序执行所需操作时遇到了问题。我也不完全理解我的程序是做什么的。当我做xPrimes(5)时,它给了我[2,3,5],而不是[2,3,5,7,11]。我的代码把所有素数打印到x,而不是x素数。我怀疑我需要一个计数器,但我不知道在哪里实现它。你知道吗
家庭作业是一次冒险,也是一次实验的机会!你知道吗
首先,你问为什么xPrimes(5)最多给你5分。当y<;x时停止循环,y每次上升。这表明使用小变量名可能会迷路。您可以通过重命名以下内容使代码看起来像这样:
xPrimes(5)
def primes_up_to_number(stop_at) : testing_number = 2 while testing_number < stop_at : if isItPrime(testing_number) == True : testing_number += 1 testing_number += 1 print(primes)
这让我很困惑,因为您无法获得输出[2, 3, 5]。当testing_number为2时,向其中添加一个,然后在再次检查isItPrime之前再添加一个,检查4。我假设isItPrime更新了一些全局数组primes。你知道吗
[2, 3, 5]
testing_number
isItPrime
primes
我想您应该将代码和含义从stop_at更改为number_of_primes。如果是这样,您应该在函数的开始处设置一个计数器number_of_primes_found = 0,并在每次找到素数时向其添加一个计数器。应该更改while循环中的表达式以保持循环,直到找到该数量的素数。你知道吗
stop_at
number_of_primes
number_of_primes_found = 0
while
祝你今天愉快!继续编码!记笔记。你知道吗
什么是素数?你知道吗
你必须把x当作计数器,不要和y比较,因为y是素数而不是计数器
相反,你可以这样做
def xPrimes(x) : y = 2 index = 0 while index < x : if isItPrime(y) == True : y += 1 index+= 1 y += 1 print(primes)
你们可以看到,我用索引作为计数器,当我得到素数时,它就递增
你只需要不断生成素数,直到你有了它们。如果您返回一个结果列表,那么计数器就是该列表的长度。你知道吗
def xPrimes(x: int) -> List[int]: primes: List[int] = [] y = 1 while(len(primes) < x): y += 1 if isItPrime(y): primes.append(y) return primes
注意,y是素数,x是素数的个数,它们是完全不同的数。:)
y
x
家庭作业是一次冒险,也是一次实验的机会!你知道吗
首先,你问为什么
xPrimes(5)
最多给你5分。当y<;x时停止循环,y每次上升。这表明使用小变量名可能会迷路。您可以通过重命名以下内容使代码看起来像这样:这让我很困惑,因为您无法获得输出
[2, 3, 5]
。当testing_number
为2时,向其中添加一个,然后在再次检查isItPrime
之前再添加一个,检查4。我假设isItPrime
更新了一些全局数组primes
。你知道吗我想您应该将代码和含义从
stop_at
更改为number_of_primes
。如果是这样,您应该在函数的开始处设置一个计数器number_of_primes_found = 0
,并在每次找到素数时向其添加一个计数器。应该更改while
循环中的表达式以保持循环,直到找到该数量的素数。你知道吗祝你今天愉快!继续编码!记笔记。你知道吗
什么是素数?你知道吗
你必须把x当作计数器,不要和y比较,因为y是素数而不是计数器
相反,你可以这样做
你们可以看到,我用索引作为计数器,当我得到素数时,它就递增
你只需要不断生成素数,直到你有了它们。如果您返回一个结果列表,那么计数器就是该列表的长度。你知道吗
注意,
y
是素数,x
是素数的个数,它们是完全不同的数。:)相关问题 更多 >
编程相关推荐