编写一个程序,提示用户输入起始和结束数字,并显示起始和结束之间的素数列表



我正在尝试将python is_prime文件导入到python程序中,prime_between,并使用is_prim((函数显示两个数字之间的素数列表。程序应该返回一个介于"0"one_answers"0"之间的素数列表;"开始";以及";结束";包括数字。使用";列表累加器模式";以建立包含素数的列表。

def is_prime(num):
if num <= 1:
return False
for n in range(2, num):
if num % n == 0:
return False
return True
if __name__ == "__main__":
num = int(input("Enter a number: "))
if is_prime(num):
print(f"{num} is a prime number")
else:
print(f"{num} is not a prime number")

"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot"quot;

import prime
def prime_between(start, end):
# Complete the prime_between function.
prime_list = []
for i in (start, end):
x = prime(i)
if x == "prime":
prime_list.append(i)
return prime_list

# Complete the main program.
if __name__ == "__main__":
start = int(input("Enter the start number: "))
end = int(input("Enter the end number: "))
lst = prime_between(start, end)
if len(lst) == 0:
print("There are no prime numbers from", start, "to", end)
else:
print("The prime numbers from", start, "to", end, "are: ", lst)

当我运行它时,我得到了

File "/home/prime_between.py", line 26, in <module>
lst = prime_between(start, end)
File "/home/prime_between.py", line 17, in prime_between
x = prime(i) 
TypeError: 'module' object is not callable
import prime
def prime_between(start, end):
# Complete the prime_between function.
prime_list = []
for i in range(start, end):
prime_list = []
for i in (start, end):
x = prime.is_prime(i)
if x is True:
prime_list.append(i)
return prime_list

您需要从素数模块调用函数,并将其分配给变量,然后检查返回值。

导入函数:

from prime import is_prime
...
x = is_prime(i)
...

当您import prime时,您正在导入该模块内的所有函数(该模块是文件prime.py(。有关导入的更好概述,请查看本指南。

要使用模块中的代码,请使用x = prime.is_prime(i)而不是x = prime(i)

另一个问题是,在下面的if语句中,您检查它是否等于"prime",但is_prime函数返回True或False。一个快速的解决方案是if x:,因为x将是一个布尔值。

最新更新