Python почему не работает input

Получение пользовательского ввода в Python с input()

Получение и обработка информации — один из важнейших элементов любого языка программирования, особенно если речь идет о получении информации от пользователей.

Python, будучи медленным относительно таких языков, как C или Java, предлагает продвинутые инструменты для получения, анализа и обработки данных от конечного пользователя.

В этом материале речь пойдет о том, какие функции Python можно использовать для этих целей.

Ввод в Python

Для получения информации с клавиатуры в Python есть функции input() или raw_input() (о разнице между ними чуть позже). У них есть опциональный параметр prompt , который является выводимой строкой при вызове функции.

Когда input() или raw_input() вызываются, поток программы останавливается до тех пор, пока пользователь не введет данные через командную строку. Для ввода нужно нажать Enter после завершения набора текста. Обычно Enter добавляет символ новой строки ( \n ), но не в этом случае. Введенная строка просто будет передана приложению.

Интересно, что кое-что поменялось в принципе работе функции между Python 2 и Python 3, что отразилось в разнице между input() и raw_input() . Об этом дальше.

Сравнение функций input и raw_input

Разница между этими функциями зависит от версии Python. Так, в Python 2 функция raw_input() используется для получения ввода от пользователя через командную строку, а input() оценивает ее и попробует запустить как код Python.

В Python 3 от raw_input() избавились, оставив только input() . Она используется для получения ввода пользователя с клавиатуры. Возможности input() из Python 2 в Python 3 работать не будут. Для той же операции нужно использовать инструкцию eval(input()) .

Взгляните на пример функции raw_input в Python 2.

Вывод

А вот как она работает в Python 3

Вывод

Дальше в материале будет использоваться метод input из Python 3, если не указано другое.

Строковый и числовой ввод

По умолчанию функция input() конвертирует всю получаемую информацию в строку. Прошлый пример продемонстрировал это.

С числами нужно работать отдельно, поскольку они тоже изначально являются строками. Следующий пример показывает, как можно получить информацию числового типа:

Вывод

Того же можно добиться и таким образом:

Здесь сразу после сохранения ввода происходит преобразование и присваивание значения переменной.

Читайте также:  Как настроить galaxy s20 чтобы при закрытом умном чехле отображалась время

Нужно лишь отметить, что если пользователь ввел не целое число, то код вернет исключение (даже если это число с плавающей точкой).

Обработка исключений ввода

Есть несколько способов, как можно удостовериться в том, что пользователь ввел корректные данные. Один из них — перехватывать все возможные ошибки, которые могут возникнуть.

Вот такой код считается небезопасным:

Запустим его и введем следующее:

При вызове функции int() со строкой Пять появится исключение ValueError , и программа остановит работу.

Вот как можно сделать код безопаснее и обработать ввод:

Этот блок оценит ввод. Если он является целым числом, представленным в виде строки, то функция input() конвертирует его в целое число. Если нет, то программа выдаст исключение, но вместо ошибки оно будет перехвачено. В результате вызовется вторая инструкция print .

Вот так будет выглядеть вывод с исключением.

Такой код можно объединить с другой конструкцией, например, циклом for, чтобы убедиться, что код будет выполняться постоянно, до тех пор, пока пользователь не введет те данные, которые требуются.

Полный пример

Вывод:

Выводы

В этой статье вы узнали, как встроенные инструменты Python используются для получения пользовательского ввода в разных форматах. Также научились обрабатывать исключения и ошибки, которые могут возникнуть в процессе.

Источник

Программа не работает. Что делать?

Моя программа не работает! Что делать? В данной статье я постараюсь собрать наиболее частые ошибки начинающих программировать на python 3, а также расскажу, как их исправлять.

Проблема: Моя программа не запускается. На доли секунды появляется чёрное окошко, а затем исчезает.

Причина: после окончания выполнения программы (после выполнения всего кода или при возникновении исключения программа закрывается. И если вы её вызвали двойным кликом по иконке (а вы, скорее всего, вызвали её именно так), то она закроется вместе с окошком, в котором находится вывод программы.

Решение: запускать программу через IDLE или через консоль.

Проблема: Не работает функция input. Пишет SyntaxError.

Причина: Вы запустили Python 2.

Проблема: Где-то увидел простую программу, а она не работает.

Причина: Вам подсунули программу на Python 2.

Решение: Прочитать об отличиях Python 2 от Python 3. Переписать её на Python 3. Например, данная программа на Python 3 будет выглядеть так:

Проблема: TypeError: Can’t convert ‘int’ object to str implicitly.

Причина: Нельзя складывать строку с числом.

Решение: Привести строку к числу с помощью функции int(). Кстати, заметьте, что функция input() всегда возвращает строку!

Проблема: SyntaxError: invalid syntax.

Причина: Забыто двоеточие.

Проблема: SyntaxError: invalid syntax.

Причина: Забыто равно.

Проблема: NameError: name ‘a’ is not defined.

Причина: Переменная «a» не существует. Возможно, вы опечатались в названии или забыли инициализировать её.

Решение: Исправить опечатку.

Проблема: IndentationError: expected an indented block.

Причина: Нужен отступ.

Читайте также:  Как получить пособие для малоимущих если не работаешь

Проблема: TabError: inconsistent use of tabs and spaces in indentation.

Причина: Смешение пробелов и табуляции в отступах.

Решение: Исправить отступы.

Проблема: UnboundLocalError: local variable ‘a’ referenced before assignment.

Причина: Попытка обратиться к локальной переменной, которая ещё не создана.

Проблема: Программа выполнилась, но в файл ничего не записалось / записалось не всё.

Причина: Не закрыт файл, часть данных могла остаться в буфере.

Проблема: Здесь может быть ваша проблема. Комментарии чуть ниже 🙂

Источник

Почему input() во втором питоне не принимает строку?

Всем привет!
Начал разбираться в питоне, и сразу же непонятная ошибка..

Вот это работает, но вот такое:

Добавлено через 13 минут
Проблема решена, данные типа str не подлежат обработке в input()
если нужно вбивать туда текст то используйте raw_input

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Почему конструктор не принимает ссылку на строку?
#include «stdafx.h» #include #include using namespace std; class Bank <.

процедуры и функции С++(error C2660: input: функция не принимает 2 аргументов)
ошибка: error C2660: input: функция не принимает 2 аргументов в 25-26 строке #include .

Как подать строку в hmac.new() в третьем питоне?
Доброго времени суток. Я 3 года практикую разработку на PHP5, и не так давно взялся осваивать.

Что такое инструменты и почему в питоне не нужно подключать библиотеки?
Что такое инструкция(в питоне) и почему в питоне не нужно подключать библиотеки? В названии темы.

Чайник в Питоне объясните мне почему мой код не срабатывает?
def funk(x): i = x while i % 5 != 0: i = i + 1 return i x = input().

Считать с файла (input.txt) строку, перевернуть строку, записать файл (put.txt) эту строку
Считать с файла (input.txt) строку, перевернуть строку, записать файл (put.txt) эту строку.

Как открыть файл на питоне, чтобы внутри содержимый код работал при открытии на питоне?
Хочу открыть файл, чтобы внутри код работал на питоне: >>> a = open(r’F:\python\py\Madi.

Источник

Python 3.7 input () не работает, но raw_input работает

Итак, классическая проблема новичка здесь . Я пытался использовать Python в различных текстовых редакторах, таких как VSCode и Atom, и ни один из них, похоже, не работает (после установки python 3.7). Если я запрашиваю простой ввод, программа аварийно завершает работу, помечая ввод как неопределенный, но когда я использую raw_input (), он по какой-то причине работает просто отлично. Однако raw_input () был изменен на input () в Python 3, так почему это продолжает происходить со мной?

4 ответа

Вы должны использовать виртуальные среды. Поскольку вы работаете на Mac, я бы посоветовал вам использовать Anaconda дистрибутив Python. Инструкции находятся здесь. Это упрощает процесс создания виртуальных сред. Это так же просто, как conda create -n myenv python=3.6 . Более подробные инструкции можно найти здесь.. После установки conda вы можете использовать такие команды, как conda install scipy для установки пакетов Python. После установки и активации виртуальных сред ваша команда должна работать. Попробуйте это в среде Python 3.6.

Читайте также:  Телеграмм не работает после обновления сегодня

Как U9-Forward упомянул в своем ответе, аналогично .

Проверьте правильность установки Python 3.7, введя следующее в собственную оболочку IDLE Python 3.7 (возможно, вы использовали IDLE более старой версии Python):

import sys
print(sys.version)

import platform
print(platform.python_version())

Если что-либо из это приводит к ошибке, вы будете знать, если была проблема с установкой.

Возможно, у вас установлено несколько версий Python. Проверьте, какие версии у вас установлены. Если у вас есть другие версии, кроме Python 3.7, удалите их.
Если проблема не устранена, удалите Python 3.7 и переустановите его.

Проблема, как вы описали, может возникнуть, когда одна попытка установить более новую версию Python, когда все еще установлены более старые версии.

То же самое происходит со мной, я удаляю все anaconda + spyder. тогда я устанавливаю 3.7. -variable-input (), работает на 3.0,3.1,3.2,3.3,3.4,3.5,3.6 и 3.7. во всех других мирах -variable-raw_input

dsclmer: -variable- замените его собственной переменной, такой как имя или возраст и т. д., например ..

Источник

Функция input() в Python, ввод данных с клавиатура.

Позволяет производить ввод данных в консоли.

Синтаксис:

Параметры:

Возвращаемое значение:

  • строка str, даже если вводятся цифровые значения.

Описание:

Функция input() позволяет обеспечить ввод пользовательских данных из консоли. Если передан необязательный аргумент подсказки prompt , то он записывается в стандартный вывод без завершающей строки. Затем функция читает строку из ввода и преобразует ее в СТРОКУ, убирая завершающий символ строки ‘\n’ и возвращает ее в качестве значения.

Другими словами, все что вводится в консоль при использовании встроенной функции input() преобразуется в тип str . Это происходит в том числе и с числами. Следовательно, числовые данные, перед их использованием необходимо распознавать и преобразовывать к нужным типам.

Если был импортирован модуль readline , то функция input() будет использовать его для обеспечения сложных функций редактирования строк и истории.

  • В случае считывания EOF (признак конца файла), поднимается исключение EOFError .
  • Перед чтением ввода, функция input() вызывает событие аудита input с аргументом prompt .
  • После успешного чтения ввода, вызывает событие аудита input c результатом resultс .

Примеры получения/ввода данных из консоли/клавиатуры.

Общие примеры использования функции input() .

Проверка и преобразование типов при вводе данных с клавиатура.

Пример представляет собой программу подсчета суммы или произведения введенных в консоль чисел. В примере будем распознавать числовые типы на примере типов int и float , читаемые функцией input() из консоли интерпретатора Python.

Эмуляция терминала с использованием функцией input() .

Для воспроизведения вывода ошибок при выполнении команд в воображаемой «консоли» воспользуемся модулем traceback . Выполнять введенный код будем при помощи встроенной функции exec() .

Источник

Оцените статью