python3 中如何print循环输出标准矩阵
前言
做拼多多提前批笔试题时,出现不会输出标准矩阵,下去求解后记录一下。
一、解决如下
代码如下(示例):
# 输出调整为矩形,可以按下面的方式
import sys
n = int(input())
nums=[[0 for i in range(n)] for j in range(n)]
for i in range(n):
for j in range(n):
if(i==j or n-i-1== j or(n%2==1 and (i == n//2 or j == n//2))):
continue
if (i<n//2 and j < n/2):
nums[i][j] = 3 if i>j else 2
elif n//2>i and j>= n//2:
nums[i][j]=1 if (n-1-i)>j else 8
elif n // 2 <= i and j < n // 2:
nums[i][j] = 4 if (n - 1 - i) > j else 5
elif n // 2 <= i and j >=n // 2:
nums[i][j] = 6 if i > j else 7
for i in range(n):
for j in range(n):
print(str(nums[i][j]),end=' ')
#错误示范
# print('\n')
#正确
print()
# sys.stdout.write(str(nums[i][j]) + ' ')
#sys.stdout.write('\n')
在加print(’\n’)后的结果:它会多出一个换行,然后赛码网或者牛客的判题系统是认为错误的。
4
0 2 1 0
3 0 0 8
4 0 0 7
0 5 6 0
进程已结束,退出代码 0
(1).
#第一种
for i in range(n):
for j in range(n):
print(str(nums[i][j]),end=' ')
#因为Print('\n')为输出了两个'\n',print()自带的有一个'\n',如果你加上就相当于输出了两个。和要求不符合。
print()
输出结果:
4
0 2 1 0
3 0 0 8
4 0 0 7
0 5 6 0
进程已结束,退出代码 0
(2)
#第二种
for i in range(n):
for j in range(n):
sys.stdout.write(str(nums[i][j]) + ' ')
sys.stdout.write('\n')
输出结果:
4
0 2 1 0
3 0 0 8
4 0 0 7
0 5 6 0
进程已结束,退出代码 0
总结
1和2两种方法可以,只不过2需要import sys。
版权声明:本文为qq_42292196原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。