我有这个问题---
编写代码,打印一个乘法表,列中的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
对于重复的帖子感到抱歉,我不知道这是不礼貌
答案 0 :(得分:3)
(1)您的col
变量未针对每个新行重置。
它总是递增。
可能会使用另一对变量,例如r
和c
来进行迭代。
或者将原始行和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
代码中的问题:
col
在第一周期迭代结束时保持lastCol
值。它应该重置为每行后的起始点print
row
增量应在第一个while
并提示:如果你遇到这样的问题,拿一张纸,放下简单的小起始值:row = 1,col = 1,最多3个而不是10个。并逐步手动重现您的算法。