2024-04-26 03:06:58 发布
网友
我试图写一个代码,返回每一个素数回文三位数。这是我的密码:
def digpalprim(): for x in range (100,1000): if prime(x)=='prime': if str(x)==str(x)[::1]: return x
我已经定义了素数(x)函数,它工作得很好,这个阶段只是决定x是否是素数。所有的代码都是有效的,只是它只给了我第一个这样的回文。我真的不明白为什么,程序不应该考虑100到1000之间的所有数字吗?请帮忙?你知道吗
函数返回并在找到第一个结果后立即结束。你知道吗
您可能希望将结果添加到列表中,然后打印出列表。你知道吗
当您第一次遇到函数时,您将返回该函数。你知道吗
def digpalprim(): palprimes = [] for x in range (100,1000): if prime(x)=='prime': if str(x)==str(x)[::1]: palprimes.append(x) return palprimes
这将在函数的开头创建一个列表,并将每个有效的回文素数附加到该列表中,然后返回整个列表(在完成所有循环之后),而不是只返回遇到的第一个列表。你知道吗
请记住,如果Python命中一个return语句,它将立即停止函数执行并返回该值,而不考虑您可能要执行的任何其他循环或代码。你知道吗
return
函数一找到第一个这样的回文就返回;return退出函数。你知道吗
在列表中收集您的发现并返回:
def digpalprim(): palindromes = [] for x in range (100,1000): if prime(x)=='prime': if str(x)==str(x)[::1]: palindromes.append(x) return palindromes
或者,您可以通过将return替换为^{} statement,使函数成为生成器:
def digpalprim(): for x in range (100,1000): if prime(x)=='prime': if str(x)==str(x)[::1]: yield x
现在您必须迭代这个函数或使用list()来“拉出”所有值:
list()
all_palindromes(digpalprim())
或者
for palindrome in digpalprim(): print(palindrome)
函数返回并在找到第一个结果后立即结束。你知道吗
您可能希望将结果添加到列表中,然后打印出列表。你知道吗
当您第一次遇到函数时,您将返回该函数。你知道吗
这将在函数的开头创建一个列表,并将每个有效的回文素数附加到该列表中,然后返回整个列表(在完成所有循环之后),而不是只返回遇到的第一个列表。你知道吗
请记住,如果Python命中一个
return
语句,它将立即停止函数执行并返回该值,而不考虑您可能要执行的任何其他循环或代码。你知道吗函数一找到第一个这样的回文就返回;
return
退出函数。你知道吗在列表中收集您的发现并返回:
或者,您可以通过将} statement ,使函数成为生成器:
return
替换为^{现在您必须迭代这个函数或使用
list()
来“拉出”所有值:或者
相关问题 更多 >
编程相关推荐