Введите два числа с клавиатуры и сложите их, выведите результат на экран python

Обновлено: 20.11.2024

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

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

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

Python также включает пару специальных операторов для использования с данными типа int: оператор целочисленного деления // и оператор целочисленного остатка % . Оператор целочисленного деления возвращает частное, которое получается при делении одного целого числа на другое.

Операция целочисленного остатка возвращает остаток, оставшийся после деления одного целого числа на другое целое число.

Преобразование чисел в текст и текста в числа

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

Вы также можете получить текст с помощью команды input(), которая предлагает пользователю ввести текст.

Текст, который появляется в input(), представляет собой подсказку, сообщающую пользователю, какую информацию он должен ввести. Когда ваша программа дойдет до команды ввода, она отобразит приглашение и будет ждать, пока пользователь введет какой-либо ввод. Как только пользователь нажмет Enter, его текст будет сохранен в переменной, которой вы присвоили результат ввода.

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

Если вы хотите интерпретировать ввод как вещественное число с плавающей запятой, используйте эту форму:

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

Конкатенация работает только с двумя строковыми операндами. Если вы хотите использовать конкатенацию с другими типами данных, вам придется преобразовать эти данные в строку с помощью команды str().

Инструкция if-else

Основной конструкцией Python для принятия решений и действий в различных случаях является оператор if-else. Основная форма оператора if-else такова:

Инструкция if-else начинается с выполнения теста, результат которого может быть либо истинным, либо ложным. Если результат теста верен, выполняется набор операторов в первом блоке с отступом. В противном случае операторы в блоке после else будут выполнены. После выполнения операторов в выбранной ветке выполнение продолжается со следующего оператора после оператора if-else.

Самый распространенный способ формирования тестов для оператора if-else — использование операторов сравнения. Вот таблица доступных операторов сравнения.

операторзначение
==равно
!= не равно
больше, чем
= больше или равно

Особенно обратите внимание на сравнительный тест ==. Очень распространенная ошибка, которую совершают начинающие программисты, заключается в том, что мы = вместо == в тесте. = означает «установить для элемента слева значение справа», а не «сравнить элемент слева с элементом справа».

Вот два примера использования оператора if-else.

Обратите внимание, что размещение одного оператора if-else внутри другого вполне допустимо. Это называется вложенным if-else.

Составные тесты

Полезной альтернативой размещению одного оператора if-else внутри другого является возможность формирования составного теста. Составной тест — это тест, состоящий из двух или более обычных тестов, соединенных между собой логическими соединителями и или или .

Мы можем переписать предыдущий пример, сказав, что вы должны быть старше 12 лет и выше пяти футов, чтобы кататься на роликах:

Варианты форм

Python также позволяет использовать оператор if-else в различных формах.Первый вариант заключается в том, что вы можете построить оператор if только с ветвью if и без ветви else.

Еще один полезный вариант возникает, когда нам нужно провести серию сравнений, чтобы классифицировать что-то более чем по двум возможным категориям. Один из способов категоризации — использование вложенных операторов if-else.

Такая задача категоризации встречается на практике так часто, что в Python есть специальный вариант if-else, в котором используется ветвь else-if, помеченная elif .

Пример программы — внесение изменений

Следующая программа демонстрирует использование целочисленной арифметики и операторов if-else. Программа предлагает пользователю ввести сумму в копейках для внесения сдачи. Затем программа использует алгоритм, чтобы вычислить, сколько четвертаков, десятицентовиков, пятицентовых монет и пенни нужно отсчитать, чтобы получить сдачу на эту сумму.

Программа использует следующую логику для вычисления количества каждой используемой монеты:

Вот пример того, как это работает. Предположим, мы ввели 87 центов.

  1. 87//25 равно 3, поэтому мы раздаем 3 четверти.
  2. После раздачи четвертаков у нас осталось 87 - 3*25 = 12 или 87%25 = 12 центов для раздачи.
  3. 12//10 равно 1, поэтому мы раздаем 1 цент.
  4. После раздачи десятицентовика у нас осталось 12 - 1*10 = 2 или 12%10 = 2 цента для раздачи.
  5. 2//5 равно 0, поэтому мы раздаем 0 никелевых монет.
  6. 2%5 – это 2, поэтому у нас еще есть 2 цента, которые можно раздать.
  7. Наконец, мы раздаем 2 цента как 2 пенни.

Чтобы обеспечить правильное форматирование вывода с правильным использованием форм множественного и единственного числа, мы используем набор операторов if-else, которые помогают нам решить, как печатать вывод. Вы видите, как логика обрабатывает случай с 0 монетами?

1. Как читать и писать на Python

Каждая программа в конечном итоге является обработчиком данных, поэтому мы должны знать, как вводить и выводить данные в ней. Существует функция print() для вывода данных из любой программы Python. Чтобы использовать его, передайте через запятую список аргументов, которые вы хотите напечатать, в функцию print(). Давайте посмотрим пример. Нажмите «Выполнить», а затем «Далее», чтобы увидеть, как программа выполняется построчно:

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

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

2. Сумма чисел и строк

Попробуем написать программу, которая вводит два числа и выводит их сумму. Мы читаем два числа и сохраняем их в переменных a и b с помощью оператора присваивания = . Слева от оператора присваивания мы помещаем имя переменной. Имя может быть строкой латинских символов (A-Z, a-z, 0-9, _), но должно начинаться с буквы в диапазоне A-Z или a-z. Справа от оператора присваивания мы помещаем любое выражение, которое Python может вычислить. Имя начинает указывать на результат оценки. Прочтите этот пример, запустите его и посмотрите на результат:

После запуска примера мы видим, что он печатает 57 . Как нас учили в школе, 5+7 дает 12. Итак, программа неверна, и важно понять, почему. Дело в том, что в третьей строке s = a + b Python «суммировал» две строки, а не два числа. Сумма двух строк в Python работает следующим образом: они просто склеиваются одна за другой. Это также иногда называют "объединением строк".

Видите ли вы в инспекторе переменных справа, что значения, связанные с переменными a и b, заключены в кавычки? Это означает, что значения там строковые, а не числа. Строки и числа представлены в Python по-разному.

Все значения в Python называются "объектами". Каждый объект имеет определенный тип. Число 2 соответствует объекту «число 2» типа «int» (т. е. целое число). Строка «привет» соответствует объекту «строка «привет»» типа «str». Каждое число с плавающей запятой представлено как объект типа "float". Тип объекта указывает, какие операции могут быть применены к нему. Например, если две переменные «first» и «second» указывают на объекты типа int, Python может их перемножить. Однако, если они указывают на объекты типа str , Python не может этого сделать:

Чтобы привести (преобразовать) строку цифр в целое число, мы можем использовать функцию int() . Например, int('23') дает объект int со значением 23 .

Учитывая приведенную выше информацию, теперь мы можем исправить неверный вывод и правильно вывести сумму двух чисел:

Смотреть сейчас Это руководство содержит связанный с ним видеокурс, созданный командой Real Python. Посмотрите его вместе с письменным учебным пособием, чтобы углубить свое понимание: Чтение входных данных и Написание выходных данных в Python

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

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

В предыдущем руководстве этой вводной серии вы:

  • Сравнение различных парадигм, используемых языками программирования для реализации определенной итерации.
  • Узнал об итераторах и итераторах — двух концепциях, лежащих в основе определенной итерации в Python.
  • Связал все вместе, чтобы узнать о циклах for в Python

К концу этого руководства вы будете знать, как:

  • Принимать пользовательский ввод с клавиатуры с помощью встроенной функции input()
  • Отображение вывода на консоль с помощью встроенной функции print()
  • Форматировать строковые данные с помощью f-строк Python

Без дальнейших церемоний, давайте приступим!

Бесплатный бонус: нажмите здесь, чтобы получить памятку по Python и изучить основы Python 3, такие как работа с типами данных, словарями, списками и функциями Python.

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

Программы часто должны получать данные от пользователя, обычно путем ввода с клавиатуры. Один из способов сделать это в Python — использовать input() :

Функция input() приостанавливает выполнение программы, чтобы пользователь мог ввести строку ввода с клавиатуры. Как только пользователь нажимает клавишу Enter, все введенные символы считываются и возвращаются в виде строки:

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

Если вы включите необязательный

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

input() всегда возвращает строку. Если вам нужен числовой тип, вам нужно преобразовать строку в соответствующий тип с помощью встроенной функции int() , float() или complex() :

В приведенном выше примере выражение число + 100 в строке 3 недопустимо, поскольку число является строкой, а 100 — целым числом. Чтобы избежать этой ошибки, строка 8 преобразовывает число в целое число сразу после сбора пользовательского ввода. Таким образом, к расчетному числу + 100 в строке 10 нужно добавить два целых числа. Благодаря этому вызов print() выполняется успешно.

Примечание к версии Python. Если вы обнаружите, что работаете с кодом Python 2.x, вы можете столкнуться с небольшой разницей в функциях ввода между версиями Python 2 и 3.

raw_input() в Python 2 считывает ввод с клавиатуры и возвращает его. raw_input() в Python 2 ведет себя точно так же, как input() в Python 3, как описано выше.

Но в Python 2 также есть функция input() . В Python 2 функция input() считывает ввод с клавиатуры, анализирует и оценивает его как выражение Python и возвращает результирующее значение.

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

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

С помощью input() вы можете собирать данные от своих пользователей. Но что, если вы хотите показать им какие-либо результаты, рассчитанные вашей программой? Далее вы узнаете, как отображать выходные данные для пользователей в консоли.

Запись вывода в консоль

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

Чтобы отобразить объекты на консоли, передайте их в виде списка аргументов, разделенных запятыми, функции print() .

print( , . )

Отображает строковое представление каждого из них на консоль. (Документация)

По умолчанию print() разделяет объекты одним пробелом и добавляет новую строку в конец вывода:

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

Как видите, даже сложные типы, такие как списки, словари и функции, могут отображаться в консоли с помощью print() .

Печать с расширенными функциями

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

А пока вот что вам нужно знать:

  • Аргументы ключевых слов имеют форму = .
  • Любые ключевые аргументы, передаваемые функции print(), должны стоять в конце после списка отображаемых объектов.

В следующих разделах вы увидите, как эти ключевые аргументы влияют на вывод консоли, создаваемый функцией print() .

Разделение печатаемых значений

Добавление ключевого аргумента sep= приводит к тому, что Python разделяет объекты с помощью одинарного пробела, а не по умолчанию:

Чтобы сжать объекты вместе без пробела между ними, укажите пустую строку ("") в качестве разделителя:

Вы можете использовать ключевое слово sep, чтобы указать любую произвольную строку в качестве разделителя.

Управление символом новой строки

Аргумент ключевого слова end= приводит к завершению вывода вместо символа новой строки по умолчанию:

Например, если вы отображаете значения в цикле, вы можете использовать end, чтобы значения отображались в одной строке, а не в отдельных строках:

Вы можете использовать ключевое слово end, чтобы указать любую строку в качестве ограничителя вывода.

Отправка вывода в поток

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

file= : по умолчанию print() отправляет свой вывод в поток по умолчанию с именем sys.stdout , который обычно эквивалентен консоли. Аргумент file= заставляет print() отправлять вывод в альтернативный поток, указанный вместо этого.

flush=True: обычно print() буферизует свой вывод и периодически записывает в выходной поток. flush=True указывает, что Python принудительно очищает поток вывода при каждом вызове функции print() .

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

Использование форматированных строк

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

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

Примечание. Синтаксис f-строки — это один из современных способов форматирования строк. Для углубленного обсуждения вы можете ознакомиться с этими руководствами:

Вы также получите более подробный обзор двух подходов к форматированию строк, f-strings и str.format() , в руководстве по выводу форматированных строк в Python, которое следует за этим руководством в этой вводной серии.

В этом разделе вы будете использовать f-строки для форматирования вывода. Предположим, вы написали код, запрашивающий у пользователя имя и возраст:

Вы успешно собрали данные от своего пользователя, и вы также можете отобразить их на их консоли. Чтобы создать красиво отформатированное выходное сообщение, вы можете использовать синтаксис f-строки:

f-строки позволяют заключать имена переменных в фигурные скобки ( <> ), чтобы вставлять их значения в создаваемую строку. Все, что вам нужно сделать, это добавить букву f или F в начало вашей строки.

Далее предположим, что вы хотите сообщить пользователю, сколько ему будет лет через 50 лет. F-строки Python позволяют вам сделать это без особых накладных расходов! Вы можете добавить любое выражение Python между фигурными скобками, и Python сначала вычислит его значение, а затем вставит его в вашу f-строку:

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

Примечание. Если вы хотите узнать больше об использовании этого удобного метода форматирования строк, вы можете углубиться в руководство по f-строкам Python 3.

F-строки Python, возможно, являются наиболее удобным способом форматирования строк в Python. Если вы хотите учиться только одним способом, лучше всего придерживаться f-строк Python. Однако этот синтаксис доступен только начиная с Python 3.6, поэтому, если вам нужно работать с более старыми версиями Python, вам придется использовать другой синтаксис, например, метод str.format() или строковый оператор по модулю.

Ввод и вывод Python: заключение

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

Вы научились:

  • Принимать пользовательский ввод с клавиатуры с помощью встроенной функции input()
  • Отображение вывода на консоль с помощью встроенной функции print()
  • Форматировать строковые данные с помощью f-строк Python

В следующем учебном пособии этой вводной серии вы узнаете о еще одном методе форматирования строк и глубже погрузитесь в использование f-строк.

Смотреть сейчас Это руководство содержит связанный с ним видеокурс, созданный командой Real Python. Посмотрите его вместе с письменным учебным пособием, чтобы углубить свое понимание: Чтение входных данных и Написание выходных данных в Python

Раз в несколько дней получайте короткие и интересные трюки с Python. Никакого спама никогда. Отписаться в любое время. Куратор: команда Real Python.

О Джоне Стурце

Джон — заядлый питонист и член учебной группы Real Python.

Ресурсы для ускоренного курса Python (1-е издание) от No Starch Press.

Ресурсы для второго издания находятся здесь. Я хотел бы знать, что вы думаете об ускоренном курсе Python; рассмотрите возможность пройти краткий опрос. Если вы хотите знать, когда будут доступны дополнительные ресурсы, вы можете подписаться на уведомления по электронной почте здесь.

10-1: Изучение Python

Откройте пустой файл в текстовом редакторе и напишите несколько строк, резюмируя все, что вы уже узнали о Python. Начинайте каждую строку с фразы В Python вы можете… Сохраните файл как learning_python.txt в том же каталоге, что и ваши упражнения из этой главы. Напишите программу, которая читает файл и печатает написанное три раза. Напечатайте содержимое один раз, прочитав весь файл, один раз зациклив объект файла и один раз сохранив строки в списке, а затем работая с ними вне блока with.

10-2: Изучение С

Метод replace() можно использовать для замены любого слова в строке другим словом. Вот краткий пример, показывающий, как заменить «собаку» на «кошку» в предложении:

Прочитайте каждую строку из только что созданного файла learning_python.txt и замените слово Python названием другого языка, например C. . Печатайте каждую измененную строку на экране.

Вы можете использовать rstrip() и replace() в одной строке. Это называется связыванием методов. В следующем коде символ новой строки удаляется с конца строки, а затем Python заменяется на C. Вывод идентичен приведенному выше коду.

10-3: Гость

Напишите программу, которая запрашивает у пользователя имя. Когда они ответят, запишите их имя в файл с именем guest.txt.

10-4: Гостевая книга

Напишите цикл while, который запрашивает у пользователей их имя. Когда они введут свое имя, выведите на экран приветствие и добавьте строку с записью их визита в файл с именем guest_book.txt. Убедитесь, что каждая запись появляется на новой строке в файле.

10-5: Опрос по программированию

Напишите цикл while, который спрашивает людей, почему им нравится программирование. Каждый раз, когда кто-то вводит причину, добавляйте эту причину в файл, в котором хранятся все ответы.

10-6: Дополнение

Одна из распространенных проблем при запросе числового ввода возникает, когда люди вводят текст вместо чисел. Когда вы попытаетесь преобразовать ввод в int, вы получите ValueError. Напишите программу, которая запрашивает два числа. Сложите их вместе и распечатайте результат. Перехватите TypeError, если одно из входных значений не является числом, и напечатайте понятное сообщение об ошибке. Протестируйте свою программу, введя два числа, а затем введя текст вместо числа.

Вывод с двумя целыми числами:

Вывод с нечисловым вводом:

10-7: Калькулятор сложения

Поместите код из упражнения 10.6 в цикл while, чтобы пользователь мог продолжать вводить числа, даже если они допустили ошибку и ввели текст вместо числа.

10-8: Кошки и собаки

Создайте два файла:cats.txt иdogs.txt. Сохраните не менее трех имен кошек в первом файле и трех имен собак во втором файле. Напишите программу, которая пытается прочитать эти файлы и вывести содержимое файла на экран. Поместите свой код в блок try-except, чтобы поймать ошибку FileNotFound, и напечатайте понятное сообщение, если файл отсутствует. Переместите один из файлов в другое место в вашей системе и убедитесь, что код в блоке исключений выполняется правильно.

Вывод с обоими файлами:

Вывод после перемещения cats.txt:

10-9: Молчаливые кошки и собаки

Измените свой блок исключений в упражнении 10.8, чтобы он автоматически завершал работу, если какой-либо файл отсутствует.

Вывод, когда существуют оба файла:

Вывод при перемещении файла cats.txt:

10-11: любимый номер

Напишите программу, которая запрашивает любимый номер пользователя. Используйте json.dump(), чтобы сохранить это число в файле. Напишите отдельную программу, которая считывает это значение и печатает сообщение «Я знаю ваше любимое число! Это _____».

10-12: Любимый номер запомнен

Объедините две программы из упражнения 10–11 в один файл. Если номер уже сохранен, сообщите об избранном номере пользователю. Если нет, запросите любимый номер пользователя и сохраните его в файле. Запустите программу дважды, чтобы убедиться, что она работает.

Вывод, первый запуск:

Вывод, второй запуск:

10-13: Проверка пользователя

Окончательный список для remember_me.py предполагает, что либо пользователь уже ввел свое имя пользователя, либо программа запущена в первый раз. Мы должны изменить его на случай, если текущий пользователь не тот, кто последний раз использовал программу.

Прежде чем печатать приветственное сообщение в приветствии_user() , спросите пользователя, правильное ли это имя пользователя. Если это не так, вызовите get_new_username(), чтобы получить правильное имя пользователя.

Вы могли заметить идентичные блоки else в этой версии welcome_user() . Один из способов очистить эту функцию — использовать пустой оператор return. Пустой оператор return указывает Python выйти из функции, не выполняя больше кода в функции.

Вот более чистая версия welcome_user() :

Выражение return означает, что код в функции перестает выполняться после вывода приветственного сообщения. Если имя пользователя не существует или оно неверно, оператор return никогда не будет достигнут. Вторая часть функции будет выполняться только в случае сбоя операторов if, поэтому нам не нужен блок else. Теперь функция запрашивает новое имя пользователя в случае сбоя оператора if.

Единственное, что осталось сделать, — это вложенные операторы if. Это можно исправить, переместив код, проверяющий правильность имени пользователя, в отдельную функцию. Если вам нравится это упражнение, вы можете попробовать создать новую функцию с именем check_username() и посмотреть, сможете ли вы удалить вложенный оператор if из Greeting_user() .

Ускоренный курс Python поддерживается ehmatthes. Эта страница была создана GitHub Pages с использованием темы Cayman Джейсона Лонга.

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