擅长:python、mysql、java
<p>这不是错误。您在<code>print(...)</code>中的语句是一个生成器表达式—它的字符串表示形式被打印出来—这就是您认为的“错误”。你知道吗</p>
<p>您可以将其输入到列表中进行转换:</p>
<pre><code>print(list(i**2 for i in range(int(input()))))
</code></pre>
<p>或者通过迭代:</p>
<pre><code>print(*(i**2 for i in range(int(input()))))
</code></pre>
<p>最后一个将导致输出(对于<code>input() = 5</code>):</p>
<pre><code>0 1 4 9 16
</code></pre>
<p>由于生成器的每个结果都被传递到print,并使用默认的<code>sep=' '</code>进行打印,您可以将其更改为<code>'\n'</code>-请参阅pm2ring的文章</p>