我正在尝试将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将是一个布尔值。