2011-11-03 48 views
-3

我有这个问题---Python中的乘法表

编写代码将打印10个正整数的乘积表和10个正整数下行。提示用户输入列和行的起始值。

我试图从另一个问题,不打印像Id期望它的一些解释。我在哪里调用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 

很抱歉的重复后,我没有知道这是不好的礼节

+3

[Python用户输入和乘法表]的可能重复(http://stackoverflow.com/questions/7990991/python-user-input-and-multiplication-table) – agf

回答

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

和尖端内部完成后,它应该是重置为出发点:如果您遇到像这样的问题,得到一张纸,放下简单和小的起始值:row = 1,col = 1,最多3个,而不是10个。手工一步一步地重现您的算法。

+0

谢谢我不明白,行增量是在第一时间,而我只是忘记,我将不得不保存初始值,编码对我来说依然陌生, – user1020349

3

(1)您的col变量没有得到每个新行的重置。 它只是一直递增。

也许使用另一对变量,如rc作为迭代本身。

或者将原始行和列存储在不同名称的变量中。 (2)最后两行的缩进似乎是错误的 - 它不应该在第一个while循环中吗?

(3)您不需要太多的打印语句。 您应该只需要在内部循环中打印一条语句,而另一条(空的)就可以结束每一条线。

更新:请不要发布重复的问题

+0

在这里修正了缩进错字,所以我需要将原始行和列存储在循环外部? – user1020349

+0

@ user1020349:是的。见斯坦尼斯拉夫的答案。 – jwd

+0

对不起有关重复帖子,我不知道那是不好的礼节 – user1020349