【发布时间】:2012-10-25 21:22:02
【问题描述】:
编写一个程序,提示用户输入一个从 1 到 15 的整数并显示一个金字塔,如以下示例运行所示:
1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
5 4 3 2 1 2 3 4 5
6 5 4 3 2 1 2 3 4 5 6
7 6 5 4 3 2 1 2 3 4 5 6 7
我有以下几点:
num = eval(raw_input("Enter an integer from 1 to 15: "))
if num < 16:
for i in range(1, num + 1):
# Print leading space
for j in range(num - i, 0, -1):
print(" "),
# Print numbers
for j in range(i, 0, -1):
print(j),
for j in range(2, i + 1):
print(j),
print("")
else:
print("The number you have entered is greater than 15.")
这会导致大于或等于 10 的数字出现错位。
我试过 print(format(j, "4d")) 并且所有的数字都没有对齐。
有什么建议吗? 谢谢。
【问题讨论】:
-
您可能正在寻找诸如
str(j).rjust(2, ' ')或str(j).ljust(2, ' ')之类的东西 -
打印以 16 为底的数字,它们都是一位数。对齐问题解决了!