Функция input в python пример

Пользовательский ввод (input) в Python

Обычно программа работает по такой схеме: получает входные данные → обрабатывает их → выдает результат. Ввод может поступать как непосредственно от пользователя через клавиатуру, так и через внешний источник (файл, база данных).

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

Чтение ввода с клавиатуры

Функция input([prompt]) отвечает за ввод данных из потока ввода:

s = input() print(f»Привет, !») > мир # тут мы с клавиатуры ввели слово «мир» > Привет, мир!

  1. При вызове функции input() выполнение программы приостанавливается до тех пор, пока пользователь не введет текст на клавиатуре (приложение может ждать бесконечно долго).
  2. После нажатия на Enter , функция input() считывает данные и передает их приложению (символ завершения новой строки не учитывается).
  3. Полученные данные присваиваются переменной и используются дальше в программе.

Также у 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’

На практике такие ошибки нужно обрабатывать через try except . В примере ниже пользователь будет вводить данные до тех пор, пока они успешно не преобразуются в число.

def get_room_number(): while True: try: num = int(input(«Введите номер комнаты: «)) return num except ValueError: print(«Вы ввели не число. Повторите ввод») room_number = get_room_number() print(f»Комната успешно забронирована!») > Введите номер комнаты: test > Вы ввели не число. Повторите ввод > Введите номер комнаты: 13 > Комната 13 успешно забронирована!

Читайте также:  Typescript react redux github

Input() → int

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

age_str = input(«Введите ваш возраст: «) age = int(age_str) print(age) print(type(age)) > Введите ваш возраст: 21 > 21 >

То же самое можно сделать в одну строку: age = int(input(«Введите ваш возраст: «)) .

Input() → float

Если нужно получить число с плавающей точкой (не целое), то его можно получить с помощью функции float() .

weight = float(input(«Укажите вес (кг): «)) print(weight) print(type(weight)) > Укажите вес (кг): 10.33 > 10.33 >

Input() → list (список)

Если в программу вводится информация, которая разделяется пробелами, например, «1 word meow», то ее легко преобразовать в список с помощью метода split() . Он разбивает введенные строки по пробелам и создает список:

list = input().split() print(list) print(type(list)) > 1 word meow > [‘1’, ‘word’, ‘meow’] >

💭 Обратите внимание, что каждый элемент списка является строкой. Для преобразования в число, можно использовать int() и цикл for. Например, так:

int_list = [] for element in input().split(): int_list.append(int(element)) print([type(num) for num in int_list]) > 1 2 3 > [, , ]

Ввод в несколько переменных

Если необходимо заполнить одним вводом с клавиатуры сразу несколько переменных, воспользуйтесь распаковкой:

В этом примере строка из input() разбивается по пробелу функцией split() . Далее применяется синтаксис распаковки – каждый элемент списка попадает в соответствующую переменную.

Все переменные после распаковки будут строкового типа. Преобразовать их (например в int) можно так:

a, b = [int(s) for s in input().split()] print(f»type a: , type b: «) > 13 100 > type a: , type b:

☝️ Важно : не забывайте обрабатывать ошибки:

  • если введенных значений больше чем переменных, получите ошибку – ValueError: too many values to unpack (expected 3) ;
  • если введенных значений меньше чем переменных, получите ошибку – ValueError: not enough values to unpack (expected 3, got 2) ;
  • если преобразовываете в int, а вводите строку – ValueError: invalid literal for int() with base 10: ‘test’ .

В этом руководстве вы узнали, как принимать данные от пользователя, введенные с клавиатуры, научились преобразовывать данные из input и обрабатывать исключения.

Источник

Ввод и вывод данных

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

a и А — это разные переменные, регистр ввода имеет значение

Типы данных

Информация получаемая нами с помощью различных органов чувств делится на зрительную, слуховую, обонятельную, осязательную и другие. В программировании так же есть свое разделение, разделение на типы данных. Примитивных типов данных в Python 4:

int — целочисленный тип (1, 192, 781287)

Читайте также:  Php html template it pear

float — вещественный (дробный) (1.12312, 1231.12378718)

str — строковый тип (обязательно пишется в кавычках) (‘Hello world’)

bool — булевый тип (имеет всего два значения: True и False)

Приведение типов

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

a = 10
b = str (a) # b — это строка
с = int (b) # c — это снова число
d = 10.78
e = int (d) # e равно 10

Функция print

Функция print выводит переданные в неё аргументы в стандартный поток вывода. Что же такое стандартный поток вывода? Standart output или stdout называется потоком вывода, местом, куда мы выводим наш текстовый контент. По умолчанию стандартный поток вывода равен sys.stdout и поэтому вывод осуществляется в консоль.

Функция print все переданные в неё аргументы в стандартный поток вывода. Например:

print ( 1 )
print ( ‘Hello world!’ )
print ( False )
print ( 1.5 , 2.0 , 10 , True , ‘username’ )
print ( ‘Hello’ + ‘ ‘ + ‘world’ + ‘!’ )
# 1
# Hello world!
# False
# 1.5 2.0 10 True username
# Hello world!

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

# Во-первых:
print ( 1 )
print ( 2 )
# 1
# 2
# Во-вторых:
print ( ‘Hello’ , ‘world’ )
# Hello world

В обоих случаях мы можем изменить стандартное поведение. Рассмотрим первый параметр функции print — end, в него передается строка, которая напечатается после всех аргументов функции print.

print ( 1 , end = ‘ ‘ )
print ( 2 , end = ‘ ‘ )
print ( 3 , end = ‘ ‘ )
# 1 2 3

print ( 1 , end = » — » )
print ( 2 , end = ‘-‘ )
print ( 3 , end = » — » )
# 1-2-3-

print ( 1 , end = ‘-я выведусь после первого print-‘ )
print ( 2 , end = ‘-a я после второго-‘ )
print ( 3 , end = ‘-я выведусь после третьего-‘ )
# 1-я выведусь после первого print-2-a я после второго-3-я выведусь после третьего-

Рассмотрим второй параметр функции print — sep, sep от английского separator (разделитель). По умолчанию параметр sep равен ‘ ‘. Время для экспериментов ╰(▔∀▔)╯.

print ( 1 , 2 , 3 , 4 )
print ( 1 , 2 , 3 , 4 , sep = ‘+++’ )
print ( 1 , 2 , 3 , 4 , sep = ‘разделитель’ )
print ( 1 , 2 , 3 , 4 , sep = ‘(◕‿◕)’ )
print ( 1 , 2 , 3 , 4 , sep = ‘(ノ◕ヮ◕)ノ*:・゚✧’ )
# 1 2 3 4
# 1+++2+++3+++4
# 1разделитель2разделитель3разделитель4
# 1(◕‿◕)2(◕‿◕)3(◕‿◕)4
# 1(ノ◕ヮ◕)ノ*:・゚✧2(ノ◕ヮ◕)ノ*:・゚✧3(ノ◕ヮ◕)ノ*:・゚✧4

Функция input

Функция input является функцией стандартного ввода (stdin). Ее главная задача — это передача введенных пользователем данных в функцию.

name = input ()
print ( ‘Hello, ‘ + name)

Функция input может принимать всего лишь один аргумент — строку, которая выведется перед кареткой ввода

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)

Читайте также:  Тег INPUT, атрибут maxlength

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

Привет, Максим! Ваш возраст равен 20 !

Источник

Как работает функция input() в Python

Часто бывает, что разработчикам необходимо принять ввод от пользователя для дальнейшей обработки с приложением.

Python предоставляет встроенный метод для приема ввода от пользователя. Функция Python input() принимает ввод от пользователя. builtins.py Python builtins.py содержит функцию Python input().

Синтаксис:
input(prompt)
Приглашение не является обязательным в функции input(). Подсказка — это в основном строка, то есть сообщение, отображаемое перед вводом.

Любая строка, помещенная в качестве аргумента во входную функцию, печатается в том виде, в котором она есть на экране вывода.

Работа функции Python input()

  • Как только интерпретатор встречает функцию input(), он останавливает выполнение программы до тех пор, пока пользователь не предоставит ввод в программу.
  • Введенные пользователем данные автоматически преобразуются в строку. Независимо от того, вводит ли пользователь данные целочисленного или плавающего типа, функции input() по-прежнему преобразуют их в строку.
  • Таким образом, его необходимо явно преобразовать в другой тип данных в программе с помощью преобразования типов.

Пример

x = input() print("The entered value is:", x)

Выход:
10
The entered value is: 10

Функция input() со строкой в качестве аргумента

name = input('Enter your name: ') print("Name of the candidate is:", name)

Выход:
Enter your name: Safa Mulani
Name of the candidate is: Safa Mulani

Умножьте два числа, приняв ввод от пользователя

x = input() y = input() z = x * y print("Result is: ", z)

ввод

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

x = input("Enter the number1: ") y = input("Enter the number2: ") z = int(x) * int(y) print("Result is: ", z)

Вывод:
Enter the number1: 10
Enter the number2: 20
Result is: 200

Источник

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