- Функция input() в Python, ввод данных с клавиатура.
- Позволяет производить ввод данных в консоли.
- Синтаксис:
- Параметры:
- Возвращаемое значение:
- Описание:
- Примеры получения/ввода данных из консоли/клавиатуры.
- Общие примеры использования функции input() .
- Проверка и преобразование типов при вводе данных с клавиатура.
- Эмуляция терминала с использованием функцией input() .
- Ввод и вывод данных
- Вывод данных. Функция print()
- Ввод данных. Функция input()
- Практическая работа
- Функции input и print ввода/вывода
- Видео по теме
Функция 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() .
Источник
Ввод и вывод данных
Мы уже встречались с функцией print() . Она отвечает за вывод данных, по-умолчанию на экран. Если код содержится в файле, то без нее не обойтись. В интерактивном режиме в ряде случаев можно обойтись без нее.
Ввод данных в программу и их вывод важны в программировании. Без ввода программы делали бы одно и то же, исключая случаи, когда в них самих генерируются случайные значения. Вывод позволяет увидеть, использовать, передать дальше результат работы программы.
Обычно требуется, чтобы программа обрабатывала какой-то диапазон различных входных данных, которые поступают в нее из внешних источников. В качестве последних могут выступать файлы, клавиатура, сеть, выходные данные из другой программы. В свою очередь вывод данных, например, возможен в файл, по сети, в базу данных, на принтер. Однако нередко информацию просто выводят на экран монитора.
Можно сказать, что программа – это открытая система, которая обменивается чем-либо с внешней для нее средой. Если живой организм в основном обменивается веществом и энергией, то программа – данными, информацией.
Вывод данных. Функция print()
Что такое функция в программировании, узнаем позже. Пока будем считать, что print() – это такая команда языка Python, которая выводит то, что в ее скобках на экран.
В скобках могут быть любые типы данных. Кроме того, количество данных может быть различным:
Можно передавать в функцию print() как непосредственно литералы (в данном случае «a:» и 1), так и переменные, вместо которых будут выведены их значения. Аргументы функции (то, что в скобках), разделяются между собой запятыми. В выводе вместо запятых значения разделены пробелом.
Если в скобках стоит выражение, то сначала оно выполняется, после чего print() уже выводит результат данного выражения:
В print() предусмотрены дополнительные параметры. Например, через параметр sep можно указать отличный от пробела разделитель строк:
Параметр end позволяет указывать, что делать, после вывода строки. По-умолчанию происходит переход на новую строку. Однако это действие можно отменить, указав любой другой символ или строку:
Обычно end используется не в интерактивном режиме, а в скриптах, когда несколько выводов подряд надо разделить не переходом на новую строку, а, скажем, запятыми. Сам переход на новую строку обозначается символом ‘\n’. Если присвоить это значение параметру end , то никаких изменений в работе функции print вы не увидите, так как это значение и так присвоено по-умолчанию:
Однако, если надо отступить на одну дополнительную строку после вывода, то можно сделать так:
В функцию print нередко передаются так называемые форматированные строки, хотя по смыслу их правильнее называть строки-шаблоны. Никакого отношения к самому print они не имеют. Когда такая строка находится в скобках print() , интерпретатор сначала согласно заданному в ней формату преобразует ее к обычной строке, после чего передает результат в print() .
Форматирование может выполняться в так называемом старом стиле или с помощью строкового метода format . Старый стиль также называют Си-стилем, так как он схож с тем, как происходит вывод на экран в языке C. Рассмотрим пример:
Здесь вместо трех комбинаций символов %s , %d , %f подставляются значения переменных pupil , old , grade . Буквы s , d , f обозначают типы данных – строку, целое число, вещественное число. Если бы требовалось подставить три строки, то во всех случаях использовалось бы сочетание %s .
Хотя в качестве значения переменной grade было указано число 9.2, на экран оно вывелось с дополнительными нулями. Чтобы указать, сколько требуется знаков после запятой, надо перед f поставить точку, после нее указать желаемое количество знаков в дробной части:
Теперь посмотрим на метод format() :
В строке в фигурных скобках указаны номера данных, которые будут сюда подставлены. Далее к строке применяется метод format() . В его скобках указываются сами данные (можно использовать переменные). На нулевое место подставится первый аргумент метода format() , на место с номером 1 – второй и т. д.
На самом деле возможности метода format() существенно шире, и для их изучения понадобился бы отдельный урок. Нам пока будет достаточно этого.
В новых релизах Питона появился третий способ создания форматированных строк – f-строки. Перед их открывающей кавычкой прописывается буква f. В самой строке внутри фигурных скобок записываются выражения на Python, которые исполняются, когда интерпретатор преобразует строку-шаблон в обычную.
В примере число 5 после переменной a обозначает количество знакомест, отводимых под вывод значения переменной. В выражении b + 0.2:.1f сначала выполняется сложение, после этого значение округляется до одного знака после запятой.
Ввод данных. Функция input()
За ввод в программу данных с клавиатуры в Python отвечает функция input . Когда вызывается эта функция, программа останавливает свое выполнение и ждет, когда пользователь введет текст. После этого, когда он нажмет Enter, функция input() заберет введенный текст и передаст его программе, которая уже будет обрабатывать его согласно своим алгоритмам.
Если в интерактивном режиме ввести команду input() , то ничего интересного вы не увидите. Компьютер будет ждать, когда вы что-нибудь введете и нажмете Enter или просто нажмете Enter. Если вы что-то ввели, это сразу же отобразиться на экране:
Функция input() передает введенные данные в программу. Их можно присвоить переменной. В этом случае интерпретатор не выводит строку сразу же:
В данном случае строка сохраняется в переменной answer , и при желании мы можем вывести ее значение на экран:
При использовании функции print() кавычки в выводе опускаются:
Куда интересней использовать функцию input() в скриптах – файлах с кодом. Рассмотрим такую программу:
При запуске программы, компьютер ждет, когда будет введена сначала одна строка, потом вторая. Они будут присвоены переменным name_user и city_user . После этого значения этих переменных выводятся на экран с помощью форматированного вывода.
Вышеприведенный скрипт далек от совершенства. Откуда пользователю знать, что хочет от него программа? Чтобы не вводить человека в замешательство, для функции input предусмотрен специальный параметр-приглашение. Это приглашение выводится на экран при вызове input() . Усовершенствованная программа может выглядеть так:
Обратите внимание, что в программу поступает строка. Даже если ввести число, функция input() все равно вернет его строковое представление. Но что делать, если надо получить число? Ответ: использовать функции преобразования типов.
В данном случае с помощью функций int() и float() строковые значения переменных qty и price преобразуются соответственно в целое число и вещественное число. После этого новые численные значения присваиваются тем же переменным.
Программный код можно сократить, если преобразование типов выполнить в тех же строках кода, где вызывается функция input() :
Сначала выполняется функция input() . Она возвращает строку, которую функция int() или float() сразу преобразует в число. Только после этого происходит присваивание переменной, то есть она сразу получает численное значение.
Практическая работа
Напишите программу (файл user.py ), которая запрашивала бы у пользователя:
— его имя (например, «What is your name?»)
— возраст («How old are you?»)
— место жительства («Where are you live?»)
После этого выводила бы три строки:
«This is имя »
«It is возраст »
«(S)he live in место_жительства »
Вместо имя , возраст , место_жительства должны быть данные, введенные пользователем. Примечание: можно писать фразы на русском языке, но если вы планируете стать профессиональным программистом, привыкайте к английскому.
Напишите программу (файл arithmetic.py ), которая предлагала бы пользователю решить пример 4 * 100 — 54. Потом выводила бы на экран правильный ответ и ответ пользователя. Подумайте, нужно ли здесь преобразовывать строку в число.
Запросите у пользователя четыре числа. Отдельно сложите первые два и отдельно вторые два. Разделите первую сумму на вторую. Выведите результат на экран так, чтобы ответ содержал две цифры после запятой.
Примеры решения и дополнительные уроки в android-приложении и pdf-версии курса
Источник
Функции input и print ввода/вывода
На этом занятии рассмотрим две функции:
- input() – для ввода данных с клавиатуры;
- print() – для вывода данных в консоль.
Начнем с первой. Вызвать функцию input можно таким образом:
и после ее запуска среда выполнения будет ожидать от нас ввода данных. Введем, допустим, число 5 и нажмем enter. Смотрите, эта функция возвратила нам это число, но в виде строки:
В действительности, данная функция всегда возвращает строку, чего бы мы не вводили с клавиатуры. Ну хорошо, а как нам сохранить в переменной введенное значение? Это можно сделать так:
Теперь, на все введенные данные будет ссылаться переменная a.
Несмотря на то, что input всегда возвращает строки, нам в программах в ряде случаев будет требоваться ввод чисел. И здесь возникает вопрос: как число из строки преобразовать в обычное число, которое можно будет в последствие использовать в арифметических операциях? Это делается с помощью функции
Данная функция пытается переданный аргумент преобразовать в число и вернуть уже числовое значение. Например:
вернет число 5, или
преобразует значение a в числовое. Однако, здесь следует быть осторожным и иметь в виду, что если аргумент не удается преобразовать в число, то возникнет ошибка:
Отлично, с этим разобрались. Теперь мы можем преобразовывать строки в числа, используя такую конструкцию:
Здесь сначала сработает input, а затем, введенное строковое значение будет преобразовываться в число и переменная a уже будет ссылаться на числовое значение. Благодаря этому, данную переменную можно в дальнейшем использовать в арифметических операциях, например:
и так далее (об арифметических операциях речь пойдет на следующем занятии).
По аналогии с int работает функция
которая преобразовывает строку в вещественное число. С ее помощью можно выполнять, например, такие преобразования:
Каждый раз мы будем получать вещественные значения. То есть, можно записывать и такую конструкцию:
и вводить любые вещественные числа.
В качестве примера рассмотрим простую программу вычисления периметра прямоугольника:
Но здесь есть небольшое неудобство: при вводе значений пользователь не знает, что именно ему вводить. Нужно написать подсказки. Это реализуется так:
Теперь, он видит сообщение и понимает что нужно вводить с клавиатуры.
О функции print мы уже немного говорили на предыдущем занятии, здесь рассмотрим подробнее различные возможности ее использования. Например, эту функцию можно записывать в таких вариациях:
И так далее, число аргументов может быть произвольным. Соответственно все эти значения в строчку будут выведены в консоли. Причем, значения разделяются между собой пробелом. Это разделитель, который используется по умолчанию. Если нужно изменить значение этого разделителя, то для этого используется специальный именованный аргумент sep:
то есть, здесь можно прописывать самые разные строки-разделители.
Далее, вы уже заметили, что каждый вызов функции print делает перевод строки. Этот символ автоматически добавляет в конец выводимых данных. Но, мы также можем его изменить. Для этого используется именованный аргумент end:
Смотрите, теперь у нас после первой строчки нет перевода строки, а поставлено двоеточие с пробелом, которые мы указали в аргументе end. После второго вывода в конце была добавлена строчка и указан символ ‘\n’ перевода строки.
В качестве примера все это можно использовать для более гибкого вывода значений с помощью print:
Но это не самый удобный вывод значений. Функция print позволяет делать довольно гибкий форматированный вывод данных с применением спецификаторов. Например:
В результате, вместо спецификатора %s будет подставлена первая переменная, указанная в скобках, в виде строки, а вместо %d – вторая переменная age в виде целого числа. То есть, для каждого типа данных существует свой спецификатор. Наиболее употребительные, следующие:
- %d, %i, %u – для вывода целочисленных значений;
- %f – для вывода вещественных значений;
- %s – для вывода строк;
- %% — для вывода символа %
Вот основные возможности функций input и print в Python.
Видео по теме
#1. Первое знакомство с Python Установка на компьютер
#2. Варианты исполнения команд. Переходим в PyCharm
#3. Переменные, оператор присваивания, функции type и id
#4. Числовые типы, арифметические операции
#5. Математические функции и работа с модулем math
#6. Функции print() и input(). Преобразование строк в числа int() и float()
#7. Логический тип bool. Операторы сравнения и операторы and, or, not
#8. Введение в строки. Базовые операции над строками
#9. Знакомство с индексами и срезами строк
#10. Основные методы строк
#11. Спецсимволы, экранирование символов, row-строки
#12. Форматирование строк: метод format и F-строки
#13. Списки — операторы и функции работы с ними
#14. Срезы списков и сравнение списков
#15. Основные методы списков
#16. Вложенные списки, многомерные списки
#17. Условный оператор if. Конструкция if-else
#18. Вложенные условия и множественный выбор. Конструкция if-elif-else
#19. Тернарный условный оператор. Вложенное тернарное условие
#20. Оператор цикла while
#21. Операторы циклов break, continue и else
#22. Оператор цикла for. Функция range()
#23. Примеры работы оператора цикла for. Функция enumerate()
#24. Итератор и итерируемые объекты. Функции iter() и next()
#25. Вложенные циклы. Примеры задач с вложенными циклами
#26. Треугольник Паскаля как пример работы вложенных циклов
#27. Генераторы списков (List comprehensions)
#28. Вложенные генераторы списков
#29. Введение в словари (dict). Базовые операции над словарями
#30. Методы словаря, перебор элементов словаря в цикле
#31. Кортежи (tuple) и их методы
#32. Множества (set) и их методы
#33. Операции над множествами, сравнение множеств
#34. Генераторы множеств и генераторы словарей
#35. Функции: первое знакомство, определение def и их вызов
#36. Оператор return в функциях. Функциональное программирование
#37. Алгоритм Евклида для нахождения НОД
#38. Именованные аргументы. Фактические и формальные параметры
#39. Функции с произвольным числом параметров *args и **kwargs
#40. Операторы * и ** для упаковки и распаковки коллекций
#41. Рекурсивные функции
#42. Анонимные (lambda) функции
#43. Области видимости переменных. Ключевые слова global и nonlocal
#44. Замыкания в Python
#45. Введение в декораторы функций
#46. Декораторы с параметрами. Сохранение свойств декорируемых функций
#47. Импорт стандартных модулей. Команды import и from
#48. Импорт собственных модулей
#49. Установка сторонних модулей (pip install). Пакетная установка
#50. Пакеты (package) в Python. Вложенные пакеты
#51. Функция open. Чтение данных из файла
#52. Исключение FileNotFoundError и менеджер контекста (with) для файлов
#53. Запись данных в файл в текстовом и бинарном режимах
#54. Выражения генераторы
#55. Функция-генератор. Оператор yield
#56. Функция map. Примеры ее использования
#57. Функция filter для отбора значений итерируемых объектов
#58. Функция zip. Примеры использования
#59. Сортировка с помощью метода sort и функции sorted
#60. Аргумент key для сортировки коллекций по ключу
#61. Функции isinstance и type для проверки типов данных
#62. Функции all и any. Примеры их использования
#63. Расширенное представление чисел. Системы счисления
#64. Битовые операции И, ИЛИ, НЕ, XOR. Сдвиговые операторы
#65. Модуль random стандартной библиотеки
© 2021 Частичное или полное копирование информации с данного сайта для распространения на других ресурсах, в том числе и бумажных, строго запрещено. Все тексты и изображения являются собственностью сайта
Источник