{ "cells": [ { "cell_type": "markdown", "id": "d77d96f6", "metadata": {}, "source": [ "(python_as_calculator)=\n", "\n", "# Python в качестве калькулятора\n", "\n", "Интерактивную подсказку можно использовать в качестве калькулятора. Открыв интерактивную оболочку `python`, можно ознакомиться с различными доступными арифметическими операциями.\n", "\n", "| Арифметическая операция | Оператора | \n", "| :--- | ---: |\n", "| Сложение | + |\n", "| Вычитание | - |\n", "| Умножение | * |\n", "| Деление | / |\n", "| Целая часть от деления | // | \n", "| Остаток от деления | % |\n", "| Возведение в степень | ** |\n", "\n", "Сложение, вычитание и умножение работают в точности как в `С/C++`.\n", "\n", "```{note}\n", "В `C/C++` результат вычисления `a / b` зависит от типов переменных `a` и `b`. Если обе переменные целочисленного типа, то выполняется целочисленное деление (целая часть при делении `a` на `b`), а если хотя бы один аргумент является числом с плавающей точкой, то выполняется обычное деление (иногда называемое **true division**). В python3 оператор `/` всегда выполняет обычное деление, а для целочисленного деления введен оператор `//`. \n", "```\n", "\n", "```{note}\n", "Данный курс посвящен третей версии языка python. Python2 --- предыдущая версия, которая имеет ряд своих особенностей. Например, оператор `/` в ней работал так же, как в `C/C++`. В этом курсе упор сделан именно на `python3` и такие отличия в будущем могут быть пропущены. Будьте внимательны!\n", "```\n", "\n", "- возведение в степень `**`;\n", "\n", "Все вышеперечисленные арифметические операции выполняются над числами, для представления которых в python определенны два основных типа данных `int` и `float`. Тип результата вычисления выражения определяется так же, как и в `C/C++`. \n", "\n", "```{note}\n", "Для определения типа переменной или результата вычисления арифметического выражения используйте функцию `type()`.\n", "```\n", "\n", "Результат вычисления корректно набранного арифметического выражения сразу выводится в консоль. Для того, чтобы запомнить результат вычисления, необходимо сохранить его в переменную с помощью оператора \"присваивания\" `=`. Например, по результатам выполнения команды `a = 2 ** 100` в переменной `a` окажется число `1606938044258990275541962092341162602522202993782792835301376`.\n", "\n", "```{note}\n", "При объявлении переменной `a` в предыдущем примере мы никаким образом не указали её тип. Дело в том, что python - [динамически типизируемый](https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B8%D0%BF%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F) язык программирования, что означает, что тип переменной никогда не объявляется заранее, а всегда определяется динамически, во время выполнения.\n", "```\n", "\n", "\n", "Числа в python можно сравнивать теми же операторами `==`, `!=`, `<`, `>`, `<=`, `>=`, что и в `C/C++`. Результатом сравнения чисел является значение `True` или `False` типа `bool`. Это значение затем может быть использовано для условного ветвления (`if`).\n", "\n", "```{note}\n", "Булевые значения реализованы в качестве частного случая целых чисел. В этом можно убедиться командой `isinstance(True, int)`. По умолчанию `1` соответствует значению `True`, а `0` соответствует `False`. Но любое отличное нуля значение приводится к `True`. Проверить, приводится какое-либо значение к `True` или `False` можно функцией `bool()`. \n", "```\n", "\n", "```{note}\n", "Весь код набранный в интерактивной подсказке никуда не сохраняется и по окончании сессии будет утерян. Чтобы использовать код многократно, необходимо писать скрипты (файлы с расширением `.py`). Команды набираются в скрипте точно так же, как и в интерактивной подсказке, а запуск скрипта выполняет последовательную интерпретацию строк скрипта.\n", "```\n", "\n", "\n", "# Встроенные функции для работы с числами\n", "\n", "В любой момент в программе доступен ряд функций для работы с числовыми значениями.\n", "\n", "| Функция | Описание | Тип аргумента | Пример |\n", "| :--- | :---: | :---: | ---: |\n", "| `abs()` | абсолютное значение | `number` | `abs(-1)`|\n", "| `bin()`, `oct`, `hex()` | возвращает строку, соответствующую двоичному/восьмеричному/шестнадцатеричному представлению числа | `int` | `bin(2 ** 8 - 1)` |\n", "| `bool()` | приведение к `True` или `False` | любой | `bool(0)`, `bool(1)` |\n", "| `char()` | символ, код которого в таблице юникод совпадает с аргументом | `int` | `char(169)` |\n", "| `divmod()` | возвращает целую часть и остаток от деления | `int`, `float` | `divmod(42, 13)` |\n", "| `float()` | конструктор числа с плавающей точкой | `int`, `float`, `string` | `float(\"69.420\")`, `float(\"Nan\")`, `float(\"-inf\")` |\n", "| `int()` | Конструктор целого числа. В качестве первого аргумента принимает число, строку и ряд других. Если это `float`, то число округляется в сторону нуля. Если строка, то в качестве второго аргумента принимает основание системы счисления. | `int`, `float`, `str`, ...| `int(-3)`, `int(\"010\", 8)` | \n", "|`pow()`| возведение в степень | `int`, `float` | `pow(2, 100)` |\n", "|`round()`| округляет число (первый аргумент) до заданного количества цифр после запятой (второй аргумент) | `round(1/3, 4)` | \n", "\n", "Полный список встроенных функций с более подробным их описанием доступен [здесь](https://docs.python.org/3/library/functions.html).\n", "\n", "\n", "# Математические функции и константы в python\n", "\n", "Модуль `math` содержит в себе ряд часто встречающихся математических функций. Чтобы воспользоваться ими, необходимо импортировать этот модуль.\n", "```python\n", "import math\n", "```\n", "\n", "Вызов функции из этого модуля проиллюстрируем на примере синуса.\n", "```python\n", "print(math.sin(0), math.sin(math.pi/2.))\n", "```\n", "С полным списком функций модуля `math` можно ознакомиться в [документации](https://docs.python.org/3/library/math.html)." ] } ], "metadata": { "jupytext": { "text_representation": { "extension": ".md", "format_name": "myst" } }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" }, "source_map": [ 10 ] }, "nbformat": 4, "nbformat_minor": 5 }