Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的数字对齐_Python - Fatal编程技术网

Python中的数字对齐

Python中的数字对齐,python,Python,说明:编写一个程序,生成数字1-10的乘法表。使用两个for循环来完成程序。您需要将一个for循环置于另一个for循环的内部。作为一个额外的挑战,看看你是否能让缩进看起来正确。因此,程序的输出应为: 我的代码: # 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 t

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

我的代码:

# 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()
数字需要像上面说明中的图片一样对齐。我的就直接从屏幕上射过去。我不确定我做错了什么

下面是我的照片:


您可以这样做:

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 

您可以这样做:

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 
我添加了一行,当第二个循环没有要打印的元素时,它会打印新行

我添加了一行,当第二个循环没有要打印的元素时,它会打印新行。

您忘记打印了\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
您忘记打印了\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

以下代码在第二个循环打印行后,在第一个循环中添加新行。这应该符合你的需要

# 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.

以下代码在第二个循环打印行后,在第一个循环中添加新行。这应该符合你的需要

# 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.
作为一个额外的挑战,看看你是否能看到缩进 对

我认为以下两种方法最准确地再现了示例表,没有额外的前导或内部空格,与其他答案相比是最简单的实现:

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

作为一个额外的挑战,看看你是否能看到缩进 对

我认为以下两种方法最准确地再现了示例表,没有额外的前导或内部空格,与其他答案相比是最简单的实现:

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


您说在内部for循环完成后显示新行。然后在下面打印一份声明。你能解释一下打印语句的目的吗?@Ann编辑出错了。这显示了所需的输出而不是实际的输出,下面是我的输出:修复了错误的编辑对不起,我找不到另一个图像。为什么不在第二个循环后打印“\n”?您说在内部for循环完成后显示新行。然后在下面打印一份声明。你能解释一下打印语句的目的吗?@Ann编辑出错了。这显示了所需的输出而不是实际的输出,如下所示:修复了不正确的编辑对不起,我找不到其他图像。为什么不在第二个循环后打印“\n”?这会生成不需要的空行,您应该使用\r而不是\n这会生成不需要的空行,您应该使用\r而不是\n谢谢您的回复。谢谢您的回复。