Python中的乘法表

时间:2011-11-03 17:17:21

标签: python algorithm math

我有这个问题---

编写代码,打印一个乘法表,列中的10个正整数和10个正整数。提示用户输入列和行的起始值。

我尝试从另一个问题做出一些解释之后,这个问题不会像我期望的那样打印出来。我在哪里调用print语句以及迭代的错误

row = int(raw_input("Enter the first row number: "   ))
col = int(raw_input("Enter the frist column number: "))

lastRow = row + 10
lastCol = col + 10


while (row < lastRow):
    print "%4d" % (col * row) 
    while(col < lastCol):

       print "%4d" % (col * row),
       col += 1

    print "%4d" % (col * row) 
    row += 1

这是第二次,更好,但不是我认为的

     row = int(raw_input("Enter the first row number: "   ))
     col = int(raw_input("Enter the frist column number: "))

     lastRow = row + 10
     lastCol = col + 10

    x=row
    y=col

    while (x < lastRow):
        while(y < lastCol):
            y += 1
            print "%4d" % (y * x)
       x += 1

对于重复的帖子感到抱歉,我不知道这是不礼貌

2 个答案:

答案 0 :(得分:3)

(1)您的col变量未针对每个新行重置。 它总是递增。

可能会使用另一对变量,例如rc来进行迭代。

或者将原始行和col存储在不同命名的变量中。

(2)你最后两行的缩进似乎是错误的 - 它不应该在第一个while循环内吗?

(3)你不需要那么多的印刷文件。 你应该只需要在内部循环中使用一个print语句,而另一个(空的)则需要结束每一行。

更新:请勿发布重复的问题

答案 1 :(得分:0)

快速编辑可以解决问题:

row = int(raw_input("Enter the first row number: "   ))
col = int(raw_input("Enter the frist column number: "))

lastRow = row + 5
firstCol = col
lastCol = col + 5

while (row < lastRow):
    while(col < lastCol):
        print "%4d" % (col * row),
        col += 1

    col = firstCol
    row += 1
    print

代码中的问题:

  1. col在第一周期迭代结束时保持lastCol值。它应该重置为每行后的起始点
  2. 太多不必要的print
  3. row增量应在第一个while
  4. 内完成

    并提示:如果你遇到这样的问题,拿一张纸,放下简单的小起始值:row = 1,col = 1,最多3个而不是10个。并逐步手动重现您的算法。