问题描述
我用 python 3 编写代码。它在 python ide 和 programiz online ide 上运行良好,但在 google 平台上出现 RUNTIME 错误。有人可以帮忙解释为什么会这样吗? 这是问题的链接:Vestigium
def main(x,n,N):
n = len(x)
r = 0
for i in x:
if len(i)> len(set(i)):
r += 1
cols = []
k = 0
for i in range(n):
col = []
for j in range(n):
col.append(x[i][j])
if i == j:
k += int(x[i][j])
cols.append(col)
c = 0
for i in cols:
if len(i)> len(set(i)):
c += 1
print("Case #",N,":",k,r,c,)
N = int(input())
for i in range(N):
x = []
n = int(input())
for j in range(n):
row = []
for p in range(n):
v = int(input())
row.append(v)
x.append(row)
num = i + 1
main(x,num)
解决方法
- 您对输入的处理不正确。您为一行的每个元素调用
input()
,这会产生错误。您应该将整行作为一个输入处理。替换
for j in range(n):
row = []
for p in range(n)
v = int(input())
row.append(v)
x.append(row)
与
for j in range(n):
row = list(map(int,input().split()))
x.append(row)
- 尝试在 IDE 中运行此语句:
print("Case #",1,":",1)
这会打印 Case # 1 : 1
。该程序明确指定输出为 Case #1: 1
格式。 #
和案例编号之间的额外空格会导致错误。使用 Python 3 及更高版本,使用 f-string 使其更容易。
print(f"Case #{N}: {k} {r} {c}")
这应该可以修复运行时错误。我仍然怀疑它会给出错误的答案。