Наоми Седер - Python. Экспресс-курс
- Название:Python. Экспресс-курс
- Автор:
- Жанр:
- Издательство:Питер
- Год:2019
- ISBN:978-5-4461-0908-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Наоми Седер - Python. Экспресс-курс краткое содержание
Наоми Седер рассказывает не только об основных особенностях языка Python, но и его объектно-ориентированных возможностях, которые появились в Python 3. Данное издание учитывает все изменения, которые произошли с языком за последние 5 лет, а последние 5 глав рассказывают о работе с большими данными.
Python. Экспресс-курс - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Python предлагает достаточно богатую функциональность работы со строками; этой теме посвящена глава 6.
4.6. Числа
Скорее всего, читатели уже знакомы со стандартными числовыми операциями по другим языкам программирования, поэтому в книге не будет отдельной главы с описанием возможностей Python по работе со строками. В этой главе описаны уникальные возможности чисел Python, а все доступные функции перечислены в документации Python.
В Python поддерживаются четыре разновидности чисел: целые числа , числа с плавающей точкой , комплексные числа и логические значения . Целочислен-ные константы записываются в стандартном формате целых чисел: 0, –11, +33, 123456 — и обладают неограниченным диапазоном, который ограничивается только ресурсами вашего компьютера. Число с плавающей точкой может записы-ваться либо в дробном формате, либо в экспоненциальной (научной) записи: 3.14, –2E-8, 2.718281828. Точность этих значений определяется архитектурой машины, но обычно она соответствует точности типа double (64-разрядного) в языке C. Вероятно, комплексные числа представляют интерес лишь для узкого круга читателей; они рассматриваются позднее в этом разделе. Логические значения принимают значения True и False , а по своему поведению идентичны 1 и 0 (если не считать строковых представлений).
Арифметические операции во многом напоминают язык C. Операции с двумя це-лыми числами дают целое число, кроме операции деления ( / ), которая дает число с плавающей точкой. Если использовать знак // , то результатом будет целое число (дробная часть отсекается). Операции с числами с плавающей точкой всегда дают результат с плавающей точкой. Несколько примеров:
>>> 5 + 2 - 3 * 2
1
>>> 5 / 2 # При обычном делении результат с плавающей точкой
2.5
>>> 5 / 2.0 # Также результат с плавающей точкой
2.5
>>> 5 // 2 # Целочисленное деление с оператором '//'
2
>>> 30000000000 # Во многих языках такое значение слишком велико для int 30000000000
>>> 30000000000 * 3
90000000000
>>> 30000000000 * 3.0
90000000000.0
>>> 2.0e-8 # Результат с плавающей точкой
2e-08
>>> 3000000 * 3000000
9000000000000
>>> int(200.2)
200
>>> int(2e2)
200
>>> float(200)
200.0
Здесь продемонстрированы явные преобразования между типами . Вызов int округляет дробные значения.
У чисел Python есть два преимущества по сравнению с C или Java: целые числа могут быть произвольно большими, а при делении двух целых чисел получается результат с плавающей точкой.
4.6.1. Встроенные числовые функции
Python предоставляет следующие числовые функции, входящие в базовый набор встроенной функциональности:
abs, divmod, float, hex, int, max, min, oct,
pow, round
За подробностями обращайтесь к документации.
4.6.2. Сложные числовые функции
Нетривиальные числовые функции, например тригонометрические и гиперболи-ческие тригонометрические функции, а также ряд полезных констант, не встроены в Python, а предоставляются стандартным модулем math . Модули будут более подробно рассмотрены позднее, а пока достаточно знать, что для получения до-
ступа к функциям math из этого раздела следует начать программу Python или интерактивный сеанс командой
from math import *
Модуль math предоставляет следующие функции и константы: acos, asin, atan, atan2, ceil, cos, cosh, e, exp, fabs, floor, fmod, frexp, hypot, ldexp, log, log10, mod, pi, pow, sin, sinh, sqrt, tan, tanh
За подробностями обращайтесь к документации.
4.6.3. Числовые расчеты
Базовая функциональность Python не очень хорошо подходит для интенсивных числовых расчетов из-за ограничений скорости. Однако мощное расширение Python NumPy предоставляет чрезвычайно эффективные реализации многих расширенных числовых операций. Особое внимание уделяется операциям с массивами, включая многомерные матрицы и такие нетривиальные функции, как быстрое преобразо-вание Фурье. Вы найдете пакет NumPy (или ссылки на него) на сайте www.scipy.org.
4.6.4. Комплексные числа
Комплексные числа создаются автоматически каждый раз, когда в программе создается выражение вида nj , где n записывается в форме целого числа или числа с плавающей точкой Python. Конечно, j здесь соответствует стандартному обозна-чению мнимого числа, равного квадратному корню из –1, например: >>> (3+2j)
(3+2j)
Обратите внимание: Python выводит полученное комплексное число в круглых скобках, чтобы показать, что выводимые данные представляют значение одного объекта:
>>> 3 + 2j - (4+4j)
(-1-2j)
>>> (1+2j) * (3+4j)
(-5+10j)
>>> 1j * 1j
(-1+0j)
Выражение j * j дает ожидаемый ответ –1, но результат остается объектом ком-плексного числа Python. Комплексные числа никогда не преобразуются автома-тически в эквивалентный объект вещественного или целого числа. Тем не менее вы можете легко получить их вещественную и чисто мнимую часть при помощи функций real и imag :
>>> z = (3+5j)
>>> z.real
3.0
>>> z.imag
5.0
Обратите внимание: вещественная и мнимая части комплексного числа всегда воз-вращаются в формате чисел с плавающей точкой.
4.6.5. Расширенные функции комплексных чиселФункции из модуля math не работают с целыми числами; в конце концов, большин-ство пользователей предпочитает, чтобы при извлечении квадратного корня из –1 программа выдавала ошибку, а не ответ!
Вместо этого модуль cmath предоставляет аналогичные функции для работы с ком-плексными числами:
acos, acosh, asin, asinh, atan, atanh, cos, cosh, e, exp, log, log10, pi, sin, sinh, sqrt, tan, tanh
Чтобы наглядно показать в программе, что функции являются специализированны-ми версиями для комплексных чисел, и чтобы избежать конфликтов имен с более привычными эквивалентами, лучше импортировать модуль cmath командой import cmath
а затем явно указывать пакет cmath при использовании функции: >>> import cmath
>>> cmath.sqrt(-1)
1j
О НЕЖЕЛАТЕЛЬНОСТИ IMPORT *
Перед вами хороший пример того, почему лучше свести к минимуму использование формы from import * команды import . Скажем, если использовать команду для импортирования сначала модуля math , а затем модуля cmath , функции cmath заменят одноименные функции math . Кроме того, читателю вашего кода будет сложнее определить источник конкретных используемых функций. Некоторые модули специально проектировались для использования этой формы импортирования.
За подробной информацией об использовании модулей и имен модулей обращайтесь к главе 10. Важно помнить, что при импортировании модуля cmath можно сделать практически все, что делается с другими числами.
ПОПРОБУЙТЕ.САМИ:.РАБОТА.СО.СТРОКАМИ.И.ЧИСЛАМИ В оболочке Python создайте несколько строковых и числовых переменных (целые числа, числа с плавающей точкой и комплексные числа). Поэкспери-ментируйте с различными операциями, в том числе и между типами. Можно ли, например, умножить строку на число? А умножить ее на число с плавающей точкой или комплексное число? Загрузите модуль math и опробуйте некоторые из его функций; затем загрузите модуль cmath и сделайте то же самое. Что про-изойдет, если вы попытаетесь вызвать одну из этих функций для целого числа или числа с плавающей точкой после загрузки модуля cmath ? Как снова полу-чить доступ к функциям модуля math ?
Читать дальшеИнтервал:
Закладка: