我的任务是创建一个看起来像this的乘法表,其中要求用户在1到9之间输入两个数字。(在用户输入的图片中" rows = 3&#34 ;" col = 5")。
我无法让我的第一排正确,这是一种让我的代码更好的方法吗? "更好"我的意思是只用2个循环来制作整个东西?
编辑:我忘了仅提及WHILE循环,而不是" for"。
row=int(input("number of rows:"))
col=int(input("number of cols:"))
x=1
m=1
amount=col
while amount>0:
print("%5d"%m, end="")
m=m+1
amount-=1
print()
while x<(row+1):
y=1
print(x, end="")
while y<(col+1):
print("%4d"%(x*y), end="")
y=y+1
print("\n")
x=x+1
答案 0 :(得分:0)
在评论中提及@Stewart_R时,很难说出你在寻找什么 - 但打印乘法表的方式更简洁:
row,col = 3,5 # Test case
style = "{:3d}"
print " ",
for j in range(1, col+1):
print style.format(j),
print
for i in range(1, row+1):
print style.format(i),
for j in range(1,col+1):
print style.format(i*j),
print
给出:
1 2 3 4 5
1 1 2 3 4 5
2 2 4 6 8 10
3 3 6 9 12 15
答案 1 :(得分:0)
another way:
for i in range(row+1):
for j in range(col+1):
print('{:4d}'.format(i*j if i*j>0 else i+j) if i+j>0 else '{:4s}'.format(''),end='')
print()
答案 2 :(得分:0)
Juste管理循环中心的所有表格。如果循环的最小值更好,您也可以只有一个循环while i*j <=row*col
。但是for循环是这个问题的最佳解决方案。
row,col=3,5
i=0
while i <= row :
j=0
while j <= col:
if i+j==0 : print('{:4s}'.format(''),end='') #corner
elif i*j==0 : print('{:4d}'.format(i+j),end='') # border
else : print('{:4d}'.format(i*j),end='') # table
j=j+1
print()
i=i+1
答案 3 :(得分:0)
i=0
num=int(input("enter the table number=")
limit=int(input("enter the limit=")
while(i<=limit):
result= num * i
print( num ,"x",i,"=",result)
i=i+1
input("press enter to exit")
答案 4 :(得分:0)
如果您不希望任何表,请运行此代码(Python代码)
i=1
x=int(input("table() "))
while i<=10:
print(i*x)
i=i+1
例如,想要12个桌子 输出量 桌子(12) 12 24 36 48 60 72 84 96 108 120