Главная » Просмотр файлов » Саммерфилд - Программирование на Python 3

Саммерфилд - Программирование на Python 3 (1077331), страница 17

Файл №1077331 Саммерфилд - Программирование на Python 3 (Саммерфилд - Программирование на Python 3) 17 страницаСаммерфилд - Программирование на Python 3 (1077331) страница 172018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 17)

Функции в модуле ааСП не работают с комплексными числами. Это сделано преднамеренно, чтобы гарантировать, что пользователи модуля эаСП будут получать исключения вместо получения комплексных чисел в некоторых случаях. Если возникает необходимость использовать комплексные числа, можно воспользоваться модулем сэаСП, который содержит комплексные версии большинства тригонометрических и логарифмических функций, присутствующих в модуле ааСП, плюс ряд функций, специально предназначенных для работы с комплексными числами, таких как сааСП.рпаае(), сэаСП.ро1аг() и сзаСП. гесС(), а также константы сваСП, р1 и сваСП, е, которые хранят те же самые значения типа Г1саС, что и родственные им константы в модуле вас п. Числа типа Оесппа! Во многих приложениях недостаток точности, свойственный числам типа С1оаС, не имеет существенного значения, и эта неточность окупается скоростью вычислений.

Но в некоторых случаях предпочтение отдается точности, даже в обмен на снижение скорости работы. Модуль г)ессза! реализует неизменяемый числовой тип Оессза1, который представляет числа с задаваемой точностью. Вычисления с участием таких чисел производятся значительно медленнее, чем в случае использования значений типа Г1оаС, но насколько это важно, будет зависеть от приложения. Тип чисел с плавающей точкой вз Чтобы создать объект типа Оес1ва1, необходимо импортировать модуль бес(ва1.

Например: »»врьгс бес1ва! »> а = бес1ва1.0ес1ва1(9876) »> Ь = бес1ва1,0ес!ва!("54321.01234567898?654321") »> а+Ь Оеста1( ' 64197. 012345678987654327 ' ) Числа типа Оес1вз1 создаются с помощью функции бес7ва1. Оес1вз1(). Эта функция может принимать целочисленный или строковый аргумент, но не значение типа 71оас, потому что числа типа (1оз! не всегда имеют точное представление, а числа типа Оес1вз1 всегда представляются точно.

Если в качестве аргумента используется строка, она может содержать изображение числа как в обычной десятичной форме записи, так и в экспоненциальной. Кроме того, возможность явно определить точность представления числа бес7ва1. Оес(ва1 означает, что они надежно могут проверяться на равенство. Все арифметические операторы и функции, перечисленные в табл. 2.2 (стр. 74), включая соответствующие им комбинированные операторы присваивания, могут использоваться применительно к значениям типа бес1ва1.

Оес!ва1, но с некоторыми ограничениями. Если слева от оператора ** находится объект типа бес(ва!. Оес(ва1, то справа от оператора должно быть целое число. Точно так же, если первый аргумент функции ров() имеет тип бес(вз1. Оес(ва!, то второй и необязательный третий аргументы должны быть целыми числами. Модули взСЬ и рва!5 не могут использоваться для работы с числами типа бес(ва1. Оес1ва1, однако некоторые функции, присутствующие в модуле вз1Ь, реализованы как методы типа бес1ва1. Оес1ва1. Например, чтобы вычислить е", где х имеет тип (1оаг, вызывается функция ваСЬ.ехр(х), а когда х имеет тип бес)вз1, Оес(вз1, следует использовать метод х.

ехр( ) . Из обсуждения составляющей )>43 (стр. 34) мы можем видеть, что х. ехр() — это фактически разновидность записи бес1ва1. Оес(вз1. ехр(х). Кроме того, тип данных бес1ва1. Оес(ва! предоставляет метод 10(), который вычисляет натуральные (по основанию е) логарифмы (точно так же, как функция ва10.100() с одним аргументом), !о010() и ззг((), а также множество других методов, адаптированных для обработки значений типа бес1ва1. Оес1вз1. Значения типа бес1ва1. Оес(ва! работают в пределах контекста, где контекст — зто коллекция параметров настройки, определяющих поведение чисел бес1вз1.

Оес1ва1. Контекст определяет точность представления (по умолчанию 28 десятичных знаков), методику округления и некоторые другие особенности. В некоторых ситуациях различия в точности представления между типами (1081 и бес1вз1. Оес(вз1 становятся очевидными: 84 Глава 2. Типы данных »> 23 / 1.05 21.904761904761905 »> рг!от(23 / 1.05) 21.9047619048 »> рг!от(аае!ва1,0вства1(23) / Оаетва1.0ас!ва1("1.05")) 21.90476190476190476190476190 »> Оас!ва1.0оо!ва1(23) / Овс!ва1.0ее!ва1("1.05") 0ес!ва1('21.90476190476190476190476190') Хотя деление чисел бес!ва!.

Оества1 выполняется с более высокой точностью, чем деление чисел 11оат, в данном случае (в 32-битной системе) различия обнаруживаются только в пятнадцатом знаке после десятичной точки. Во многих ситуациях такая неточность не имеет большого значения, например, в этой книге, где во всех примерах с участием чисел с плавающей точкой используются числа типа 71оат.

С другой стороны, следует отметить, что последние два приведенных примера впервые демонстрируют, что печать объекта вызывает некоторое закулисное форматирование. Когда для вывода результата выражения Оее!ва1. 0ее!ва1(23)/Оес!ва1. 0ее!ва1("1. 05") вызывается функция ртп!(), выводится «голое» число — вывод имеет строковую форму. Если же просто вводится выражение, то на экран выводится бее!ва1,0ес!ва1 — в данном случае вывод имеет репрезентативную форму. Все объекты в языке Ру$Ъоп имеют две формы вывода. Строковая форма предназначена для вывода информации для человека. Репрезентативная форма является представлением объекта, которое можно передать интерпретатору Ру!Ъоп (если это необходимо) и воспроизвести представляемый объект.

Мы вернемся к этой теме в следующем разделе, когда будем обсуждать строки, и еще раз — в главе б, когда будем обсуждать вопросы реализации строковой и репрезентативной формы для наших собственных типов данных. Строки Строки в языке Ру6Ъоп представлены неизменяемым типом данных 81г, который хранит последовательность символов Юникода. Тип данных агг может вызываться как функция для создания строковых объектов — без аргументов возвращается пустая строка; с аргументом, который не является строкой, возвращается строковое представление аргумента; а в случае, когда аргумент является строкой, возвращается его копия.

Функция а!г() может также использоваться как функция преобразования. В этом случае первый аргумент должен быть стро- о Кодировки символов, стр. 112 В документе «Т 1Ъгагу Ве!егепсе» модуль Оее!ва1 описывается во всех подробностях, которые выходят далеко за рамки этой книги. Кроме того, там приводится множество примеров и список часто задаваемых вопросов с ответами на них. Строки 85 кой или объектом, который можно преобразовать в строку, а, кроме того, функции может быть передано до двух необязательных строковых аргументов, один из которых определяет используемую кодировку, а второй определяет порядок обработки ошибок кодирования. Ранее мы уже упоминали, что литералы строк создаются с использованием кавычек или апострофов, при этом важно, чтобы с обоих концов литерала использовались кавычки одного и того же типа.

В дополнение к этому мы можем использовать строки в тройнгых кавычках, то есть строки, которые начинаются и заканчиваются тремя символами кавычки (либо тремя кавычками, либо тремя апострофами). Например: техт = """Строки в тройных кавычках могут включать 'апострофы' и "кавычки" без лишних формальностей. Мы можем даже зкранировать символ перевода строки ~, благодаря чему данная конкретная строка будет занииать всего две строки.""" Если нам потребуется использовать кавычки в строке, это можно сделать без лишних формальностей — при условии, что они отличаются от кавычек, ограничивающих строку; в противном случае символы кавычек или апострофов внутри строки следует экранировать: а = 'Здесь 'апострофы' иожно не зкранировать, а т"кавычких," придется." О = 'Здесь т,'апострофыт' придется зкранировать, а "кавычки" не обязательно.' В языке Руф]топ символ перевода строки интерпретируется как завершающий символ инструкции, но не внутри круглых скобок (()), квадратных скобок ([]), фигурных скобок (()) и строк в тройных кавычках.

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

(Регулярные выражения будут темой обсуждения главы 12.) Это может доставлять определенные неудобства, так как каждый такой символ придется экранировать: 1шрогт ге рпопет = ге.сошр11е(" ((?:[(]~Ч+[)])?~~в*'ЛО+(?:-'ЛО»)?)ф ) Решить эту проблему можно, используя «сь»расе» (тату) строки. Это обычные строки в кавычках или в тройных кавычках, в которые перед первой кавычкой добавлен символ г. Внутри таких строк все символы интерпретируются как обычные символы, поэтому отпадает необходимость экранировать символы, которые в других типах строк имеют специальное значение. Ниже приводится регулярное выражение для номера телефона в виде «сырой» строки: рпопе2 = ге.

Характеристики

Тип файла
DJVU-файл
Размер
6,88 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6392
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее