我正在用 Python 语言在hackerrank.com 上进行挑战,我很难理解我收到的错误消息。这是代码:for i in range(1): in1 = int(input()) if in1 > 1000: print('error') break else: roll1 = set(input().split()) in2 = int(input()) if in2 > 1000: print('error') break else: roll2 = set(input().split()) if len(roll1.union(roll2)) > 1000: print('error') break else: print(len(roll1.union(roll2)))这是我不明白的错误:Runtime ErrorError (stderr)Traceback (most recent call last): File "Solution.py", line 6, in <module> File "<string>", line 1 1 2 3 4 5 6 7 8 9 ^SyntaxError: invalid syntax这是输入:Input (stdin)91 2 3 4 5 6 7 8 9910 1 2 3 11 21 55 6 8这是预期的输出:Expected Output13我不指望你为我解决这个挑战。我只是不明白这个错误信息。它也在我以前的解决方案中。它是关于什么的?谢谢 :-)。
3 回答
慕村225694
TA贡献1880条经验 获得超4个赞
我可以重现错误。此代码在 Python 2 中产生错误,因为它input()被定义为eval(raw_input()). 在 Python 3 中,raw_input被重命名为input. 添加input = raw_input到程序的顶部可以解决错误。在 Python 3 下运行程序也可以。
您可以使用以下内容在两个版本中产生相同的错误:
>>> eval("1 2 3 4 5 6 7 8 9")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
1 2 3 4 5 6 7 8 9
^
SyntaxError: invalid syntax
回溯中的 存在File "<string>", line 1表明错误来自对 的调用eval。
牧羊人nacy
TA贡献1862条经验 获得超7个赞
1 2 3 4 5 6 7 8 9
python 正在将所有这些作为字符串读取,请尝试: listX = list(map(int, input.split()))
在需要的地方使用 listX
添加回答
举报
0/150
提交
取消