创建一个程序,它取2位数,X,Y作为输入,并生成一个二维数组

时间:2017-12-14 10:07:25

标签: python

我需要将row(x)column(y)的数量作为用逗号等分隔的用户输入,并从中创建一个2D数组。 其中array[x][y]=x*j

这就是我想要的:

userInput = raw_input("Enter values for row and column number:\t").split(",")
for x in range(userInput):
    for y in range(userInput[x]):
        userInput[x][y]=x*y
        print(userInput[x][y])

2 个答案:

答案 0 :(得分:1)

您的代码存在一些问题。

当您阅读用户输入时,您会获得字符串。如果您想对该输入进行算术运算,则必须将其转换为数字。

您的代码有点令人困惑,因为您使用userInput作为初始用户输入,但之后您尝试将其用于您正在构建的数字网格。

您尝试在userInput[x][y]存在之前设置它,这样就无法运行了。使用Python列表的常用方法是在其末尾添加内容。

这是您的代码的修改版本。

from __future__ import print_function

user_input = raw_input("Enter values for row and column number: ")
rows, cols = user_input.split(",")
rows = int(rows)
cols = int(cols)

grid = []
for x in range(rows):
    row = []
    for y in range(cols):
        row.append(x * y)
    grid.append(row)
    print(row)

print()
print(grid)

<强>演示

Enter values for row and column number: 4,5
[0, 0, 0, 0, 0]
[0, 1, 2, 3, 4]
[0, 2, 4, 6, 8]
[0, 3, 6, 9, 12]

[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12]]
顺便说一下,既然你刚刚开始学习Python,你应该学习Python 3.如果你真的需要,你可以回去学习老式的Python 2。

答案 1 :(得分:0)

您可以使用嵌套列表解析来完成:

X, Y = raw_input("Enter values for row and column number:\t").split(",")

X = int(X)
Y = int(Y)
array = [[x*y for y in range(Y)] for x in range(x)]

第一行将为行和列输入的值绑定到XY。这些是字符串,因此它们将转换为整数以便在range()中使用。最后,列表理解创建了&#34;数组&#34;表示为列表清单。