Получение и обработка информации — один из важнейших элементов любого языка программирования, особенно если речь идет о получении информации от пользователей.
Python, будучи медленным относительно таких языков, как C или Java, предлагает продвинутые инструменты для получения, анализа и обработки данных от конечного пользователя.
В этом материале речь пойдет о том, какие функции Python можно использовать для этих целей.
Ввод в Python
Для получения информации с клавиатуры в Python есть функции input() или raw_input() (о разнице между ними чуть позже). У них есть опциональный параметр prompt , который является выводимой строкой при вызове функции.
Когда input() или raw_input() вызываются, поток программы останавливается до тех пор, пока пользователь не введет данные через командную строку. Для ввода нужно нажать Enter после завершения набора текста. Обычно Enter добавляет символ новой строки ( n ), но не в этом случае. Введенная строка просто будет передана приложению.
Решение задач на Phyton
Интересно, что кое-что поменялось в принципе работе функции между 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 используются для получения пользовательского ввода в разных форматах. Также научились обрабатывать исключения и ошибки, которые могут возникнуть в процессе.
Источник: pythonru.com
Составить программу, которая запрашивает ввод температуры тела человека и определяет, здоров он или болен (здоров при 36 только не надо так пистать var a: real; begin write (‘введите вашу температуру: ‘); read(a); //вещественное число вводится через точку if (a> =36) and (a< =37) then writeln (‘вы здоровы! ‘) else writeln (‘вы больны! ‘); end.
а какие числа то, или тебе программа нужна которая это делать будет?
Ответ разместил: SachaNabok
составить программу, которая запрашивает ввод температуры тела человека и определяет, здоров он или болен (здоров при 36 только не надо так пистать
write (‘введите вашу температуру: ‘);
read(a); //вещественное число вводится через точку
Похожие вопросы:
Информатика, 29.04.2019 18:34
Имеется набор карточек с числами, среди которых есть 7. карточки перевернуты числами вниз. требуется определить какой по счету карточке сверху находится 7.
Информатика, 03.05.2019 18:17
Составить программу с подпрограммой процедурой (на 13 строк) без параметров для вывода на экран следующего изображения (в первой и последней линии 55 элементов в линии):
Информатика, 07.05.2019 17:42
Как записать в паскале выражение?
Информатика, 13.05.2019 12:35
Подготовить презентацию на тему «форматы звука». позжалуйста!
Информатика, 14.05.2019 22:46
На с++! ! вводится определенное кол-во строк, требуется вывести строки в порядке уменьшения(от строки в которой больше всего символов , до той в которой меньше всего символов).
Информатика, 15.05.2019 14:16
Беспроводное подключение к сети интернет по мобильному телефону. рассказ/конспект по информатике. .
Информатика, 16.05.2019 14:18
10. составьте программу вычисления значення функции согласно предложеному варианту т = (k – п/k — n sin( 2а 13) при n-0.508; k=0.756; а= 45 градусов , ставлю 100 !
Информатика, 16.05.2019 14:59
Решите третий номер с блок схемы !
Информатика, 17.05.2019 07:02
Язык: c++ ос: ubuntu условие: открыть файл (формат может быть любым) и записать его контрольную сумму md5 в файл «output. txt». входные данные: название файла, для которого нужно найти контрольную сумму. выходные данные: его контрольная сумма md5 в файле «output. txt» примечание: гарантируется, что запуск программы будет производиться через консоль из той папки, в которой лежит файл, название которого вводится. если же файла такого нет, то программа должна просто завершить свою работу.
Информатика, 17.05.2019 07:01
Написать программу на языке с++ . мне нужно и извините что так мало .
Информатика, 17.05.2019 19:12
Синформатикоой вычислить длину кривой в с++ по уравнению 0,02e^2x=4sin(6x) на отрезке(можно взять любой небольшой)
Источник: otvetovik.com
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
net-courses-external / HomeWork / task-03.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cannot retrieve contributors at this time
176 lines (129 sloc) 7.74 KB
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents Copy raw contents
Copy raw contents
Работа со строками
Рекомендации к выполнению
- Создать папку ‘03-strings’ в корне репозитория.
- В вышеуказанной папке создать новое решение (solution). Название решения – ‘Strings’.
- Для каждого задания должен быть отдельный проект в составе решения.
- Название проекта – Task#, например, Task1, Task2, Task3 и т.д.
- Целевой рантайм — .NET Core 3.1.
Написать программу, которая определяет среднюю длину слова во введенной текстовой строке. Учесть, что символы пунктуации на длину слов влиять не должны.
NOTE: Используйте стандартные методы классов String и Char.
Написать программу, которая удваивает в первой введенной строке все символы, принадлежащие второй введенной строке.
Пример:
Введите первую строку: написать программу, которая Введите вторую строку: описание ннааппииссаать ппроограамму, коотоораая
- После запуска программа запрашивает первую строку.
- После ввода первой строки программа запрашивает вторую строку.
- После ввода второй строки программа выводит результат.
Разработать консольное приложение, которое выводит на экран (в виде таблицы) отличия в параметрах культур:
«ru» vs «en»
«en» vs «invariant»
«ru» vs «invariant»
Необходимо вывести на экране отличия в:
- формате отображения даты и времени,
- формате отображения числовых данных (разделитель дробной и целой части, разделитель групп разрядов и т.п.)
NOTE: Целесообразно реализовать отдельный метод, который принимает на входе объекты CultureInfo и выводит отличия на экран. Повторно использовать этот метод (Code Reuse) для вывода различных пар культур.
Проведите сравнительный анализ скорости работы классов String и StringBuilder для операции сложения:
string str = «»; StringBuilder sb = new StringBuilder(); int N = 100; for (int i = 0; i < N; i++) < str += «*»; >for (int i = 0; i
NOTE: для измерения скорости работы алгоритмов использовать класс Stopwatch.
NOTE: время измерять в миллисекундах.
NOTE: результатом работы алгоритмов должен быть объект типа String.
- После запуска программы результаты сравнения скорость работы алгоритмов должны быть выведены на экран в следующем виде:
String: 0 StringBuilder: 0
Напишите программу, которая заменяет все найденные в тексте HTML теги на знак “_”.
NOTE: Обязательно использовать регулярные выражения – класс Regex.
Введите HTML текст: Это текст с HTML кодами Результат замены: _Это_ текст _с_ _HTML_ кодами
- После запуска программа запрашивает текстовую строку.
- После ввода строки программа выводит результат замены.
Напишите программу, которая проверяет текстовую строку на соответствие имеющегося в ней текста формату вещественного числа и выводит, в каком формате оно записано.
- Число может быть записано в обычной нотации.
- Число может быть записано в научной нотации (например, 127 = 1.27*10 2 = 1.27e2, -0.0055 = -5.5*10 -3 = -5.5e-3).
Введите число: 5 Это число в обычной нотации
Введите число: -2.5 Это число в обычной нотации
Введите число: 5.75e-5 Это число в научной нотации
Введите число: * Это не число
- После запуска программа запрашивает ввод.
- После ввода строки программа выводит результат.
Программа должна корректно обрабатывать следующие сценарии:
1 | 5 | Это число в обычной нотации |
2 | -2.5 | Это число в обычной нотации |
3 | 5.75e-5 | Это число в научной нотации |
4 | -5.75e5 | Это число в научной нотации |
5 | * | Это не число |
6 | Hello world | Это не число |
Напишите программу, которая определяет, сколько раз в тексте встречается время. Необходимо учесть, что в сутках только 24 часа, а в часе – 60 минут.
NOTE: Обязательно использовать регулярные выражения – класс Regex.
Введите текст: В 7:55 я встал, позавтракал и к 10:77 пошел на работу. Время в тексте присутствует 1 раз.
- После запуска программа запрашивает ввод.
- После ввода строки программа выводит результат.
Источник: github.com