Ввод строк, Чисел и Обработка исключений ~ PythonRu
Получение и обработка информации — один из важнейших элементов любого языка программирования, особенно если речь идет о получении информации от пользователей.
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()
со строкой Пять
появится исключение
, и программа остановит работу.
Вот как можно сделать код безопаснее и обработать ввод:
test3word = input("Введите свое счастливое число: ") try: test3num = int(test3word) print("Это правильный ввод! Ваше счастливое число: ", test3num) except ValueError: print("Это не правильный ввод. Это не число вообще! Это строка, попробуйте еще раз.")
Этот блок оценит ввод. Если он является целым числом, представленным в виде строки, то функция input()
конвертирует его в целое число. Если нет, то программа выдаст исключение, но вместо ошибки оно будет перехвачено. В результате вызовется вторая инструкция
.
Вот так будет выглядеть вывод с исключением.
Введите свое счастливое число: Семь Это не правильный ввод. Это не число вообще! Это строка, попробуйте еще раз.
Такой код можно объединить с другой конструкцией, например, циклом 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 используются для получения пользовательского ввода в разных форматах. Также научились обрабатывать исключения и ошибки, которые могут возникнуть в процессе.
- ТЕГИ
- для начинающих
Максим
Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.
Python Q https://yandex.ru/q/loves/python Online
Python QCEO [email protected]://secure.gravatar.com/avatar/b16f253879f7349f64830c64d1da4415?s=96&d=mm&r=gCEO PythonruPythonАлександрРедакторhttps://t.me/cashncarryhttps://pythonru.com/https://yandex.ru/q/profile/cashnc/[email protected] Zabrodin2018-10-26OnlinePython, Programming, HTML, CSS, JavaScriptpython — Ввод n элементов в одну строку
Вот программа:
i = 1 k = 0 p = 0 n = int(input()) for i in range(1, n+1): a = int(input()) if a % 2 == 0: k += 1 if a % 2 != 0: p += 1 print(abs(k-p))
Элементы можно вводит в терминал только так:
3 1 2 3
А нужно вот так:
3 1 2 3
Как это сделать?
- python
- список
2
можно разбить строку на числа:
i = [int(a) for a in input().split()]
пояснение: input()
содержит введённую строку, .split()
разбивает её по пробельным символам, создавая список полученных значений, дальше каждый элемент этого списка превращается в int
, и добавляется в список i
Это выражение аналогично следующему:
i = [] for a in input().split(): i.append( int(a) )
результат:
IN: "12 214 5 24 5" OUT: [12, 214, 5, 24, 5]
использование в вашей программе:
i = 1 k = 0 p = 0 n = int(input()) # не будет использоваться nums = [int(a) for a in input().split()] for a in nums: if a % 2 == 0: k += 1 if a % 2 != 0: p += 1 print(abs(k-p))
1
input1 = list(map(int, '12 214 5 24 5'.split())) input2 = [int(a) for a in '11 213 4 23 5'.split()] print(input1) # [12, 214, 5, 24, 5] print(*input2) # 11 213 4 23 5 from itertools import chain print(*chain(input1, input2)) # 12 214 5 24 5 11 213 4 23 5
Предлагаю такой вариант
n=int(input()) a=map(int, input(). split(maxsplit=n)) print(sum(a))
1
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Python 3 — функция input()
Улучшить статью
Сохранить статью
- Уровень сложности: Easy
- Последнее обновление: 06 окт, 2020
Улучшить статью
Сохранить статью
В Python мы используем функцию
Синтаксис: input(prompt)
Параметр:
- Prompt: (необязательно) Строка, которая записывается в стандартный вывод (обычно на экран) без новой строки.
Возврат: Строковый объект
Давайте посмотрим на примеры:
Пример 1: Получение ввода от пользователя.
Python3
|
Выход:
Geeksforgeeks
Пример 2: Получение ввода от пользователя с помощью сообщения.
Python
|
Вывод:
Введите ваше имя: привет анкит рай
Пример 3: По умолчанию функция input() принимает ввод пользователя в виде строки. Итак, чтобы получить ввод в виде int, вам нужно использовать int() вместе с функцией ввода.
Python3
|
Вывод:
Введите число:15 16
Пример 4: Давайте возьмем ввод с плавающей запятой вместе с функцией ввода.
Питон3
|
Вывод:
Введите число 5 6,0
Пример 5: Давайте возьмем ввод списка вместе с функцией ввода.
Python3
|
Вывод:
Введите число 12345 ['1', '2', '3', '4', '5']
Пример 6: Возьмем ввод кортежа вместе с функцией ввода.
Python3
|
Вывод:
Введите число 123 («1», «2», «3»)
Входная строка Python | Полное руководство по входной строке Python с кодом
В Python, чтобы прочитать строку или предложение от пользователя через клавиатуру устройства ввода и вернуть его на экран вывода или консоль, мы используем функцию input(). Есть также несколько встроенных методов или функций для чтения строки на консоли и ее возврата на других языках. В Python, как мы знаем, мы не указываем никаких типов данных при объявлении какой-либо переменной, а также есть две разные функции для отображения и обработки входных данных, полученных от пользователя, это input() и print(). В Python функция print() используется для отображения полученного ввода или значения, которое она хочет отобразить, которое указано, тогда как для приема строки ввода от пользователя есть две функции, такие как input() и raw_input(). .
Работа Python Input String
Python имеет две функции для приема ввода от пользователя или чтения данных, которые вводятся через консоль, и результатом этого может быть строка, список, кортеж или целое число и т. д. , который хранится в переменной. Две функции ввода Python:
1. raw_input()
Этот метод Python считывает входную строку или строку и может считывать команды от пользователей или данные, введенные с помощью консоли. Возвращаемое значение этого метода будет только строкового типа данных. В Python этот метод используется только тогда, когда пользователь хочет прочитать данные, введя их через консоль, а возвращаемое значение представляет собой строку.
Синтаксис:
raw_input([приглашение])
Параметр:
приглашение:
Это необязательно; это может быть любая строка или команда, которую вы хотите отобразить на выходной консоли.
Пример:
place = raw_input("Где вы остановились?") print ("Название места, где я живу: ", место) печать (тип (место))
Вывод:
2. input()
Это также метод Python для чтения входной строки от пользователя через устройство ввода, такое как клавиатура, и отображения возвращаемого значения этой функции на экране вывода или консоли. Возвращаемым значением этого метода может быть строка, число, список, кортеж и т. д. В Python мы не объявляем какой-либо тип данных при инициализации или объявлении переменной. Как и в функции raw_input(), она может возвращать только строковое значение, но в этой функции input() мы можем получить возвращаемое значение любого типа данных; Python решает, какой тип данных должен быть возвращен на основе значения переменной. Если вы попросили пользователя ввести возраст, он автоматически примет тип данных int для переменной age.
Синтаксис:
ввод([приглашение])
Параметр:
приглашение: Это снова необязательно; это может быть любая строка или команды, которые пользователь хочет отобразить. В этой функции все, что вводит пользователь, функция input() преобразует в строку, и эта функция останавливает выполнение дальнейшей программы до тех пор, пока пользователь не введет значение, запрашиваемое через эту функцию.
Пример:
name = input("Введите ваше имя: ") print("меня зовут: ", имя) age = input("Введите свой возраст: ") print("возраст:", возраст) печать (тип (имя)) печать (тип (возраст))
Вывод:
Из приведенной выше программы, поскольку первая переменная «имя» имеет функцию ввода (), которая просит пользователя ввести имя, функция ввода () всегда преобразует значение, полученное в строку как «имя». ” уже является строковым типом, такой проблемы нет, но во второй переменной это «age», который имеет тип данных int, но функция input() преобразует его в строку. Иногда вы можете быть более совершенным, явно объявив входное значение как целочисленный тип.
Примеры
Давайте обсудим примеры входной строки Python.
Пример #1
Возьмем для отображения умножение двух чисел.
Код:
n1 = int(input("Введите первое число для умножения: ")) n2 = int(input("Введите второе число для умножения: ")) произведение = n1 * n2 print("Умножение двух чисел: ", произведение)
Вывод:
Пример #2
Функция input() также может принимать значение с плавающей запятой аналогично целочисленному значению, явно объявляя число с плавающей запятой, как мы сделали в приведенной выше программе, как целое.
Код:
fn1 = float(input("Введите число с плавающей запятой: ")) print("Число с плавающей запятой: ", fn1)
Вывод:
Пример #3
Эту функцию input() можно также использовать для чтения списка в качестве ввода от пользователей. Мы могли бы принимать int и float точно так же, как мы можем принимать list и array через эту функцию().
Код:
lst = input ("Введите список чисел, которые вы хотите отобразить:") out_list = lst.split() print(" Введенный вами список: ", lst)
Вывод:
Пример #4
В приведенном выше примере мы используем функцию split() для разделения строки по пробелу и добавления этих чисел в список.
Наконец, вы можете использовать функцию input() даже для чтения нескольких значений от пользователей разных типов данных в одном предложении. Это можно показать на следующем примере:
Допустим, мы хотим запросить профиль пользователя, как показано ниже:
Код:
имя, рост, вес, возраст = ввод («Введите данные профиля как ваше имя, рост, вес, возраст) \n используя пробел для различения значений: ") .split() print(" Данные профиля пользователя следующие: ", имя, рост, вес, возраст)
Вывод:
Заключение
В Python вы также можете попросить пользователя ввести значения или строку или список кортежей и т.