Неправильный тип данных при вводе в Python

225 просмотра
0

Вот код:

s = str(input())
a = int(s[:1])+int(s[2:])

Проблема такая: инпут будет [цифра]+пробел+[цифра], и, похоже, как только инпут видит цифру он воспринимает все как число, и из-за этого происходит ошибка.

Как мне указать тип данных который будет введен конкретный момент?

Вот какую ошибку показывает:

SyntaxError: unexpected EOF while parsing


Добавить комментарий

2 Answers

Python Опубликовано 09.12.2018
0

Используйте raw_input:

>>> def f(prompt):
...     return sum(int(i) for i in raw_input(prompt).split())
...
>>> f('-->')
-->1 2 33     555
591
>>>

Дело не в типах данных и input и raw_input всегда отдают строку, просто input читает до первого пробела.

Добавить комментарий
0

input() в Питоне 2, равнозначен eval(raw_input()). Последовательность цифра, пробел, цифра не является корректным Питон-кодом, что ведёт к SyntaxError:

>>> eval("1 2")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    1 2
      ^
SyntaxError: unexpected EOF while parsing

Либо используйте raw_input() или используйте Python 3, где input() ведёт себя как raw_input(). В обоих случаях str() вызов следует убрать:

#!/usr/bin/env python3
s = input('Введите два целых числа, разделённых пробелом: ')
a, b = map(int, s.split())
# ...

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up