擅长:python、mysql、java
<p>您的输出不正确;您在楼梯前打印了一条不应存在的空行。您的<code>range()</code>循环从<code>0</code>开始,因此您在第一行打印<code>n</code>空格和零个<code>#</code>字符。</p>
<p>从1开始<code>range()</code>,并且<code>n</code>应该从<code>num_stairs - 2</code>开始(因为<code>print()</code>的多个参数添加了一个空格:</p>
<pre><code>from __future__ import print_function
def staircase(num_stairs):
n = num_stairs - 2
for stairs in range(1, num_stairs):
print(' ' * n, '#' * stairs)
n -= 1
print('#' * num_stairs)
</code></pre>
<p>您可以将其简化为一个循环:</p>
<pre><code>def staircase(num_stairs):
for stairs in range(1, num_stairs + 1):
print(' ' * (num_stairs - stairs) + '#' * stairs)
</code></pre>
<p>注意,我现在使用连接来组合空格和<code>#</code>字符,以便在循环的最后一次迭代中打印零空格和<code>num_stairs</code><code>#</code>字符。</p>
<p>最后但并非最不重要的是,您可以使用<a href="https://docs.python.org/3/library/stdtypes.html#str.rjust" rel="nofollow noreferrer">^{<cd12>} method</a>(简称“右对齐”)来提供空间:</p>
<pre><code>def staircase(num_stairs):
for stairs in range(1, num_stairs + 1):
print(('#' * stairs).rjust(num_stairs))
</code></pre>