
Поднесение к степени
Поднесение к степени, как вы должны помнить из школы, это, попросту говоря, умножение некоторого числа на себя определенное количество раз. Например, 2**2 означаеє умножить два на два, или поднести два в квадрат, который в результате даст 4. Так же 2**3 значит, что нужно умножить два на два и на два, или возвести двойку в куб, который в результате даст 8.
Експоненційне представления чисел использует показатель степени, чтобы при работе с большими числами избежать записи с многократным повторением нулей, например,
345000000000 = 345*10**9.
С подобным мы уже сталкивались на рис. 3.6, где был показанный пример, в котором мы вычитали
10.0 - 9. 99999
и получили неожиданный ответ,: 9.99999999962е- 006, тогда как допускали увидеть 0.00001.
Експоненційна форма записи содержит две части: показатель степени и дробную часть (какую иногда называют мантиссой).
Что касается нашего странного ответа, то е- 006 как раз и является показателем степени, а 9. 99999999962 - ее дробная часть.
Символ е указывает на степень 10 (от английского exponent) за которым идет значение показателя со знаком (без него ли).
Відємне значения показателя степени сообщает нам, что необходимо разделить единицу на значение нашей основы, то есть на 10, определенное количество раз. Например, 1e-1 является тем же, что и дробь 1/10 или 0,1.
Показатель степени - 6 в нашем примере значит разделить единицу на 10 шесть раз, или 1/1 000 000. Этой дроби отвечает число 0.000001. Чтобы убедиться в этом, посмотрите на рис. 3.13.
Рис. 3.13. Відємні показатели степени
Обратите внимание на последний результат, выведенный на экране, - число 0 .000010. Это значение чрезвычайно близко до того, что мы ожидали увидеть с самого начала. Помните, что я говорил раньше о погрешности округления при складывании и вычитании, которые должны тенденцию существенно расти? Когда вы оперируете с очень маленькими числами, около 10-6, эти ошибки подытоживаются и проявляют себя в значительной степени.
Експоненційне представления чисел очень широко используется в программировании и научно-исследовательских работах. На рис. 3.14 показан быстрый метод выведения числа гугол в Python.
Рис. 3.14. Выведение числа гугол
Применение скобок
Разобравшись с разными типами данных и форматами выведения числовых значений, перейдем на следующую ступеньку - написание математических формул. Безусловно, с математическими формулами вы встречались не раз. Практически во всех этих формулах, за исключением самих элементарных, встречаются круглые скобки.
Круглые скобки присутствует в формулах для того, чтобы указать порядок выполнения действий. Другими словами, посмотрев на такую формулу, сразу видно, из чего именно необходимо начинать для ее выполнения, даже если математическое действие в скобках вам абсолютно не знакомая и выглядит полной абракадаброй.
Python, как и все другие языки программирования, имеет сложную систему правил, называемых правилами приоритета операторов. С учетом этих правил опытный программист может управлять порядком выполнения операций в математических формулах без скобок. Для этого всего лишь необходимо запомнить каких-то 20-30 сложных правил, переписать свои математические выражения так, чтобы они удовлетворяли этим правилам, но не отвечали никакой человеческой логике, и тогда в вашем коде не разберется ни один шпион. Когда будете писать свои формулы, найдите золотую середину.
Обобщая свой опыт работы, я установил свои собственные правила, которые, как мне кажется, намного более простые в применении.
Правило 1. Если в формуле используются только действия складывания или вычитания, забудьте вообще о круглых скобках.
Правило 2. Если операции складывания-вычитания переміжаються с умножением-делением, всегда используйте скобки.
Рассмотрим применение скобок на простом примере, показанном на рис. 3.15. Если нам надо найти результат деления суммы на число, то следующее выражение будет неправильным: 400 + 1 / 3. Чтобы исправить ситуацию, візміть сумму 400 + 1 в скобки.
Рис. 3.15. Пример использования скобок
Если ваша формула слишком длинная, то хоть используйте скобки, хоть не используйте, читабельной она никогда не станет. Попробуйте разбить формулу на несколько подформул. Это улучшит ее читабельность, что вы почувствуете во время отладки программы.
Помните также о том, что когда-нибудь с вашим кодом может работать кто-то другой. Не доводите вашего коллегу до психоза, тем более что вернувшись к своей собственной программе через пару месяцев, вы сами окажетесь не в лучшем положении.
Поэтому критическим взглядом пройдитесь по каждой строке кода и спросите себя: или "Смогу я вспомнить через шесть недель, что выполняет эту строку"? Если возникают сомнения, то формулу лучше переписать прямо сейчас.