Python 素数函数,返回函数
为什么程序在这里看到问题?Python 素数函数,返回函数,python,primes,Python,Primes,为什么程序在这里看到问题? 当我删除其他内容时:我只有“none”作为输出,这很奇怪。如果,您需要在下添加一些内容。Python需要代码。如果不想在那里添加任何内容,可以使用pass 这将使您的代码如下所示: line 9 else: ^ IndentationError: expected an indented block 这里是更干净的版本; a) 已删除函数输出的打印,因为未返回任何输出 b) 跟踪primeDict(字典)中的所有素数 输出 def primes_nu
当我删除其他内容时:我只有“none”作为输出,这很奇怪。如果,您需要在
下添加一些内容。Python需要代码。如果不想在那里添加任何内容,可以使用pass
这将使您的代码如下所示:
line 9
else:
^
IndentationError: expected an indented block
这里是更干净的版本;
a) 已删除函数输出的打印,因为未返回任何输出
b) 跟踪primeDict(字典)中的所有素数
输出
def primes_number(number = 5):
primesDict = {}
for x in range(1, number):
for y in range(2, x):
if((number % x) != 0):
if y in primesDict : continue
primesDict[y] = x
print(y)
print(primes_number(number=7))
您的代码中有多个错误:
2
3
4
5
print(primes_number())
至此,我们已经完成了number
变量,它应该是x%y
if((number % x) == 0):
此else
属于for
的,而不是if
。我将在下面演示
for y in range(2, x):
if((number % x) == 0):
else:
如果成功,我们应该打印x
,而不是y
,除数
print(y)
无需在此处打印,因为primes\u number()
不会返回任何内容,并且您已经在函数本身中完成了所有打印
这是一个对代码进行最小修改的工作版本:
2
3
4
5
print(primes_number())
我做了一次优化,只测试了整数平方根的除数
输出
def primes_number(number=30):
for x in range(2, number):
for y in range(2, int(x ** 0.5) + 1):
if x % y == 0:
break
else: # no break
print(x)
primes_number()
如果If
中没有任何内容,则必须在If
主体中使用pass
。Python不允许空块。在if
中添加pass
语句。重复:主print
打印方法返回的内容,由于该方法没有return
,因此从上下文中猜测该程序是关于素数的,4不是素数,不应该在primeDict
中,也不应该打印。您的输出还包括一个尾随的None
,上面未显示。
% python3 test.py
2
3
5
7
11
13
17
19
23
29
%