Напишите программу которая просит пользователя что нибудь ввести с клавиатуры

Обновлено: 06.07.2024

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

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

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

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

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

input() всегда возвращает строку :

Также у 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), возникнет ошибка:

На практике такие ошибки нужно обрабатывать через 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 успешно забронирована!

Input() → int

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

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

Input() → float

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

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

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

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

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

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

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

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

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

В этом руководстве вы узнали, как принимать данные от пользователя, введенные с клавиатуры, научились преобразовывать данные из 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 3

Вывод

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

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

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

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

Вывод

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

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

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

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

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

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

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

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

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

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

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

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

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

Вывод:

Выводы

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

2. Напишите программу (файл PosNeg. py), которая запрашивает у пользователя число. Если оно больше нуля, то в ответ на экран выводится число 1. Если введëнное число не является положительным, то на экран должно выводиться -1.

+

7 Смотреть ответы Добавь ответ +10 баллов


Ответы 7

+

На понятном языке:

На понятном языке:

1. Напишите программу (файл TakeInput.py), которая просит пользователя что-нибудь ввести с клавиатур

Ответ

+

44 - найти длины всех сторон и градусные меры всех углов

59- а в квадрате

60- произведение высоты на основание

61- половина произведения диагоналей

64-половина произведения его катетов

66 - полусумма оснований умноженная на высоту

Ответ

+

Тема текста: Как вести себя в общении с другими людьми.

Основная мысль: "Чем бы тебе ни приходилось заниматься, делай это как следует, делай тщательно, не кое-как."

Название : Манеры поведения

Ответ

+

Const
N = 10;
Var
A:array[1..N] of integer;
i,j,M,B,C,p,s:integer;
Begin
Randomize;

Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(N);
Write(' ',A[i]);
End;
WriteLn;

p:=0;
For i:= 1 to N do
Begin
M:=i;
For j:= i+1 to N do
if A[j]<A[M] then M:=j;
if M<>i then
Begin
B:=A[M];
A[M]:=A[i];
A[i]:=B;
p:=p+1;

Write('Перестановка №',p,':');
For j:= 1 to N do
Write(' ',A[j]);
WriteLn;
End;
End;
WriteLn;
Write('Отсортированный массив:');
For i:= 1 to N do
Write(' ',A[i]);

WriteLn;
Write('Введите число: ');ReadLn(C);
m:=N div 2;
i:=1;
j:=N;
s:=0;
While (A[m]<>C)and(i<=j) do
Begin
if C > A[m] then i:=m+1
else j:=m-1;
s:=s+1;
m:=(i+j) div 2;
End;
WriteLn;
if A[m]=C then WriteLn('В массиве есть данное число')
else WriteLn('В массиве нет данного числа');
WriteLn('Кол-во перестановок за сортировку: ',p);
WriteLn('Кол-во сравнений за поиск: ',s);
End.

Примеры:
Исходный массив: 0 4 5 4 1 2 6 7 0 7
Перестановка №1: 0 0 5 4 1 2 6 7 4 7
Перестановка №2: 0 0 1 4 5 2 6 7 4 7
Перестановка №3: 0 0 1 2 5 4 6 7 4 7
Перестановка №4: 0 0 1 2 4 5 6 7 4 7
Перестановка №5: 0 0 1 2 4 4 6 7 5 7
Перестановка №6: 0 0 1 2 4 4 5 7 6 7
Перестановка №7: 0 0 1 2 4 4 5 6 7 7

Отсортированный массив: 0 0 1 2 4 4 5 6 7 7
Введите число: 3

В массиве нет данного числа
Кол-во перестановок за сортировку: 7
Кол-во сравнений за поиск: 4

Исходный массив: 4 4 1 3 4 4 5 0 7 2
Перестановка №1: 0 4 1 3 4 4 5 4 7 2
Перестановка №2: 0 1 4 3 4 4 5 4 7 2
Перестановка №3: 0 1 2 3 4 4 5 4 7 4
Перестановка №4: 0 1 2 3 4 4 4 5 7 4
Перестановка №5: 0 1 2 3 4 4 4 4 7 5
Перестановка №6: 0 1 2 3 4 4 4 4 5 7

Отсортированный массив: 0 1 2 3 4 4 4 4 5 7
Введите число: 5

В массиве есть данное число
Кол-во перестановок за сортировку: 6
Кол-во сравнений за поиск: 2

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

Напишите программу, которая просит пользователя ввести два числа, получает числа от пользователя и затем печатает сумму, произведение, разность и частное этих чисел.

практика программирования - результат 1

Напишите программу, которая печатает числа от 1 до 4 на одной и той же строке, так что соседние числа разделены одним пробелом. Напишите программу, используя следующие способы:
а) Используя один оператор вывода с одним оператором поместить в поток.
b) Используя один оператор вывода с четырьмя операторами поместить в поток.
c) Используя четыре оператора вывода.

практика программирования - результат 2

практика программирования - результат 3

Напишите программу, которая вводит три целых числа с клавиатуры и печатает сумму, среднее значение, произведение, меньшее и большее из этих чисел. Диалог на экране должен выглядеть следующим образом:

практика программирования - результат 4

Напишите программу, которая считывает радиус круга и печатает диаметр круга, длину окружности и площадь. Используйте значение константы 3.14159 для числа p. Выполните эти вычисления в операторе вывода. (Замечание: константа в отличие от переменной не может изменять свое значение на протяжении работы программы. Для этого в языке программирования С++ предусмотрен спецификатор const, которые запрещает изменение константного значения. В случае его изменения в коде программы, компилятор выдает ошибку еще на стадии компиляции программы. Константа объявляется также как и переменная, только перед объявлением добавляется ключевое слово const. Например:

Константа дробного типа с обычной точностью (6-ть знаков после запятой)).

практика программирования - результат 5

Напишите программу, которая печатает прямоугольник, овал, стрелу и ромб в следующем виде

практика программирования - задание

практика программирования - результат 6

Напишите программу, которая считывает пять целых чисел, определяет и печатает наибольшее и наименьшее из них. Используйте только те приемы программирования, которые мы с вами изучили в предыдущих главах учебника (Подсказка: используйте вложенные конструкции оператора if)

практика программирования - результат 7

Напишите программу, которая считывает целое число, определяет и печатает, четное оно или нечетное. (Подсказка: Используйте операцию вычисления остатка. Четное число кратно двум. Любое число, кратное двум, при делении на 2 дает в остатке нуль.).

практика программирования - результат 8

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

практика программирования - результат 9

Отобразите модель шахматной доски восемью операторами вывода и затем отобразите ту же модель наименьшим возможным количеством операторов вывода:

практика программирования - задание

практика программирования - результат 10

Заглянем вперед. В предшествующих главах учебника вы узнали о целых числах и типе int . C++ может также представлять прописные и строчные буквы и значительное многообразие специальных символов. Для представления каждого отдельного символа С++ использует небольшие целые числа. Компьютер использует множество символов и соответствующие целые представления для этих символов называются набором символов компьютера. Вы можете напечатать символ, просто заключив его в одиночные кавычки

Вы можете напечатать целочисленный эквивалент символа, записав перед ним (int) - это называется приведением к типу.

Когда выполняется предшествующий оператор, он печатает значение 65 (в системе, которая использует так называемый набор символов ASCII). Напишите программу, которая печатает целочисленные эквиваленты ряда прописных и строчных букв, цифр и специальных символов. Как минимум, определите целочисленные эквиваленты следующих символов: A B C a b c 0 1 2 $ * + / и пробела.

практика программирования - результат 11

Напишите программу, которая вводит число из пяти цифр, разделяет число на отдельные цифры и печатает их отдельно друг от друга с тремя пробелами между ними. Например, если пользователь вводит в программу 42339, то должно быть напечатано

Читайте также: