Python ввод входных данных

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

Переменная — это именованный контейнер для заданного значения.

# Пример создания переменных

age = 19
name = ‘Ivan’
isActive = True

# name и Name — это разные переменные

# Имена переменных не могут начинаться с цифры!

В Python есть 4 примитивных типа данных:

# float (дробные числа)
fraction = 2.5

# bool (правда или ложь)
isReady = True # всего два значения: True и False

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

age = ’22’ # str -> ’22’
age = int (age) # int -> 22
age = float (age) # float -> 22.0
age = bool (age) # bool -> True

Функция print() выводит данные на экран.

name = ‘Alexey’
# В скобках записываются переданные в функцию параметры
print (name)

Функция print() может принимать несколько входных параметров.

Каждый print() выводит данные на новой строке. По умолчанию завершающий символ строки равен символу новой строки (\n).

print ( ‘Hello’ )
print ( ‘world’ )

Завершающий символ строки в функции print() можно изменять.

print ( ‘Hello’ , end = ‘ ‘ )
print ( ‘world’ )

Функция input() принимает пользовательский ввод данных.

name = input ()
print ( ‘Hello ‘ + name)
# После запуска скрипта Python будет ожидать ввода данных

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

name = input ( ‘Enter your name: ‘ )
print ( ‘Hello, ‘ + name)

Данные, полученные с помощью функции input(), имеют строковый тип данных (str).

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

# Сумма двух строчных чисел
number1 = input ( ‘Введите число: ‘ )
number2 = input ( ‘Введите число: ‘ )
print (number1 + number2)

Преобразуем строковый тип в целое число (str -> int).

# Исправленная сумма двух чисел
number1 = int ( input ( ‘Введите число: ‘ ))
number2 = int ( input ( ‘Введите число: ‘ ))
print (number1 + number2)

Примеры

# Произведение двух введенных чисел
a = int ( input ( ‘Введите число: ‘ ))
b = int ( input ( ‘Введите число: ‘ ))
print (a * b)

# Приветствие пользователя по его имени
firstname = input ( ‘Введите свое имя: ‘ ) # здесь приводить к типу int не нужно
lastname = input ( ‘Введите свою фамилию: ‘ )
print ( ‘Здравствуйте, ‘ + firstname + ‘ ‘ + lastname) # не забудьте про пробел между словами

# Ввод:
>> Иван
>> Иванов
# Вывод:
>> Здравствуйте, Иван Иванов

# Операция % позволяет получить остаток от деления
print ( 10 % 2 ) # 0, так как 10 делится на 2 нацело
print ( 10 % 3 ) # 1, остаток равен 1
print ( 10 % 4 ) # 2, остаток равен 2

# Операция // позволяет получить целую часть от деления
print ( 10 // 2 ) # 5
print ( 10 // 3 ) # 3
print ( 10 // 4 ) # 2

Решение задач

Посчитайте сумму трех введенных целых чисел

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

Пользователь вводит стороны прямоугольника, выведите его периметр

Пользователь вводит радиус круга, выведите площадь круга

Посчитайте сумму трех введенных дробных чисел.

n школьников делят k яблок поровну, неделящийся остаток остается в корзинке. Сколько яблок достанется каждому школьнику? Сколько яблок останется в корзинке?

# Ввод:
>> 10
>> 3
# Вывод:
>> 3 # каждому
>> 1 # останется

Источник

Получение пользовательского ввода в 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 2 txt = raw_input("Введите что-нибудь, чтобы проверить это: ") print "Это то, что вы только что ввели?", txt 
Введите что-нибудь, чтобы проверить это: Привет, мир! Это то, что вы только что ввели? Привет, мир! 

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

# Python 3 txt = input("Введите что-нибудь, чтобы проверить это: ") print("Это то, что вы только что ввели?", txt) 
Введите что-нибудь, чтобы проверить это: Привет, мир 3! Это то, что вы только что ввели? Привет, мир 3! 

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

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

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

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

# Ввод запрашивается и сохраняется в переменной test_text = input ("Введите число: ") # Преобразуем строку в целое число. # функция float() используется вместо int(), # для преобразования пользовательского ввода в десятичный формат, test_number = int(test_text) # Выводим в консоль переменную print ("Введенное число: ", test_number) 
Введите число: 13 Введенное число: 13 

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

test_number = int(input("Введите число: ")) 

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

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

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

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

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

test2word = input("Сколько вам лет? ") test2num = int(test2word) print("Ваш возраст ", test2num) 

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

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

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

test3word = input("Введите свое счастливое число: ") try: test3num = int(test3word) print("Это правильный ввод! Ваше счастливое число: ", test3num) except ValueError: print("Это не правильный ввод. Это не число вообще! Это строка, попробуйте еще раз.") 

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

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

Введите свое счастливое число: Семь Это не правильный ввод. Это не число вообще! Это строка, попробуйте еще раз. 

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

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

# Создадим функцию для демонстрации примера def example(): # Бесконечный цикл, который продолжает выполняться # до возникновения исключения while True: test4word = input("Как вас зовут? ") try: test4num = int(input("Сколько часов вы играете на своем мобильном телефоне?" )) # Если полученный ввод не число, будет вызвано исключение except ValueError: # Цикл будет повторяться до правильного ввода print("Error! Это не число, попробуйте снова.") # При успешном преобразовании в целое число, # цикл закончится. else: print("Впечатляет, ", test4word, "! Вы тратите", test4num*60, "минут или", test4num*60*60, "секунд на игры в своем телефоне!") break # Вызываем функцию example() 
Как вас зовут? Александр Сколько часов вы играете на своем мобильном телефоне? 3 Впечетляет, Александр! Вы тратите 180 минут или 10800 секунд на игры в своем телефоне! 

Выводы

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

Источник

Читайте также:  Python open two file
Оцените статью