Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为特定矩阵编写代码?_Python - Fatal编程技术网

Python 如何为特定矩阵编写代码?

Python 如何为特定矩阵编写代码?,python,Python,我的程序的输入是一个整数,表示矩阵的大小(例如,5) 然后,输出将是一个5x5矩阵,其中每行从1开始递增,右边的每个项目比左边的多一个: 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 我如何在Python中做到这一点呢?一个非常简单的代码,不是最好的,但适用于您想要的简单代码 x = int(input()) matrix = "" for i in range(1, x+1): for j in range (

我的程序的输入是一个整数,表示矩阵的大小(例如,5)

然后,输出将是一个5x5矩阵,其中每行从
1
开始递增,右边的每个项目比左边的多一个:

1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

我如何在Python中做到这一点呢?

一个非常简单的代码,不是最好的,但适用于您想要的简单代码

x = int(input())

matrix = ""

for i in range(1, x+1):
  for j in range (i, x+i):
    matrix += f"{j} "
  matrix += "\n"

print(matrix)

试试这个

a=[]
for i in range(0,5):
  for j in range(1,6):
    a.append(i+j);
  print(a)
  a=[]

以下是python的方法:

sz = int(input("Size? "))
print("\n".join([" ".join([str(base + delta + 1) for delta in range(sz)]) for base in range(sz)]))
样本运行包括(对于
4
5
的输入):

当然,我不会把它作为课堂作业交上来,除非你能解释它是如何工作的:-)

就其工作方式而言,它使用列表理解(嵌套)从每个项目中形成每个单独的行,并从行中形成整个矩阵。它还使用
string.join()
将这些列表转换为带有特定分隔符的字符串

表达方式:

[str(base + delta + 1) for delta in range(sz)]
是一个列表理解,它给出了由
base
delta
1
之和构成的整数创建的字符串列表,其中
delta
的范围从
0
sz-1
包含(
base
来自下面的外部理解)

这是我们传递给
“”.join()的内在理解,它将列表中的所有元素连接成一个字符串,其中每个元素用空格分隔

外部理解:

[<joined-inner>) for base in range(sz)]
工作代码:

string=“”
对于范围(1,6)内的i:
对于范围(i,i+5)内的j:
string=string+str(j)+“
打印(字符串)

string=“”
你试过写代码吗?是的,我试过了,我得到了一行输出,我不知道下一行如何打印,但现在已经清楚了☺我理解非python的方式,但我不理解你的python方式,你能解释一下吗
[<joined-inner>) for base in range(sz)]
sz = int(input("Size? "))
for base in range(sz):
    for delta in range(sz):
        print(base + delta + 1, end=" ")
    print()