为了账号安全,请及时绑定邮箱和手机立即绑定

OJ 说我的 python 程序编译错误,即使它在我的电脑上运行良好

OJ 说我的 python 程序编译错误,即使它在我的电脑上运行良好

哆啦的时光机 2021-09-25 09:59:11
我为我的作业编写了一个简单的 python 程序,它希望我们将输入的三个整数相加。我将它提交给我学校的 oj(在线法官)系统,但我收到了“编译器错误”该程序在运行 ubuntu 18.04 amd64 的个人计算机上运行良好,但我无法通过 oj 测试。我真的不知道出了什么问题,因为 oj 没有给出任何消息,只有最终状态“编译器错误”import sysa = input()b = input()c = input()a = int(a)b = int(b)c = int(c)answer = a + b + cprint(f"The answer is {answer}")这是我在计算机上运行程序时的结果:ubuntu@VMware:~/python-intro $ python3 1003.py345The answer is 12和我的电脑系统:ubuntu@VMware:~/python-intro $ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription:    Ubuntu 18.04.1 LTSRelease:        18.04Codename:       bionic怎么会是 oj 上的编译器错误?我已经确认我的提交语言是“python 3”而不是“python 2”或其他语言。
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

也许你的 OJ 的 python 3 版本不是 python 3.6。并且您不能在低于 3.6 的 Python 版本上使用 f-string。

我建议将您的字符串格式更改为:

print("The answer is {answer}".format(answer=answer))


查看完整回答
反对 回复 2021-09-25
?
ITMISS

TA贡献1871条经验 获得超8个赞

正如阿马丹指出的那样,问题主要与 f-string 有关。

print(f"答案是{answer}") <<<

使用格式使用更改此设置并更新线程。

print("答案是{}".format(answer))


查看完整回答
反对 回复 2021-09-25
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

f 字符串是在 Python 3.6 中引入的。在早期的 Python 中,这一行是一个语法错误:

print(f"The answer is {answer}")

为确保兼容性,将其重写为

print("The answer is %s" % answer)


查看完整回答
反对 回复 2021-09-25
  • 3 回答
  • 0 关注
  • 469 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号