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

Обновлено: 25.06.2024

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

Чтобы получить ввод с клавиатуры, мы используем команду чтения. Команда чтения принимает ввод с клавиатуры и присваивает его переменной. Вот пример:

Как мы видим, мы отобразили подсказку в строке 3. Обратите внимание, что "-n", указанный в команде echo, заставляет ее удерживать курсор на той же строке; то есть он не выводит перевод строки в конце подсказки.

Затем мы вызываем команду чтения с текстом в качестве аргумента. Это означает, что пользователь ждет, пока пользователь введет что-то, а затем нажмет клавишу Enter, а затем присвоит то, что было введено, переменной text .

Вот скрипт в действии:

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

У команды чтения есть несколько параметров командной строки. Три самых интересных — это -p , -t и -s .

Опция -p позволяет указать подсказку, которая будет предшествовать вводу данных пользователем. Это избавляет от дополнительного шага использования эха для подсказки пользователю. Вот более ранний пример, переписанный с использованием параметра -p:

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

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

Арифметика

Поскольку мы работаем на компьютере, естественно ожидать, что он может выполнять некоторые простые арифметические действия. Оболочка предоставляет функции для целочисленных арифметических операций.

Что такое целое число? Это означает целые числа, такие как 1, 2, 458, -2859. Это не означает дробные числа, такие как 0,5, 0,333 или 3,1415. Для работы с дробными числами существует отдельная программа под названием bc, которая предоставляет язык вычислений произвольной точности. Его можно использовать в сценариях оболочки, но это выходит за рамки данного руководства.

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

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

Обратите внимание, что пробелы игнорируются:

[me@linuxbox me]$ echo $((2+2)) 4 [me@linuxbox me]$ echo $(( 2+2 )) 4 [me@linuxbox me]$ echo $(( 2 + 2 )) 4

Оболочка может выполнять множество обычных (и не очень) арифметических операций. Вот пример:

Обратите внимание, что начальный символ "$" не требуется для ссылки на переменные внутри арифметического выражения, такого как "first_num + second_num".

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

Первые четыре операции — сложение, вычитание, умножение и деление — легко распознаются, но пятая может быть незнакомой. Символ "%" представляет остаток (также известный как по модулю). Эта операция выполняет деление, но вместо того, чтобы возвращать частное, как при делении, она возвращает остаток. Хотя это может показаться не очень полезным, на самом деле это очень удобно при написании программ. Например, когда операция остатка возвращает ноль, это означает, что первое число точно кратно второму. Это может быть очень удобно:

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

© 2000-2022, William E. Shotts, Jr. Дословное копирование и распространение всей этой статьи разрешено на любом носителе при условии сохранения этого уведомления об авторских правах.

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

input() — это встроенная функция, которая используется для ввода данных от пользователя.

Программа Python для сложения двух чисел

Вывод

введите первое число:5
введите второе число:7
сумма: 12

Видеоруководство

Вам также может понравиться:

15 мыслей о «Программе Python для сложения двух чисел»

Здравствуйте, пожалуйста, дайте подробное объяснение

ДА, ПОЖАЛУЙСТА, ПОДРОБНЕЕ

Привет, я Арун, студент факультета информатики, значит, программист, пожалуйста, помогите мне, теперь я начинающий программист, но меня интересует мир программирования. Но у меня нет старшего и тренера.
Можете ли вы мне помочь

Конечно, если вы собираетесь заниматься программированием, вам нужно с чего-то начинать, и я считаю, что, поскольку вы изучаете CSE, вы должны знать oop, поэтому лучше начать с ядра java, и после этого вы получите представление о том, как и где идти. Возможно, с помощью java-скрипта python ruby ​​big data или чего угодно

Здравствуйте
Я также изучаю информатику.
Помогите мне выучить Python?
Спасибо

Сначала вы должны изучить Python, его очень легко выучить. Вы можете узнать об этом на YouTube

использовать приложение для индивидуального обучения

Если вы хотите стать программистом, не полагайтесь ни на кого. Практика собственного обучения - главное для программиста

ваш код выдает ошибку времени выполнения

Большое спасибо, Нирадж! Я очень ценю, что вы помогаете нам, коллегам-программистам, с нашим программированием, даже если вам это не нужно! 🙂

Нам нужны
вложенные циклы For
вложенные циклы While
функция (1)
вложенные if
If else if
класс

Только примеры с минимум 15 строками кода

Спасибо за помощь. Это помогло мне в моих уроках Codecademy

Спасибо разработчику этого сайта. Это мне очень помогло. Теперь у меня больше нет проблем с программированием. 👍🏻👍🏻👍🏻

Добрый день, я изучаю программирование на Python, меня попросили ”
Написать функцию Python Sum() для сложения двух чисел
Например:
Результат теста
print(Sum(1,1)) 2
print(Sum(1,2)) 3
print(Sum(1,3)) 4

Это код, который я написал:
num1=1
num2=1
result=num1+num2
print(result)

Однако, когда я пытаюсь отправить свои результаты, я получаю следующий ответ:
***Ошибка выполнения***
Отслеживание (последний последний вызов):
Файл «__tester__ .python3», строка 13, in
print(Sum(1,1))
NameError: имя «Сумма» не определено

Пожалуйста, помогите, как мне исправить эту ошибку.

@Hilda coombe
Вы нигде не определили Sum. для вашего заданного вопроса вы можете попробовать следующие способы. (я тоже новичок)

a=int(input("пожалуйста, введите 1-е значение:"))
b=int(input("пожалуйста, введите 12-е значение:"))
def Sum(a,b):< br />print(a+b)
Сумма(a,b)


сообщить об этом объявлении

Подпишитесь на последние обновления

Подпишитесь на нашу рассылку и получайте интересные материалы и обновления на свой почтовый ящик.

Ресурсы для ускоренного курса 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 Джейсона Лонга.

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

Компьютерная программа – это пошаговый набор инструкций, которые сообщают компьютеру, что нужно делать что-то с вещами.

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

Однако прежде чем мы перейдем к этому, нам нужно поговорить о вещах, на которых работают компьютеры.

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

Значение — это одна из фундаментальных вещей, таких как буква или число, которыми манипулирует программа. До сих пор мы видели значения 4 (результат сложения 2 + 2) и "Hello, World!" .

Значения сгруппированы по разным типам данных или классам.

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

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

4 — это целое число, а "Hello, World!" представляет собой строку, названную так потому, что она содержит строку букв. Вы (и интерпретатор) можете идентифицировать строки, поскольку они заключены в кавычки.

Если вы не уверены, к какому классу относится значение, в Python есть функция type, которая может вам это сказать.

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

Как насчет таких значений, как "17" и "3,2"? Они выглядят как числа, но заключены в кавычки, как строки.

Это строки!

Не используйте запятые в int s

Когда вы вводите большое целое число, у вас может возникнуть соблазн использовать запятые между группами из трех цифр, например 42 000 . Это не допустимое целое число в Python, но оно означает что-то другое, что допустимо:

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

2.2. Три способа записи строк¶

Строки в Python могут быть заключены либо в одинарные кавычки ( ' ), либо в двойные кавычки ( " ), либо в три кавычки ( ''' или """ )

Строки в двойных кавычках могут содержать внутри одинарные кавычки, как в "Bruce's beard" , а строки в одинарных кавычках могут иметь внутри двойные кавычки, как в "The Knights who say "Ni!"" .

Строки, заключенные в три символа кавычек, называются строками в тройных кавычках. Они могут содержать как одинарные, так и двойные кавычки:

Строки в тройных кавычках могут занимать даже несколько строк:

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

Поэтому разработчики языка Python обычно заключают свои строки в одинарные кавычки. Как вы думаете, что произойдет, если строка уже содержит одинарные кавычки? Попробуйте сами и убедитесь.

2.3. Строковые литералы и escape-последовательности¶

Литерал — это нотация для представления постоянного значения встроенного типа данных.

В строковых литералах большинство символов представляют сами себя, поэтому, если нам нужен литерал с буквами s-t-r-i-n-g , мы просто пишем 'string' .

Но что, если мы хотим представить литерал для перевода строки (то, что вы получаете, когда нажимаете клавишу на клавиатуре) или табуляции? Эти строковые литералы нельзя распечатать так, как s или t. Чтобы решить эту проблему, Python использует управляющую последовательность для представления этих строковых литералов.

Существует несколько таких escape-последовательностей, которые полезно знать.

\n — наиболее часто используемый из них. Следующий пример, надеюсь, прояснит, что он делает.

2.4. Имена и операторы присваивания¶

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

Мы используем оператор присваивания Python именно для этой цели:

В приведенном выше примере используются три назначения. Первый присваивает строковое значение «Как дела, Док?» к названию сообщение . Второй присваивает целому числу 17 имя n , а третий присваивает числу с плавающей запятой 3,14159 имя pi .

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

Имена также называются переменными, поскольку значения, на которые они ссылаются, могут изменяться во время выполнения программы. Переменные также имеют типы. Опять же, мы можем спросить у переводчика, что это такое.

Тип переменной – это тип значения, на которое она в данный момент ссылается.

Распространенный способ представления переменных на бумаге – написать имя переменной линией, соединяющей ее с ее текущим значением. Такая фигура называется диаграммой объекта. Он показывает состояние переменных в определенный момент времени.

На этой диаграмме показан результат выполнения предыдущих операторов присваивания:

Диаграмма объекта 1

2.5. Переменные переменные

Мы используем переменные в программе, чтобы "запоминать" такие вещи, как текущий счет в футбольном матче. Но переменные переменные. Это означает, что они могут меняться со временем, как табло на футбольном матче. Вы можете присвоить значение переменной, а позже присвоить той же переменной другое значение.

Это отличается от математики. В математике, если вы присвоите x значение 3, оно не может измениться, чтобы связать с другим значением на полпути к вашим вычислениям!

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

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

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

2.6. Оператор присваивания не является знаком равенства!¶

Семантика оператора присваивания может сбить с толку начинающих программистов, особенно потому, что токен присваивания = можно легко спутать с equals (Python использует токен == для равенства, поскольку мы скоро увидим). Это не так!

Вышеприведенное среднее утверждение было бы невозможным, если бы = означало равно, поскольку n никогда не может быть равно n + 1 . Однако это утверждение совершенно законно для Python. Оператор присваивания связывает имя слева от оператора с значением справа.

Два ns в n = n + 1 имеют разные значения: n справа — это поиск в памяти, который заменяется значением, когда правая часть вычисляется Python устный переводчик. Он должен уже существовать, иначе возникнет ошибка имени. Сначала оценивается правая часть оператора присваивания.

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

Имена в Python существуют в контексте, называемом пространством имен, которое мы обсудим позже в этой книге.

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

При чтении или написании кода скажите себе: «n присваивается 17» или «n получает значение 17». Не говорите «n равно 17».

Если вам интересно, токен – это символ или строка символов, имеющая синтаксическое значение в языке. В Python операторы, ключевые слова, литералы и пробелы образуют токены языка.

2.7. Имена переменных и ключевые слова¶

Действительные имена переменных в Python должны соответствовать следующим трем простым правилам:

Это произвольно длинная последовательность букв и цифр.

Последовательность должна начинаться с буквы.

В дополнение к a..z и A..Z подчеркивание ( _ ) является буквой.

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

В имени может использоваться символ подчеркивания ( _ ). Он часто используется в именах, состоящих из нескольких слов, таких как my_name или price_of_tea_in_china .

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

Если вы дадите переменной недопустимое имя, вы получите синтаксическую ошибку:

76trombones является незаконным, так как не начинается с буквы. more$ является недопустимым, поскольку содержит недопустимый символ, знак доллара. Но что не так с классом?

Оказывается, класс — это одно из ключевых слов Python. Ключевые слова определяют синтаксические правила и структуру языка, и их нельзя использовать в качестве имен переменных.

Python 3 содержит тридцать три ключевых слова (и время от времени усовершенствования Python вводят или исключают одно или два):

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

Список ключевых слов, keyword.kwlist , соответственно, приходит к нам в виде списка Python.

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

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

Новички иногда путают значимый для человека-читателя с значимым для компьютера. Таким образом, они ошибочно думают, что раз они назвали некоторую переменную средней или pi, она каким-то образом автоматически рассчитает среднее значение или автоматически свяжет переменную pi со значением 3,14159. Нет! Компьютер не придает семантического значения вашим именам переменных. Это зависит от вас.

2.8. Операторы и выражения¶

Инструкция — это инструкция, которую может выполнить интерпретатор Python. До сих пор мы видели два: оператор присваивания и оператор импорта. Некоторые другие виды операторов, которые мы скоро увидим, — это операторы if, while и for. (Есть и другие виды!)

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

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

В этом примере len — это встроенная функция Python, которая возвращает количество символов в строке. Ранее мы видели функции print и type, так что это наш третий пример функции.

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

2.9. Операторы и операнды¶

Операторы — это специальные токены, представляющие такие вычисления, как сложение, умножение и деление. Значения, которые использует оператор, называются операндами.

Ниже приведены все допустимые выражения Python, смысл которых более или менее ясен:

Токены + и - , а также использование скобок для группировки означают в Python то же, что и в математике. Звездочка ( * ) – это знак умножения, а ** – знак возведения в степень (возведение числа в степень).

Когда вместо операнда появляется имя переменной, перед выполнением операции оно заменяется его значением.

Сложение, вычитание, умножение и возведение в степень делают то, что вы ожидаете.

Пример: переведем 645 минут в часы:

Ой! В Python 3 оператор деления / всегда дает результат с плавающей запятой. Возможно, нам хотелось бы знать, сколько осталось полных часов и сколько минут осталось. Python дает нам два разных варианта оператора деления. Второе, называемое целочисленным делением, использует токен // . Он всегда усекает результат до следующего наименьшего целого числа (слева в числовой строке).

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

2.10. Оператор модуля¶

Операция модуля работает с целыми числами (и целочисленными выражениями) и дает остаток при делении первого числа на второе. В Python оператор модуля представляет собой знак процента ( %). Синтаксис такой же, как и для других операторов:

Поэтому 7 разделить на 3 равно 2 с остатком 1.

Оператор модуля оказывается на удивление полезным. Например, вы можете проверить, делится ли одно число на другое — если x % y равно нулю, то x делится на y .

Кроме того, вы можете извлечь крайнюю правую цифру или цифры из числа. Например, x % 10 дает самую правую цифру x (в базе 10). Точно так же x % 100 дает две последние цифры.

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

2.11. Порядок операций¶

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

Скобки имеют наивысший приоритет и могут использоваться для принудительного вычисления выражения в нужном вам порядке.Поскольку выражения в круглых скобках оцениваются первыми, 2 * (3-1) равно 4, а (1+1)**(5-2) равно 8. Вы также можете использовать круглые скобки, чтобы упростить чтение выражения, как в ( минуту * 100) / 60 , даже если это не меняет результат.

Возведение в степень имеет следующий наивысший приоритет, поэтому 2**1+1 равно 3, а не 4, а 3*1**3 равно 3, а не 27.

Из-за некоторой исторической причуды исключением из правила левой ассоциативности слева направо является оператор возведения в степень ** , поэтому полезно всегда использовать круглые скобки, чтобы задать именно тот порядок, который вы хотите, когда задействовано возведение в степень:

Командная строка Python в непосредственном режиме отлично подходит для изучения и экспериментирования с подобными выражениями.

2.12. Операции со строками¶

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

Интересно, что оператор + работает со строками, но для строк оператор + представляет конкатенацию, а не сложение. Конкатенация означает соединение двух операндов путем их сквозной связи. Например:

Выход этой программы — бананово-ореховый хлеб . Пробел перед словом nut является частью строки и необходим для создания пробела между объединенными строками.

Оператор * также работает со строками; он выполняет повторение. Например, «Веселье» * 3 — это «Веселье, веселье». Один из операндов должен быть строкой; другое должно быть целым числом.

С одной стороны, эта интерпретация + и * имеет смысл по аналогии со сложением и умножением. Поскольку 4 * 3 эквивалентно 4 + 4 + 4 , мы ожидаем, что «Веселье» * 3 будет таким же, как «Веселье» + «Веселье» + «Веселье», и это так. С другой стороны, конкатенация и повторение строк существенно отличаются от сложения и умножения целых чисел. Можете ли вы придумать свойство, которым обладают сложение и умножение и которых нет у конкатенации строк и повторения?

2.13. Функции преобразования типов¶

Здесь мы рассмотрим еще три функции Python, int , float и str , которые будут (попытаться) преобразовать свои аргументы в типы int , float и str соответственно. Мы называем эти функции преобразования типов.

Функция int может принимать число с плавающей запятой или строку и преобразовывать ее в целое число. Для чисел с плавающей запятой он отбрасывает дробную часть числа — процесс, который мы называем усечением до нуля в числовой строке. Давайте посмотрим на это в действии:

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

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

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