我在python3中编写代码
mat=[]
r,c=input().split()
r=int(r)
c=int(c)
x=0
for i in range(r):
mat.append([])
for j in range(c):
x=x+1
mat[i].append(x)
print(mat[i][j], end=" ")
print()
输入:
3 1
预期输出:
1\n 2\n 3
我的输出:
1\n 2\n 3\n
如何更正它,请帮忙
答案 0 :(得分:1)
假设lastVariable持有"1\n 2\n 3\n"
。您可以重新分配
lastVariable = lastVariable.rstrip('\n')
答案 1 :(得分:0)
或使用sys.stdout
:
import sys
mat=[]
r,c=map(int,input().split())
x=0
bool_=False
for i in range(r):
if bool_:
print()
bool_=True
for j in range(c):
x=x+1
mat.append(x)
sys.stdout.write('%s '%mat[i])
答案 2 :(得分:0)
您将在每次迭代结束时输出换行符。相反,您可以在每次迭代的开始输出换行符,但是仅在mat
列表不为空的情况下才从第二次迭代开始输出:
mat=[]
r,c=input().split()
r=int(r)
c=int(c)
x=0
for i in range(r):
if mat:
print()
mat.append([])
for j in range(c):
x=x+1
mat[i].append(x)
print(mat[i][j], end=" ")
答案 3 :(得分:0)
只需在循环末尾保留一个if条件,以免最后一次迭代使用换行符。
mat=[]
r,c=input().split()
r=int(r)
c=int(c)
x=0
for i in range(r):
mat.append([])
for j in range(c):
x=x+1
mat[i].append(x)
print(mat[i][j], end=" ")
if i < r-1:
print()
答案 4 :(得分:0)
mat=[]
r,c=raw_input().split()
r=int(r)
c=int(c)
x=0
for i in range(r):
mat.append([])
for j in range(c):
x=x+1
mat[i].append(x)
print(repr('\n '.join([' '.join(map(str,row)) for row in mat])))
print('\n '.join([' '.join(map(str,row)) for row in mat]))
输出
input
3 1
'1\n 2\n 3'
1
2
3
input
3 4
'1 2 3 4\n 5 6 7 8\n 9 10 11 12'
1 2 3 4
5 6 7 8
9 10 11 12
答案 5 :(得分:0)
大家好,感谢您的支持和帮助,我得到的正确代码是
matrix=[]
n,m=input().split()
p=int(n)
q=int(m)
c=1
for i in range(p):
l=[]
for j in range(q):
l.append(c)
c=c+1
matrix.append(l)
for i in range(p):
for j in range(q):
if j == q-1 and not i == p-1:
print(matrix[i][j],end=r"")
else:
print(matrix[i][j],end=r" ")
print()