从退出码和两路输出里认结果
真机上跑一个程序会得到三样东西:标准输出、标准错误、退出码。先在这里练怎么分类:
runs = [("14\n20\n", "", 0), ("", "运行时错误: 除以零 (1:24)\n 在 main\n 在 平均\n", 1), ("", "语法错误: 期待「;」遇到「print」@2:1\n", 2), ("3\n", "运行时错误: 未定义「b」 (2:11)\n 在 main\n", 1)]
kinds = []
for out, err, rc in runs:
if rc == 0:
kinds.append("正常" + str(out.count("\n")))
elif rc == 2:
kinds.append("语法")
else:
kinds.append("运行:" + err.split("\n")[-2].split()[-1])
print(",".join(kinds))
全部评论