Python中的数字对齐

时间:2020-06-08 00:04:18

标签: python

说明:编写一个程序来生成数字1-10的乘法表。使用两个for循环来完成您的程序。您将需要在另一个for循环中放置一个for循环。作为额外的挑战,请看是否可以使缩进看起来正确。因此,程序的输出应为:

enter image description here

我的代码:

# Start a for loop from 1 to 10.

for num1 in range(1, 10):

# Start a nested loop from 1 to 10.

    for num2 in range(1, 10):

    # Display the multiplication for each value of num.

        print('%4d'%(num1*num2), end = '')

# Display new line after inner for loop finished.

print()

数字必须像上面说明中的图片一样对齐。我的只是直射整个屏幕。我不确定自己在做什么错。

这是我的样子:

enter image description here

5 个答案:

答案 0 :(得分:1)

您可以这样操作:

for num1 in range(1, 10):
    print()
    for num2 in range(1, 10):
        if len(str(num1*num2)) == 1:
            print(" "+str(num1*num2),end = ' ')
        else:
            print(str(num1*num2),end = ' ')

输出:

 1  2  3  4  5  6  7  8  9 
 2  4  6  8 10 12 14 16 18 
 3  6  9 12 15 18 21 24 27 
 4  8 12 16 20 24 28 32 36 
 5 10 15 20 25 30 35 40 45 
 6 12 18 24 30 36 42 48 54 
 7 14 21 28 35 42 49 56 63 
 8 16 24 32 40 48 56 64 72 
 9 18 27 36 45 54 63 72 81 

答案 1 :(得分:1)

您忘记打印(“ \ n”)。

# Start a for loop from 1 to 10.

for num1 in range(1, 10):

# Start a nested loop from 1 to 10.

    for num2 in range(1, 10):

    # Display the multiplication for each value of num.

        print('%4d'%(num1*num2), end = '')

    # Display new line after inner for loop finished.

    print("\n") # change made here

答案 2 :(得分:1)

作为额外的挑战,请看是否可以看到缩进 正确。

我相信以下两种方法都能最准确地复制示例表,没有多余的前导或内部空格,并且与其他答案相比,这是最简单的实现方式:

for row in range(1, 10):
    for col in range(1, 10):
            print(('{:1}' if col == 1 else '{:2}').format(row * col), end=' ')
    print()

输出

> python3 test.py
1  2  3  4  5  6  7  8  9 
2  4  6  8 10 12 14 16 18 
3  6  9 12 15 18 21 24 27 
4  8 12 16 20 24 28 32 36 
5 10 15 20 25 30 35 40 45 
6 12 18 24 30 36 42 48 54 
7 14 21 28 35 42 49 56 63 
8 16 24 32 40 48 56 64 72 
9 18 27 36 45 54 63 72 81 
>

答案 3 :(得分:0)

for num1 in range(1, 10):
    for num2 in range(1, 10):
        print('%4d'%(num1*num2), end = '')
    print('\r') # this is what I added to your code

我添加了当第二个循环用完要打印的元素时打印新行的行

答案 4 :(得分:0)

以下代码在第二个循环打印完一行后的第一个循环中添加了新行。这应该符合您的需求。

# Start a for loop from 1 to 10.

for num1 in range(1, 10):

# Start a nested loop from 1 to 10.

    for num2 in range(1, 10):

    # Display the multiplication for each value of num.

      print('%4d'%(num1*num2), end = '')
    print ('\n')
# Display new line after inner for loop finished.
相关问题