Что означает эта ошибка на hackerrank.com? - PullRequest
0 голосов
/ 05 февраля 2020

Я выполняю задачи на hackerrank.com на языке Python, и у меня возникают трудности с пониманием получаемого сообщения об ошибке.

Это код:

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 Error
Error (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)
9
1 2 3 4 5 6 7 8 9
9
10 1 2 3 11 21 55 6 8

Это ожидаемый вывод:

Expected Output
13

Не знаю ожидаю, что вы решите для меня эту проблему. Я просто не понимаю это сообщение об ошибке. И это в моих предыдущих решениях тоже. О чем это?

Спасибо: -).

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Я могу воспроизвести ошибку. Этот код выдает ошибку в 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.

1 голос
/ 05 февраля 2020

1 2 3 4 5 6 7 8 9 python читает все это как строку, попробуйте: listX = list(map(int, input.split()))

Используйте listX, где вам нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...