我对Python还不熟悉。我有一个问题问如下
编写lst_prime()
函数:
我应该匹配的输出答案是:
>>> lst_prime(0)
[]
>>> lst_prime(6)
[2, 3, 5]
>>> lst_prime(11)
[2, 3, 5, 7, 11]
这是我目前的代码。你知道吗
def lst_prime(n):
def is_prime(m):
for i in range(2, m):
if n % i == 0:
return True
return False
for i in range(n-1, 1, -1):
if is_prime(i) == True:
return i
它没有给我正确的输出,它给我一个错误消息,说is_prime
没有定义。有人能帮我吗?非常感谢。你知道吗
更接近你所追求的:
代码:
测试:
对我来说,这个输出:
问题主要出在你的
if n % i == 0:
我想,但是你的True
和False
也有问题……你应该试着用print()
语句来调试这些东西(我把我的一个例子放在那里作为一个如何调试的例子),还可以用描述性变量名(而不是i
两次,以及非常有用的n
和m
……)。我想你没有意识到你每次通过你的内部循环都在和同一个数字做比较。你知道吗相关问题 更多 >
编程相关推荐