某程序功能如下:输入n,生成n*n的方阵,存于列表a,内容为1至9的随机整数。再对以(x0,y0)和(x1, y1)为对角顶点的矩形区域中的数据进行水平翻转,并将变换后的二维数组以矩阵形式输出。再输入小于n的四个数字(如a,b,c,d,四者关系必须满足a<c,b<d),用逗号间隔: 2,1,6,5 则左上角为a[1][2] ,右下角为a[5][6],则运行程序后,运行界面如图所示。
(1)
以上图为例,如果输入左上角+右下角的坐标为:2,3,7,5。水平翻转后,则元素a[3][4]的值在新数组保存在元素a[][](填写下标)中。
(2)
代码如下并完成填空。
#生成n*n的矩阵
import random
n=int(input(‘输入n,产生n*n的方阵:’ ))
a=[[random.randint(1,9) for i in range(n)] for j in range(n)]
for i in a:
print(i)
print( )
x,y=[],[]
xy=input("请输入左上角+右下角坐标:") #输入左上角坐标+右下角坐标,用逗号分隔数字。如:"2,1,14,13"
xy=xy+","
c,j=0,0
for i in range(len(xy)):
if xy[i]==",":
if :
x.append(int(xy[j:i]))
else:
y.append(int(xy[j:i]))
c=c+1
for i in range(y[0],y[1]+1,1):
for j in range(x[0],(x[0]+x[1])//2+1,1):
a[i][j],a[i][]=a[i][],a[i][j]
for i in range(len(a)):
print(a[i])
答案: 【1】3【2】5
【1】c%2==0 或c%2!=1 或其他等价答案【2】j=i+1【3】x[0]+x[1]-j【4】x[0]+x[1]-j