擅长:python、mysql、java
<p>您的代码中有多个错误:</p>
<pre><code>if((number % x) == 0):
</code></pre>
<p>现在我们已经完成了<code>number</code>变量的使用,它应该是<code>x % y</code></p>
<pre><code>for y in range(2, x):
if((number % x) == 0):
else:
</code></pre>
<p>这个<code>else</code>属于<code>for</code>,而不是<code>if</code>。我将在下面演示</p>
<pre><code> print(y)
</code></pre>
<p>如果成功,我们应该打印<code>x</code>,而不是<code>y</code>,除数</p>
<pre><code>print(primes_number())
</code></pre>
<p>无需在此处打印,因为<code>primes_number()</code>不会返回任何内容,并且您已经在函数本身中完成了所有打印</p>
<p>这是一个对代码进行最小修改的工作版本:</p>
<pre><code>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()
</code></pre>
<p>我做了一次优化,只测试了整数平方根的除数</p>
<p><strong>输出</strong></p>
<pre><code>% python3 test.py
2
3
5
7
11
13
17
19
23
29
%
</code></pre>