Python乘法表只有while循环

时间:2015-04-24 20:12:19

标签: python python-3.x while-loop format

我的任务是创建一个看起来像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

5 个答案:

答案 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