Right Justify python
如何证明此代码的输出是正确的?
1 2 3 4 5 6 7 | N = int(input()) case = '#' print(case) for i in range(N): case += '#' print(case) |
你可以用
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 | # ## ### #### ##### ###### ####### ######## ######### ########## |
你也可以通过编程计算出使用
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' |
1 | print"{:>10}".format(case) |
字符串中的数字告诉python字符串应该有多少个字符,即使它大于EDOCX1的长度(4)。大于号告诉它,在这个空间里,右对齐
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 ########## |