我有一个编码分配来输入行和列长度,并创建一个功率表。以下示例适用于5行,5列。
到目前为止我的代码打印了正确的行数和列数,但我无法使计算工作。它只显示一张1,五乘五的表。
rows = int(input("Enter a number of rows: "))
cols = int(input("Enter a number of columns: "))
x = 1
y = 1
z = 1
line = ""
while x <= cols :
line = line + format(y**cols, "4d")
x = x + 1
while z <= rows :
print(line)
z = z + 1
答案 0 :(得分:1)
基本问题是您需要嵌套循环。你的第二个问题是你永远不会改变y
。您目前所做的是将1
的电源序列计算为五个不同的行 - 然后再打印最后一行五次。尝试两处更改:
更改后:
while z <= rows:
while x <= cols:
line = line + format(x**cols, "4d") # Note the variable change
x = x + 1
print(line)
z = z + 1
另外,查看for
语句,因为这会简化操作。之后,查找list comprehension
以获得更多压缩。
答案 1 :(得分:0)
相反,尝试在Python中创建2D数组,例如2D列表。
Matrix = [[0 for x in range(5)] for y in range(5)]
for i in range(5):
for j in range(5):
Matrix[i][j]=j^i
然后,使用嵌套的for
循环打印您需要的数据。
for i in range (5):
for j in range(5):
print(Matrix[j][i])
答案 2 :(得分:0)
这是一种无论如何都可以保留填充的方法:
def grid(rows, cols, padding):
max_num_len = len(str(rows**cols))
return '\n'.join([
''.join(['{{:>{}}}'.format(max_num_len+padding).format((row+1)**(col+1))
for col in range(cols)])
for row in range(rows)
])
print(grid(5, 5, 3))