首页 > 解决方案 > 使用细节构建 n x n 网格

问题描述

这是一个家庭作业问题,只是把它放在那里。

我正在尝试构建一个 n x n 网格,其中第 r 行和第 c 列中的数字应该是 r * c 的最后一个数字(我也不明白这是在问什么,所以我也卡住了那里)。n 由用户提供。

我的主要问题是我无法让网格按我想要的方式工作。

到目前为止,这是我的代码:

# get dimension of the digit box
reply = input( "Enter integer: " )
n = int( reply )

# print an n-by-n grid one row at a time.
for r in range(0, n):
    # handle printing of the row r entries for the digit box
    print(r, end=" ")
    print()
    for c in range(0, n):
        cell = (r * c) % 10
        print(c, end=" ")
    print()

这就是它返回的结果(本次运行中 n = 4):

Enter integer: 4
0 
0 1 2 3 
1 
0 1 2 3 
2 
0 1 2 3 
3 
0 1 2 3 

我不明白为什么这是它返回的内容,或者如何让它做我想要的。我知道如果我想获得它要求的数字,我必须使用%运算符,但我不太清楚如何使用它或在哪里使用它,所以我希望到目前为止我做得对。

提前致谢!

编辑:网格应该是这样的:

Enter integer: 4

0 0 0 0 

0 1 2 3 

0 2 4 6 

0 3 6 9 

标签: pythonfor-loop

解决方案


您正在打印 c 而不是单元格,并且还打印 r。这就是你的代码应该是这样的:

# get dimension of the digit box
reply = input("Enter integer: ")
n = int(reply)

# print an n-by-n grid one row at a time.
for r in range(0, n):
    # handle printing of the row r entries for the digit box
    # print(r, end=" ") REMOVE THIS
    print()
    for c in range(0, n):
        cell = (r * c) % 10
    #   print(c, end=" ") REMOVE THIS
        print(cell, " ")
    print()

推荐阅读