Python 如何制作乘法表的while循环?
我正在尝试创建一个乘法图,其中包含一个while循环,但是我很难得到预期的输出 我已经尝试了我能想到的一切。我是新来的编码世界Python 如何制作乘法表的while循环?,python,python-3.x,for-loop,while-loop,Python,Python 3.x,For Loop,While Loop,我正在尝试创建一个乘法图,其中包含一个while循环,但是我很难得到预期的输出 我已经尝试了我能想到的一切。我是新来的编码世界 #While loop print('While Loop') print() x = 1 y = 1 z = 1 while x <= 12: print(x ,end='\t') x += 1 while y <= 12: print('\n') print(y,'\t') y += 1 w
#While loop
print('While Loop')
print()
x = 1
y = 1
z = 1
while x <= 12:
print(x ,end='\t')
x += 1
while y <= 12:
print('\n')
print(y,'\t')
y += 1
while z <= 12:
print(x*z ,end='\t')
z += 1
z = 0
x = 1
#While循环
打印(‘While循环’)
打印()
x=1
y=1
z=1
while x简短回答:计算乘积时使用x*z
,但使用y
作为“行计数器”和z
作为“列计数器”,因此它应该是y*z
。此外,您应该在内部while
循环之后增加y
由于使用y
作为“行计数器”,使用z
作为“列计数器”,因此应打印y*z
作为特定乘法的答案。此外,您过早地增加了y
:您应该在while
循环之后增加它,并将z
重置为1,如:
print('While Loop')
print('x', end='\t') # print a cross
x = 1
while x <= 12:
print(x ,end='\t')
x += 1
y = 1
while y <= 12:
print('')
print(y,end='\t')
z = 1 # reset to 1
while z <= 12:
print(y*z ,end='\t') # use y * z
z += 1
y += 1 # incerement after while loop
print()
或在函数中:
def mulgrid(n):
print('x', end='\t')
print('\t'.join(str(i) for i in range(1, n+1)))
for r in range(1, n+1):
print(r, end='\t')
print('\t'.join(str(r*c) for c in range(1, n+1)))
例如:
>>> mulgrid(1)
x 1
1 1
>>> mulgrid(2)
x 1 2
1 1 2
2 2 4
>>> mulgrid(5)
x 1 2 3 4 5
1 1 2 3 4 5
2 2 4 6 8 10
3 3 6 9 12 15
4 4 8 12 16 20
5 5 10 15 20 25
>>> mulgrid(7)
x 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7
2 2 4 6 8 10 12 14
3 3 6 9 12 15 18 21
4 4 8 12 16 20 24 28
5 5 10 15 20 25 30 35
6 6 12 18 24 30 36 42
7 7 14 21 28 35 42 49
你不应该使用y*z
而不是x*z
?这是一个二维图表,所以你只需要x
,y
@johnnymappx
是标题行,y
和z
是图表。你需要在第一个循环之前打印x\t
,要在角上创建十字,我必须创建两个带有for和while循环的图表。我已经做了for循环,所以我只是停留在while循环上。将其切换为y*z确实有帮助,但图表顺序仍然很奇怪。@Megan:如前所述,您应该将y*z相乘,并在内部循环后增加y
,而循环仍然不起作用<代码>1(单独)在第三行和1 2 3…
在下一行,等等,我将打印('\n')
替换为打印(''')
,以获得更紧凑的格式
>>> mulgrid(1)
x 1
1 1
>>> mulgrid(2)
x 1 2
1 1 2
2 2 4
>>> mulgrid(5)
x 1 2 3 4 5
1 1 2 3 4 5
2 2 4 6 8 10
3 3 6 9 12 15
4 4 8 12 16 20
5 5 10 15 20 25
>>> mulgrid(7)
x 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7
2 2 4 6 8 10 12 14
3 3 6 9 12 15 18 21
4 4 8 12 16 20 24 28
5 5 10 15 20 25 30 35
6 6 12 18 24 30 36 42
7 7 14 21 28 35 42 49