tgoop.com/BookPython/3470
Create:
Last Update:
Last Update:
Чтобы читать строки из stdin в Python до версии 3, использовалась функция raw_input
вместо input
. Проблема с использованием input
заключалась в том, что она выполняла введённую строку как код:
$ echo '[x ** 2 for x in range(10)]' | python2 -c 'print input()'
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
В Python 3 функция
input
просто читает строку, а raw_input
больше не существует.Если вы хотите поддерживать код, работающий как в Python 2, так и в Python 3, можно использовать следующий подход:
from contextlib import suppress
with suppress(NameError):
input = raw_input
Популярный модуль
six
уже реализует этот механизм для вас. Он предоставляет функцию input
, которая просто читает строку, независимо от версии Python.👉@BookPython
BY Библиотека Python разработчика | Книги по питону
Share with your friend now:
tgoop.com/BookPython/3470