慕碼人2483693
2022-07-19 16:34:59
我正在用 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
提交
取消