Python что такое int input
Пользовательский ввод (input) в Python
О бычно программа работает по такой схеме: получает входные данные → обрабатывает их → выдает результат. Ввод может поступать как непосредственно от пользователя через клавиатуру, так и через внешний источник (файл, база данных).
В стандартной библиотеке Python 3 есть встроенная функция input() (в Python 2 это raw_input() ), которая отвечает за прием пользовательского ввода. Разберемся, как она работает.
Чтение ввода с клавиатуры
Функция input([prompt]) отвечает за ввод данных из потока ввода:
s = input() print(f»Привет, !») > мир # тут мы с клавиатуры ввели слово «мир» > Привет, мир!
input() всегда возвращает строку :
s = input() print(type(s)) > 2 >
Также у input есть необязательный параметр prompt – это подсказка пользователю перед вводом:
name = input(«Введите имя: «) print(f»Привет,
📃 Более подробное описание функции из документации:
def input([prompt]): «»» Read a string from standard input. The trailing newline is stripped. The prompt string, if given, is printed to standard output without a trailing newline before reading input. If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError. On *nix systems, readline is used if available. «»» pass
Преобразование вводимые данные
Данные, введенные пользователем, попадают в программу в виде строки, поэтому и работать с ними можно так же, как и со строкой. Если требуется организовать ввод цифр, то строку можно преобразовать в нужный формат с помощью функций явного преобразования типов.
☝️ Важно : если вы решили преобразовать строку в число, но при этом ввели строку (например: test), возникнет ошибка:
ValueError: invalid literal for int() with base 10: ‘test’
def get_room_number(): while True: try: num = int(input(«Введите номер комнаты: «)) return num except ValueError: print(«Вы ввели не число. Повторите ввод») room_number = get_room_number() print(f»Комната
Input() → int
age_str = input(«Введите ваш возраст: «) age = int(age_str) print(age) print(type(age)) > Введите ваш возраст: 21 > 21 >
Input() → float
weight = float(input(«Укажите вес (кг): «)) print(weight) print(type(weight)) > Укажите вес (кг): 10.33 > 10.33 >
Input() → list (список)
list = input().split() print(list) print(type(list)) > 1 word meow > [‘1’, ‘word’, ‘meow’] >
💭 Обратите внимание, что каждый элемент списка является строкой. Для преобразования в число, можно использовать int() и цикл for. Например, так:
Ввод в несколько переменных
Если необходимо заполнить одним вводом с клавиатуры сразу несколько переменных, воспользуйтесь распаковкой:
Все переменные после распаковки будут строкового типа. Преобразовать их (например в int) можно так:
☝️ Важно : не забывайте обрабатывать ошибки:
В этом руководстве вы узнали, как принимать данные от пользователя, введенные с клавиатуры, научились преобразовывать данные из input и обрабатывать исключения.
Ввод и вывод данных
Переменные и типы данных
Переменной в программировании называется именованный контейнер для некоторого значения. Представьте себе ящик с наклееным на него стикером. Вы кладете что-нибудь в ящик и пишете на стикере короткое имя без пробелов и знаков препинания, начинающееся с буквы английского алфавита, примерно так же работает переменная в программировании.
Типы данных
Информация получаемая нами с помощью различных органов чувств делится на зрительную, слуховую, обонятельную, осязательную и другие. В программировании так же есть свое разделение, разделение на типы данных. Примитивных типов данных в Python 4:
Приведение типов
Приведением типов данных называется преобразование одного типа в другой, например, строку в число, число в строку, число в булеву переменную, строку в дробь и так далее.
Функция print
Функция print выводит переданные в неё аргументы в стандартный поток вывода. Что же такое стандартный поток вывода? Standart output или stdout называется потоком вывода, местом, куда мы выводим наш текстовый контент. По умолчанию стандартный поток вывода равен sys.stdout и поэтому вывод осуществляется в консоль.
Функция print все переданные в неё аргументы в стандартный поток вывода. Например:
На этом тривиальном примере мы видим две вещи. Во-первых, каждый print переносит поток вывода на новую строчку. Во-вторых, аргументы, переданные в функцию print выводятся через пробел.
В обоих случаях мы можем изменить стандартное поведение. Рассмотрим первый параметр функции print — end, в него передается строка, которая напечатается после всех аргументов функции print.
Рассмотрим второй параметр функции print — sep, sep от английского separator (разделитель). По умолчанию параметр sep равен ‘ ‘. Время для экспериментов ╰(▔∀▔)╯.
Функция input
name = input ()
print ( ‘Hello, ‘ + name)
name = input ( ‘Enter your name: ‘ )
print ( ‘Hello, ‘ + name)
Функция input возвращает строковый тип данных
number = input ()
print (type(number))
#
Поэтому если мы напишем такой код, то он будет работать некорректно:
number1 = input ()
number2 = input ()
print (number1 + number2)
# Ввод:
# 1
# 2
# Вывод:
# 12
Поэтому необходимо преобразовать строковый тип в целочисленный (str в int)
number1 = int ( input ())
number2 = int ( input ())
print (number1 + number2)
# Ввод:
# 1
# 2
# Вывод:
# 3
Всегда проверяйте тип полученных данных, это поможет вам избежать большого количества ошибок. К слову, если вы что-то напутали с типами переменных, то Python выдаст ошибку TypeError (ошибка типа)
Решение задач
1. Поэкспериментируйте с переводом в различные типы данных
2. Пользователь вводит свое имя и фамилию. Выведите:
Hello, имя фамилия
# На месте слов с % должны быть введенные данные
3. Посчитайте сумму трех введенных целых чисел
4. Посчитайте сумму трех введенных дробных чисел. Подумайте в какой тип данных нужно преобразовать значение, возвращенное функцией input
5. Дано число, выведите предыдущее и следущее за ним числа в таком формате:
# Число равно 10
Число предшествующее числу 10 равно 9
Число следующее за числом 10 равно 11
6. Вводятся имя и возраст. Выведите, где введенное имя = Максим, а возраст = 20
Как вводить данные в Python с клавиатуры
Ввод данных – это способ взаимодействия с пользователями или получение данных для выведения определенного результата. Python предоставляет два встроенных метода для чтения данных с клавиатуры. Эти методы приведены ниже.
input()
Функция ввода – input() используется во всех последних версиях Python. Она принимает ввод от пользователя, а затем оценивает выражение. Интерпретатор Python автоматически определяет, вводит ли пользователь строку, число или список.
Интерпретатор Python не будет выполнять дальнейшие строки, пока пользователь не введет ввод.
Разберемся еще на одном примере.
По умолчанию функция input() принимает ввод в виде строки, поэтому, если нам нужно произвести ввод целого числа или с плавающей запятой, тогда функция input() должна быть приведена к типу.
Мы можем видеть в приведенном выше коде, где мы вводим пользовательский ввод в тип int и float.
Как работает функция input()?
Как проверить версию Python?
Мы можем проверить версию Python в нашем запущенном скрипте. Рассмотрим следующие способы узнать версию Python во всех операционных системах.
Команды | Операционная система / среда | Выход |
---|---|---|
Python – version or sys.version_info | Скрипт Python | 3.8.3 (default, May 13 2020, 15:29:51) [MSC v.1915 64 bit (AMD64)] |
Import platform platform.python_version() | Скрипт Python | “3.8.1” |
Давайте посмотрим на следующее изображение.
Функции input и print ввода/вывода
Начнем с первой. Вызвать функцию input можно таким образом:
и после ее запуска среда выполнения будет ожидать от нас ввода данных. Введем, допустим, число 5 и нажмем enter. Смотрите, эта функция возвратила нам это число, но в виде строки:
В действительности, данная функция всегда возвращает строку, чего бы мы не вводили с клавиатуры. Ну хорошо, а как нам сохранить в переменной введенное значение? Это можно сделать так:
Теперь, на все введенные данные будет ссылаться переменная a.
Несмотря на то, что input всегда возвращает строки, нам в программах в ряде случаев будет требоваться ввод чисел. И здесь возникает вопрос: как число из строки преобразовать в обычное число, которое можно будет в последствие использовать в арифметических операциях? Это делается с помощью функции
Данная функция пытается переданный аргумент преобразовать в число и вернуть уже числовое значение. Например:
вернет число 5, или
преобразует значение a в числовое. Однако, здесь следует быть осторожным и иметь в виду, что если аргумент не удается преобразовать в число, то возникнет ошибка:
Отлично, с этим разобрались. Теперь мы можем преобразовывать строки в числа, используя такую конструкцию:
Здесь сначала сработает input, а затем, введенное строковое значение будет преобразовываться в число и переменная a уже будет ссылаться на числовое значение. Благодаря этому, данную переменную можно в дальнейшем использовать в арифметических операциях, например:
и так далее (об арифметических операциях речь пойдет на следующем занятии).
По аналогии с int работает функция
которая преобразовывает строку в вещественное число. С ее помощью можно выполнять, например, такие преобразования:
Каждый раз мы будем получать вещественные значения. То есть, можно записывать и такую конструкцию:
и вводить любые вещественные числа.
В качестве примера рассмотрим простую программу вычисления периметра прямоугольника:
Но здесь есть небольшое неудобство: при вводе значений пользователь не знает, что именно ему вводить. Нужно написать подсказки. Это реализуется так:
Теперь, он видит сообщение и понимает что нужно вводить с клавиатуры.
О функции print мы уже немного говорили на предыдущем занятии, здесь рассмотрим подробнее различные возможности ее использования. Например, эту функцию можно записывать в таких вариациях:
И так далее, число аргументов может быть произвольным. Соответственно все эти значения в строчку будут выведены в консоли. Причем, значения разделяются между собой пробелом. Это разделитель, который используется по умолчанию. Если нужно изменить значение этого разделителя, то для этого используется специальный именованный аргумент sep:
то есть, здесь можно прописывать самые разные строки-разделители.
Далее, вы уже заметили, что каждый вызов функции print делает перевод строки. Этот символ автоматически добавляет в конец выводимых данных. Но, мы также можем его изменить. Для этого используется именованный аргумент end:
Смотрите, теперь у нас после первой строчки нет перевода строки, а поставлено двоеточие с пробелом, которые мы указали в аргументе end. После второго вывода в конце была добавлена строчка и указан символ ‘\n’ перевода строки.
В качестве примера все это можно использовать для более гибкого вывода значений с помощью print:
Но это не самый удобный вывод значений. Функция print позволяет делать довольно гибкий форматированный вывод данных с применением спецификаторов. Например:
Вот основные возможности функций 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-строки
#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 Частичное или полное копирование информации с данного сайта для распространения на других ресурсах, в том числе и бумажных, строго запрещено. Все тексты и изображения являются собственностью сайта
Ввод и вывод данных
Ввод данных в программу и их вывод важны в программировании. Без ввода программы делали бы одно и то же, исключая случаи, когда в них самих генерируются случайные значения. Вывод позволяет увидеть, использовать, передать дальше результат работы программы.
Обычно требуется, чтобы программа обрабатывала какой-то диапазон различных входных данных, которые поступают в нее из внешних источников. В качестве последних могут выступать файлы, клавиатура, сеть, выходные данные из другой программы. В свою очередь вывод данных, например, возможен в файл, по сети, в базу данных, на принтер. Однако нередко информацию просто выводят на экран монитора.
Можно сказать, что программа – это открытая система, которая обменивается чем-либо с внешней для нее средой. Если живой организм в основном обменивается веществом и энергией, то программа – данными, информацией.
Вывод данных. Функция print()
Что такое функция в программировании, узнаем позже. Пока будем считать, что print() – это такая команда языка Python, которая выводит то, что в ее скобках на экран.
В скобках могут быть любые типы данных. Кроме того, количество данных может быть различным:
Можно передавать в функцию print() как непосредственно литералы (в данном случае «a:» и 1), так и переменные, вместо которых будут выведены их значения. Аргументы функции (то, что в скобках), разделяются между собой запятыми. В выводе вместо запятых значения разделены пробелом.
Если в скобках стоит выражение, то сначала оно выполняется, после чего print() уже выводит результат данного выражения:
В print() предусмотрены дополнительные параметры. Например, через параметр sep можно указать отличный от пробела разделитель строк:
Параметр end позволяет указывать, что делать, после вывода строки. По-умолчанию происходит переход на новую строку. Однако это действие можно отменить, указав любой другой символ или строку:
Однако, если надо отступить на одну дополнительную строку после вывода, то можно сделать так:
Хотя в качестве значения переменной grade было указано число 9.2, на экран оно вывелось с дополнительными нулями. Чтобы указать, сколько требуется знаков после запятой, надо перед f поставить точку, после нее указать желаемое количество знаков в дробной части:
Теперь посмотрим на метод format() :
На самом деле возможности метода format() существенно шире, и для их изучения понадобился бы отдельный урок. Нам пока будет достаточно этого.
В новых релизах Питона появился третий способ создания форматированных строк – f-строки. Перед их открывающей кавычкой прописывается буква f. В самой строке внутри фигурных скобок записываются выражения на Python, которые исполняются, когда интерпретатор преобразует строку-шаблон в обычную.
В примере число 5 после переменной a обозначает количество знакомест, отводимых под вывод значения переменной. В выражении b + 0.2:.1f сначала выполняется сложение, после этого значение округляется до одного знака после запятой.
Ввод данных. Функция input()
Функция input() передает введенные данные в программу. Их можно присвоить переменной. В этом случае интерпретатор не выводит строку сразу же:
При использовании функции print() кавычки в выводе опускаются:
Куда интересней использовать функцию input() в скриптах – файлах с кодом. Рассмотрим такую программу:
Обратите внимание, что в программу поступает строка. Даже если ввести число, функция input() все равно вернет его строковое представление. Но что делать, если надо получить число? Ответ: использовать функции преобразования типов.
В данном случае с помощью функций int() и float() строковые значения переменных qty и price преобразуются соответственно в целое число и вещественное число. После этого новые численные значения присваиваются тем же переменным.
Программный код можно сократить, если преобразование типов выполнить в тех же строках кода, где вызывается функция input() :
Практическая работа
Запросите у пользователя четыре числа. Отдельно сложите первые два и отдельно вторые два. Разделите первую сумму на вторую. Выведите результат на экран так, чтобы ответ содержал две цифры после запятой.
Примеры решения и дополнительные уроки в android-приложении и pdf-версии курса