Перейти к содержимому

Как пользоваться командой input в python

  • автор:

Команда if и функция input в Python

В Python существует три команды выбора, которые исполняют код в зависимости от установленных условий, значений которых может быть истинным (True) либо ложным (False).

1. Проверка условий в Python.

Проверка равенств.

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

>>> car = ‘audi’
>>> car == ‘audi’
True

Присвоим переменной car значение ‘audi’. Во второй строке проверим равно ли значение переменной car. Двойной знак равно ( == ) используется для проверки равенства. В итоге Python возвращает значение True , означающий что значения равны. В случае неравенства значений, возвращается False .

>>> car = ‘audi’
>>> car == ‘bmw’
False

В Python проверка равенства выполняется с учетом регистра. В случае написания значений с разным регистром, значения получаются не равными.

>>> car = ‘audi’
>>> car == ‘Audi’
False

Проверка неравенства.

Проверка неравенства происходит с помощью восклицательного знака и знака равно ( != ). Восклицательный знак представляет отрицание, как и во многих языках программирования.

>>> car = ‘audi’
>>> car != ‘bmw’
True

1.2. Проверка нескольких условий.

Использование and для проверки нескольких условий.

Для проверки нескольких условий одновременно, используйте ключевое слово and . Чтобы выражение было истинно (True) оба условия должны быть истинны. В примере проверим возраст людей, чтобы был младше или в возрасте 30 лет.

>>> age_1 = 29
>>> age_2 = 20
>>> age_1 True

Если оба условия выполнены, то возвращается True.

Использование or для проверки нескольких условий.

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

>>> age_1 = 29
>>> age_2 = 20
>>> age_1 < 25 or age_2 < 25
True

2. Функция input() .

  • Функция input() запрашивает данные у пользователя и получает их. Получив данные, сохраняет их в переменной и в последующем вы можете работать с этой переменной.

>>> name = input (‘Как вас зовут? ‘)
Как вас зовут? Ян # вводит пользователь
>>> print(name)
Ян

  • Функция input() всегда возвращает строку. Если мы захотим сложить два числа, то получим не верный ответ. Пример:

>>> a = input (‘Введите число: ‘)
Введите число: 5
>>> b = input (‘Введите число: ‘)
Введите число: 10
>>> a + b
‘510’

Вместо того чтобы сложить 5 и 10 и в итоге получить 15, Python складывает строковое значения ‘5’ и ‘10′, и в итоге получает строку ‘510’. Это операция называется конкатенация строк. В результате создается новая строка из левого операнда, за которым следует правый.

  • Если вам требуется получить целое число, то преобразуйте строку в число с помощью функцииint () :

>>> a = int( input (‘Введите число: ‘))
Введите число: 5
>>> b = int( input (‘Введите число: ‘))
Введите число: 10
>>> a + b
15

  • Если вам требуется получить число с плавающей точкой, то используйте функцию float()

>>> a = float( input (‘Введите число: ‘))
Введите число: 12.5
>>> b = float( input (‘Введите число: ‘))
Введите число: 7.3
>>> a + b
19.8

3.1. Команда if .

Самая простая команда if состоит из одного условия и одного действия.

дествие # отступ в 4 пробела

Приведем пример программы, которая определяет платный ли вход в кинотеатр:

>>> age = 25
>>> if age >= 18 :
. print(‘Вход в кинотеатр для вас платный’)
. print(‘Приобретите билет в кассе’)
.
Вход в кинотеатр для вас платный
Приобретите билет в кассе

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

3.2. Команда if-else .

В случае если необходимо выполнить другое действие если условие ложно, можно воспользоваться командой if-else . Блок if записывается так же, как и раньше, а после него записывается блок else с набором действий в случае невыполнения команды if .

>>> age = 17
>>> if age >= 18 :
. print(‘Вход в кинотеатр для вас платный’)
. print(‘Приобретите билет в кассе’)
. else:
. print(‘Для вас вход бесплатный’)
.
Для вас вход бесплатный

Блок else записывается на уровне блока If , без 4 пробелов.

3.3. Команда if-elif-else .

Команда if-elif-else позволяет проверить сразу несколько условий. Предположим, стоимость билетов кинотеатр изменяется в зависимости от возврата посетителя.

>>> age = 35
>>> if age . print(‘Для вас вход бесплатный’)
. elif age < 18 :
. print(‘Стоимость билета 500 руб’)
. elif age . print(‘Стоимость билета 1000 руб’)
. else:
. print(‘Для вас вход бесплатный’)
.
Стоимость билета 1000 руб

Код выполняется последовательно, программа вначале проверяет соответствие возраста меньше или равно 7 лет, затем < 18 и т.д. Как только условия выполняются, Python выводит результат и действие программы прекращается. Важно ставить правильную последовательность условий. К примеру, если мы поставим условие младше или равно 60 в начало, то возраст меньше 7 и 18 не будет работать и программа сразу выдаст результат максимальной стоимости билета.

Наличие секции else в команде if-elif-else необязательно. Ее присутствие позволяет обработать результат, не удовлетворяющий никаким условиям.

4. Команда if со списками.

С помощью команды if , например при переборе списка, возможно использовать каждый элемент на свое усмотрение.

>>> cars = [ ‘ford’, ‘opel’, ‘audi’, ‘land rover’, ‘bmw’ ]
>>> for brand in cars:
. if brand == ‘audi’ :
. print(f»Гарантия на автомобиль 2 года»)
. elif brand == ‘bmw’ :
. print(f»Гарантия на автомобиль 3 года»)
. else:
. print(f»Гарантия на автомобиль 5 лет»)
.
Гарантия на автомобиль Ford 5 лет
Гарантия на автомобиль Opel 5 лет
Гарантия на автомобиль Audi 2 года
Гарантия на автомобиль Land Rover 5 лет
Гарантия на автомобиль Bmw 3 года

В данном примере с помощью команды for мы перебираем весь список автомобилей. Если марка автомобиля соответствует условия if-elif , то выводится для этих марок свое сообщение по условиям гарантии. В случае не совпадения условий, выдается общее сообщение для всех остальных марок.

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

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

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

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

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

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

  • Общие примеры использования функции input() ;
  • Проверка и преобразование типов при вводе данных с клавиатура;
  • Эмуляция терминала с использованием функцией input() .

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

>>> x = input('Enter your name:') # Enter your name:Anton >>> print('Hello, ', x) # Hello, Anton # Можно и без строки подсказки >>> print('Введите число:') # Введите число: >>> x = input() # 10 # Не забываем что функция # возвращает строку >>> x # '10' 

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

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

# test.py def str_to_num(line): """функция конвертирует строку в число""" line = line.strip() # если в строке только цифры if line.isdigit(): return int(line) # если строка содержит точку или запятую elif '.' in line or ',' in line: # если из строки убрать точку или запятую # и при этом в строке останутся только цифры if any(line.replace(x, '').isdigit() for x in ['.', ',']): return float(line.replace(',', '.')) else: # ошибка print('Это не число!\n') return None print('\nДля выхода из программы введите Ctrl+C') print('Для окончания ввода цифр нажмите Enter\n') nums = [] while True: inpt = input('Ожидается ввод числа или Enter:') if inpt == '': # Закончить ввод чисел break n = str_to_num(inpt) if n is not None: nums.append(n) if nums: if len(nums) == 1: print('Вы ввели одну цифру: ', nums[0]) else: print('\nВыберите действие:') print(' сложить цифры введите 1;') print(' умножить цифры введите 2.\n') rez = None while True: inpt = input('Введите 1 или 2:') inpt = inpt.strip() if inpt == '1': rez = sum(nums) print('Сумма введенных чисел:', rez) elif inpt == '2': rez = 1 for i in nums: rez *= i print('Произведение введенных чисел:', rez) else: print('Неправильное действие.\n') if rez is not None: break else: print('Вы ничего не ввели.') 
$ python3 test.py Для выхода из программы введите Ctrl+C Для окончания ввода цифр нажмите Enter Ожидается ввод числа или Enter:10 Ожидается ввод числа или Enter:13.9 Ожидается ввод числа или Enter:9,9 Ожидается ввод числа или Enter: Выберите действие: сложить цифры введите 1; умножить цифры введите 2. Введите 1 или 2:2 Произведение введенных чисел: 1376.1000000000001

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

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

# test.py import sys, traceback def run_user_code(envdir): source = input(">>> ") try: # Выполнение введенного кода с клавиатуры exec(source, envdir) except Exception: print("Exception in user code:") print("-"*60) traceback.print_exc(file=sys.stdout) print("-"*60) # словарь для хранения введенных переменных envdir = <> while True: run_user_code(envdir) 

Запускаем эмуляцию интерпретатора Python.

$ python3 test.py >>> a = 3 >>> b = '1' >>> a + b Exception in user code: ------------------------------------------------------------ Traceback (most recent call last): File "tt.py", line 6, in run_user_code exec(source, envdir) File "", line 1, in TypeError: unsupported operand type(s) for +: 'int' and 'str' ------------------------------------------------------------
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Функция abs(), абсолютное значение числа
  • Функция all(), все элементы True
  • Функция any(), хотя бы один элемент True
  • Функция ascii(), преобразует строку в ASCII
  • Функция bin(), число в двоичную строку
  • Класс bool(), логическое значение объекта
  • Функция breakpoint(), отладчик кода
  • Класс bytearray(), преобразует в массив байтов
  • Класс bytes(), преобразует в строку байтов
  • Функция callable(), проверяет можно ли вызвать объект
  • Функция chr(), число в символ Юникода
  • Класс classmethod, делает функцию методом класса
  • Функция compile() компилирует блок кода Python
  • Класс complex(), преобразует в комплексное число
  • Функция delattr(), удаляет атрибут объекта
  • Класс dict() создает словарь
  • Функция dir(), все атрибуты объекта
  • Функция divmod(), делит числа с остатком
  • Функция enumerate(), счетчик элементов последовательности
  • Функция eval(), выполняет строку-выражение с кодом
  • Функция exec(), выполняет блок кода
  • Функция filter(), фильтрует список по условию
  • Класс float(), преобразует в вещественное число
  • Функция format(), форматирует значение переменной
  • Класс frozenset(), преобразует в неизменяемое множество
  • Функция getattr(), значение атрибута по имени
  • Функция globals(), переменные глобальной области
  • Функция hasattr(), наличие атрибута объекта
  • Функция hash(), хэш-значение объекта
  • Функция help(), справка по любому объекту
  • Функция hex(), число в шестнадцатеричную строку
  • Функция id(), идентификатор объекта
  • Функция input(), ввод данных с клавиатуры
  • Класс int(), преобразует в тип int
  • Функция isinstance(), принадлежность экземпляра к классу
  • Функция issubclass(), проверяет наследование класса
  • Функция iter(), создает итератор
  • Функция len(), количество элементов объекта
  • Класс list(), преобразовывает в список
  • Функция locals(), переменные локальной области
  • Функция map(), обработка последовательности без цикла
  • Функция max(), максимальное значение элемента
  • Класс memoryview(), ссылка на буфер обмена
  • Функция min(), минимальное значение элемента
  • Функция next(), следующий элемент итератора
  • Класс object(), возвращает безликий объект
  • Функция oct(), число в восьмеричную строку
  • Функция open(), открывает файл на чтение/запись
  • Функция ord(), число символа Unicode
  • Функция pow(), возводит число в степень
  • Функция print(), печатает объект
  • Класс property(), метод класса как свойство
  • Класс range(), генерирует арифметические последовательности
  • Функция repr(), описание объекта
  • Функция reversed(), разворачивает последовательность
  • Функция round(), округляет число
  • Класс set(), создает или преобразовывает в множество
  • Функция setattr(), создает атрибут объекта
  • Класс slice(), шаблон среза
  • Функция sorted(), выполняет сортировку
  • Декоратор staticmethod(), метод класса в статический метод
  • Класс str(), преобразует объект в строку
  • Функция sum(), сумма последовательности
  • Функция super(), доступ к унаследованным методам
  • Класс tuple(), создает или преобразует в кортеж
  • Класс type(), возвращает тип объекта
  • Функция vars(), словарь переменных объекта
  • Функция zip(), объединить элементы в список кортежей
  • Функция __import__(), находит и импортирует модуль
  • Функция aiter(), создает асинхронный итератор
  • Функция anext(), следующий элемент асинхронного итератора

Как пользоваться командой input в python

Python 3 — это современный язык, на котором просто и приятно писать программы.

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

print(5 + 10) print(3 * 7, (17 - 2) * 8) print(2 ** 16) # две звёздочки означают возведение в степень print(37 / 3) # один слэш — это деление с ответом-дробью print(37 // 3) # два слэша считают частное от деления нацело # это как операция div в других языках print(37 % 3) # процент считает остаток от деления нацело # это как операция mod в других языках

Для ввода данных в программу мы используем функцию input() . Она считывает одну строку.

Вот программа, которая считывает имя пользователя и приветствует его:

Пётр
print('Как вас зовут?') name = input() # считываем строку и кладём её в переменную name print('Здравствуйте, ' + name + '!')

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

Попробуем написать программу, которая считывает два числа и выводит их сумму. Для этого считаем два числа и сохраним их в переменные a и b , пользуясь оператором присваивания = . Слева от оператора присваивания в программах на Питоне ставится имя переменной — например, строка из латинских букв. Справа от оператора присваивания ставится любое выражение. Имя станет указывать на результат вычисления выражения. Проиграйте эту программу и посмотрите на результаты её работы:

a = input() b = input() s = a + b print(s)

Мы видим, что программа выводит 57 , хотя в реальной жизни 5 + 7 будет 12 . Это произошло потому, что Питон в третьей строчке «сложил» две строки, а не два числа. В Питоне две строки складываются так: к первой строке приписывается вторая.

Обратите внимание, что в визуализаторе содержимое переменных a и b заключено в кавычки. Это означает, что в a и b лежат строки, а не числа.

В Питоне все данные называются объектами. Число 2 представляется объектом «число 2», строка ‘hello’ – это объект «строка ‘hello’ ».

Каждый объект относится к какому-то типу. Строки хранятся в объектах типа str , целые числа хранятся в объектах типа int , дробные числа (вещественные числа) — в объектах типа float . Тип объекта определяет, какие действия можно делать с объектами этого типа. Например, если в переменных first и second лежат объекты типа int , то их можно перемножить, а если в них лежат объекты типа str , то их перемножить нельзя:

first = 5 second = 7 print(first * second) first = '5' second = '7' print(first * second)

Чтобы преобразовать строку из цифр в целое число, воспользуемся функцией int() . Например, int(’23’) вернет число 23 .

Вот пример правильной программы, которая считывает два числа и выводит их сумму:

a = int(input()) b = int(input()) s = a + b print(s)

input

prompt — Строка-приглашение, которая должна быть отправлена на стандартное устройство вывода (заключительный перевод каретки при этом удаляется).

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

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

В случае считывания EOF (признак конца файла), поднимается исключение EOFError.

 my_str = input('Expression: ') # Expression: 2+2 
my_str # 2+2

my_str = input('Your string here: ') # Your string here: my string
my_str # my string
Python 2

Вызов функции эквивалентен вызову eval(raw_input(prompt)).

 my_str = raw_input('Expression: ') # Expression: 2+2 
my_str # 4

На заметку
В общем случае для получения данных от пользователя следует использовать raw_input().

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *