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