正确对齐python

Right Justify python

如何证明此代码的输出是正确的?

1
2
3
4
5
6
7
N = int(input())
case = '#'
print(case)

for i in range(N):
    case += '#'
    print(case)


你可以用format>来右对齐

1
2
3
N = 10
for i in range(1, N+1):
    print('{:>10}'.format('#'*i))

产量

1
2
3
4
5
6
7
8
9
10
         #
        ##
       ###
      ####
     #####
    ######
   #######
  ########
 #########
##########

你也可以通过编程计算出使用rjust的正确性。

1
2
for i in range(1, N+1):
    print(('#'*i).rjust(N))

似乎你在找Rjust:

https://docs.python.org/2/library/string.html string.rjust

1
2
3
my_string = 'foo'
print my_string.rjust(10)
'       foo'


string.format()方法将此作为其语法的一部分。

1
print"{:>10}".format(case)

字符串中的数字告诉python字符串应该有多少个字符,即使它大于EDOCX1的长度(4)。大于号告诉它,在这个空间里,右对齐case


1
2
3
N = int(input())
for i in range(N+1):
    print(""*(N-i) +"#"*(i+1))

打印正确的空格数,后跟正确的""字符数。


使用F-string和join的一个衬板:

1
2
print("
"
.join([f"{'#' * i:>10}" for i in range(1, 11)]))

输出:

1
2
3
4
5
6
7
8
9
10
         #
        ##
       ###
      ####
     #####
    ######
   #######
  ########
 #########
##########

如果要包括行号,可以执行以下操作:

1
2
print("
"
.join([f"{i:<3}{'#' * i:>10}" for i in range(1, 11)]))

输出:

1
2
3
4
5
6
7
8
9
10
1           #
2          ##
3         ###
4        ####
5       #####
6      ######
7     #######
8    ########
9   #########
10 ##########