【发布时间】:2015-10-02 01:34:30
【问题描述】:
如何证明这段代码的输出是正确的?
N = int(input())
case = '#'
print(case)
for i in range(N):
case += '#'
print(case)
【问题讨论】:
-
你能显示你想要的输出吗?
标签: python python-3.x
如何证明这段代码的输出是正确的?
N = int(input())
case = '#'
print(case)
for i in range(N):
case += '#'
print(case)
【问题讨论】:
标签: python python-3.x
您可以使用format 和> 来右对齐
N = 10
for i in range(1, N+1):
print('{:>10}'.format('#'*i))
输出
#
##
###
####
#####
######
#######
########
#########
##########
您也可以使用rjust 以编程方式计算右对齐的距离。
for i in range(1, N+1):
print(('#'*i).rjust(N))
【讨论】:
看来您可能正在寻找 rjust:
https://docs.python.org/2/library/string.html#string.rjust
my_string = 'foo'
print my_string.rjust(10)
' foo'
【讨论】:
string.format() 方法将此作为其语法的一部分。
print "{:>10}".format(case)
字符串中的数字告诉python字符串应该有多少个字符,即使它大于case的长度。大于号告诉它在该空间内右对齐case。
【讨论】:
N = int(input())
for i in range(N+1):
print(" "*(N-i) + "#"*(i+1))
打印正确数量的空格,后跟正确数量的“#”字符。
【讨论】:
一个使用 f-string 和 join 的衬垫:
print("\n".join([f"{'#' * i:>10}" for i in range(1, 11)]))
输出:
#
##
###
####
#####
######
#######
########
#########
##########
如果您想包含行号,您可以执行以下操作:
print("\n".join([f"{i:<3}{'#' * i:>10}" for i in range(1, 11)]))
输出:
1 #
2 ##
3 ###
4 ####
5 #####
6 ######
7 #######
8 ########
9 #########
10 ##########
【讨论】: