在Python中使用嵌套循环格式化乘法表



除了列的顶部标签和列标签下面的下划线之外,我已经正确地格式化了所有内容。我怀疑第一个for循环编码错误,但我不知道我做错了什么。

def main():
print("This is a times-table.")
n = int(input("Enter a number: "))

for i in range(1,n+1):
print(" {:3d}".format(i), end='')
print()
for i in range(1, n+1):
print(i, " |{:3d}".format(i), end='')
for x in range(1, n+1):
print("{:3d}".format(i*x), end="")
print()
main()

所需输出

def main():
print("This is a times-table.")
n = int(input("Enter a number: "))

for i in range(1,n+1):
print(" {:3d}".format(i), end='')
print()
for i in range(1, n+1):
print(i, " |{:3d}".format(i), end='')
for x in range(2, n+1):
print("{:3d}".format(i*x), end="")
print()
main()

xfor循环中,您需要从2开始。这是因为,在上面的for循环中,您已经通过声明|{:3d}设置了第一个数字。你可以删除它,或者从2开始。

此外,您可能希望通过将列上方的数字设置在正确的位置来改进这一点。我将为您提供一个到9的表的工作解决方案,为您提供一个良好的开端。

def main():
print("This is a times-table.")
n = int(input("Enter a number: "))

print("   |",end="")
for i in range(1,n+1):
print("{:3d}".format(i), end='')
print()
print("---+-"+"---"*n)
for i in range(1, n+1):
print(i, " |{:3d}".format(i), end='')
for x in range(2, n+1):
print("{:3d}".format(i*x), end="")
print()
main()

现在你的问题是,当乘法超过2位数时如何继续

for row in range(0,10):对于范围(0,10)中的col:Num = row * colIf num <10:空= ";其他:If num <100:空= ";如果col == 0:如果row == 0:打印(";"=")其他:打印(";", row, end= ")Elif row == 0打印(";", col, end= ")其他:Print (empty, num, end= ")print ()

最新更新