Python в качестве калькулятора
Contents
Python
в качестве калькулятора#
Взаимодействовать с python
можно несколькими разными способами, в том числе и в интерактивном режиме с помощью так называемой интерактивной оболочки. Запустить её можно набрав команду python
в Anaconda prompt
или командной строке.
python
Note
В разных комбинациях команда запуска интерактивной оболочки может принимать вид python3
, py
или py3
.
Note
Если во время установки вы не добавили python
в переменную среды PATH
, то, чтобы вызвать интерактивную оболочку из командной строки, придется сначала перейти в папку с установленным python
.
Набирая команду python
, вы запускаете сессию интерактивной оболочки python
. Сразу вы должны увидеть приветственное сообщение интерактивной оболочки, в котором должны быть перечислены версия python
, время сборки, задействованный компилятор и другое. На последней строке отображается приглашение >>>
, которое сигнализирует, что интерпретатор ждет команды от пользователя. Набор допустимых команд почти не зависит от режима взаимодействия и ряд из них будет рассмотрен ниже. Прямо сейчас рассмотрим одну из немногих доступных только в интерактивном режиме команд quit()
, которая завершает сеанс интерактивной оболочки.
Арифметические операторы#
Интерактивную подсказку можно использовать в качестве калькулятора. Ознакомимся с доступными арифметическими операторами на её основе.
Арифметическая операция |
Оператора |
---|---|
Сложение |
+ |
Вычитание |
- |
Умножение |
* |
Деление |
/ |
Целая часть от деления |
// |
Остаток от деления |
% |
Возведение в степень |
** |
Сложение, вычитание и умножение работают в точности как в С/C++
.
С операторами деления ситуация немного отличается. В C/C++
результат вычисления выражения a / b
зависит от типов переменных a
и b
:
если обе переменные целочисленного типа, то выполняется целочисленное деление (целая часть при делении
a
наb
),если хотя бы один аргумент является числом с плавающей точкой, то выполняется обычное деление (иногда называемое true division).
В python
оператор “/
” всегда выполняет обычное деление вне зависимости от типа операндов. Оператор “//
” всегда вычисляет целую часть от деления вне зависимости от типа операндов.
Warning
Данный курс посвящен третей версии языка python
. В предыдущей второй версии оператор “/
” работал так же, как в C/C++
. В этом курсе упор сделан именно на третьей версии python
и такие отличия в будущем могут быть пропущены. Будьте внимательны, если вам по какой-то причине пришлось работать с второй версией языка python
!
Оператор “**
” возводит число слева от него в степень числа справа от него.
Note
Как и в C/C++
в python
определены битовые операторы для целых чисел: “|
”, “&
”, “^
”, “<<
” и “>>
”.
Переменные и оператор присваивания#
Оператор присваивания “=
” позволяет объявлять переменные и менять значения уже существующих. Чтобы объявить переменную, необходимо просто оператором присвоения связать её с каким-то значением.
имя_переменной = значение
При этом нет необходимости указывать тип переменной: python
— язык с динамической типизацией и пока можете считать, что тип переменной определяется автоматически по типу значения (более подробно особенности типизации в python
будут обсуждаться на следующей лекции).
Note
Если справа от оператора “=
” стоит не просто значение, а сразу выражение, то сначала это выражение вычисляется и только потом в переменную слева от оператора “=
” записывается результат вычисления выражения.
Note
Нельзя объявить переменную и не проинициализировать её.
Так, например, выражение a = 14
объявляет целочисленную переменную a
со значением 14.
Переменная a
теперь может фигурировать в последующих командах, при этом на её место автоматически будет подставляться значение 14.
Логические операторы#
Числа в python
можно сравнивать теми же операторами ==
, !=
, <
, >
, <=
, >=
, что и в C/C++
. Результатом сравнения чисел является значение True
или False
типа bool
. Это значение затем может быть использовано для условного ветвления (if
).
Встроенные функции для работы с числами#
В любой момент в программе доступны следующие функции для работы с числовыми значениями. Как и в большинстве других языков программирования, чтобы вызвать функцию, необходимо после её имени указать пару круглых скобок “()
”, внутри которых необходимо перечислить аргументы, разделяя их запятой, т.е. для вызова функции без аргументов используется синтаксис
имя_функции()
А для вызова функции с \(n\) аргументами:
имя_функции(аргумент_1, ..., аргумент_n)
Note
В большинстве случаев функции возвращают какое-то полезное значение, которое может быть непосредственно задействовано в дальнейших вычислениях или связано с переменной оператором присваивания “=
”.
Функция |
Описание |
Тип аргумента |
Пример |
---|---|---|---|
|
абсолютное значение |
|
|
|
возвращает строку, соответствующую двоичному/восьмеричному/шестнадцатеричному представлению числа |
|
|
|
приведение к |
любой |
|
|
символ, код которого в таблице юникод совпадает с аргументом |
|
|
|
возвращает целую часть и остаток от деления |
|
|
|
конструктор числа с плавающей точкой |
|
|
|
Конструктор целого числа. В качестве первого аргумента принимает число, строку и ряд других. Если это |
|
|
|
возведение в степень |
|
|
|
округляет число (первый аргумент) до заданного количества цифр после запятой (второй аргумент) |
|
Полный список встроенных функций с более подробным их описанием доступен здесь.
Математические функции и константы в python
#
Более широкий набор математических функций доступен в модуле стандартной библиотеки math. Чтобы получить доступ к его функциям, необходимо его импортировать следующей командой.
import math
После импорта math
доступ к его функциям осуществляется следующим синтаксисом.
math.имя_функции
Т.е. имя функции указывается после имени модуля math
с разделителем точкой. Например, выражение math.sqrt(2)
вычисляет \(\sqrt{2}\).
Кроме sqrt
в math
доступны почти все основные математические функции, такие как sin
, cos
, tan
, log
, exp
и т.п. С полным списком можно ознакомиться в документации по модулю math.
Области применения интерактивной оболочки#
Кроме того, что интерактивная оболочка является отличной заменой калькулятору, она ещё очень удобна для тестирования и изучения из-за своей динамической природы. Так, например, если какая-то команда завершается с ошибкой, то сеанс продолжается и можно попробовать разобраться, что пошло не так, внести необходимые правки и попробовать снова.
Тем не менее набранные в течение сессии инструкции никуда не сохраняются по завершении сессии и требуется в ручную подтверждать ввод каждой команды нажатием клавиши Enter
, что довольно сильно ограничивает область применения интерактивной оболочки. Далее будет рассмотрено ещё 2 способа взаимодействия с python
, один из которых (скрипты) полностью лишен только что озвученных недостатков ценой интерактивности, а второй (блокноты jupyter
) представляет собой некоторый компромисс: интерактивность, возможность сохранять и переиспользовать набор инструкций между сессиями (исходный код) и частичная автоматизация запуска исходного кода.