TG Telegram Group & Channel
Библиотека Python разработчика | Книги по питону | United States America (US)
Create: 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

Чтобы читать строки из 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
👍3


>>Click here to continue<<

Библиотека Python разработчика | Книги по питону




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)