您是否在每行的开头打印一个额外的字符? - 主要错误左对齐金字塔

Are you printing an additional character at the beginning of each line? - main error left aligned pyramid

我目前在 cs50 的 pset6,mario-less。我的代码按照问题的要求编译并打印了左对齐的金字塔,但是当我执行 check50 时,大多数都失败了。有什么问题?

from cs50 import get_int

# Ask user for input
n = get_int("Height: ")

# While loop to check condition
while n < 1 or n > 8:
    print("Invalid number ")
    n = get_int("Enter another number: ")

# One for loop to prin left sided piramid
for j in range(1, n + 1):
    spaces = n - j + 1
    print(" " * spaces + "#" * j)

按照目前的情况,对于 n == 5,您的代码将打印:

     #
    ##
   ###
  ####
 #####

但是,我们希望避免在每一行的开头出现额外的 space 并得到:

    #
   ##
  ###
 ####
#####

因此只需将要添加的 space 的数量减少 1:

# One for loop to print left sided pyramid
for j in range(1, n + 1):
    spaces = n - j
    print(" " * spaces + "#" * j)