Python rjust() 不起作用?

Jos*_*lar 4 python

嗨,我只是在玩弄 python 并练习打印内容和格式化内容。我想做的是读入一个数字并打印出与该数字对应的星号。例如,如果输入为 5,则输出将为:

*****
 ****
  ***
   **
    *
Run Code Online (Sandbox Code Playgroud)

(注意是右对齐)

下面是我的代码,它只是打印出来

*****
****
***
**
*
Run Code Online (Sandbox Code Playgroud)

当输入为5时。

a = input()
star = "*"
for num in reversed(range(1,a+1)):
    print (star*num).rjust(num)
Run Code Online (Sandbox Code Playgroud)

我意识到,如果我将最后一行的 num 更改为常量整数,代码可以正常工作,但我希望每行的填充与输入数字相同,因此它会针对每个不同的数字而变化。当前的问题是什么?如何解决?

已编辑------ 哎呀!弄清楚了!它必须是 print (star*num).rjust(a) 而不是 num!这只是一个愚蠢的问题:p

che*_*ner 5

的参数必须是最长rjust字符串的长度,而不是当前字符串。

print (star*num).rjust(a)
Run Code Online (Sandbox Code Playgroud)