Главная » Просмотр файлов » Марк Лутц - Изучаем Python, Четвертое издание

Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 42

Файл №1184811 Марк Лутц - Изучаем Python, Четвертое издание (Марк Лутц - Изучаем Python, Четвертое издание) 42 страницаМарк Лутц - Изучаем Python, Четвертое издание (1184811) страница 422020-08-21СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Дляпреобразования целого числа в строку с представлением в любой из трехсистем счисления можно использовать встроенные функции hex(I), oct(I)и bin(I), кроме того, с помощью функции int(str, base) можно преобразоватьстроку в целое число с учетом указанного основания системы счисления.Комплексные числаЛитералы комплексных чисел в языке Python записываются в форматедействительная_часть+мнимая_часть, где мнимая_часть завершается символом j156Глава 5. Числаили J.

С технической точки зрения, действительная_часть является необязательной, поэтому мнимая_часть может указываться без действительной составляющей. Во внутреннем представлении комплексное число реализовано в виде двух вещественных чисел, но при работе с числами этого типаиспользуется математика комплексных чисел. Комплексные числа могуттакже создаваться с помощью встроенной функции complex(real, imag).Литералы других числовых типовКак мы увидим ниже в этой главе, существуют и другие числовые типы,не включенные в табл. 5.1. Объекты некоторых из этих типов создаютсяс помощью функций, объявленных в импортируемых модулях (например,вещественные числа с фиксированной точностью и рациональные числа),другие имеют свой синтаксис литералов (например, множества).Встроенные числовые операции и расширенияПомимо числовых литералов, которые приводятся в табл. 5.1, язык Pythonпредоставляет набор операций для работы с числовыми объектами:Операторы выражений+, -, *, /, >>, **, & и другие.Встроенные математические функцииpow, abs , round, int, hex, bin и другие.Вспомогательные модулиrandom, math и другие.По мере продвижения мы встретимся со всеми этими компонентами.Для работы с числами в основном используются выражения, встроенныефункции и модули, при этом числа имеют ряд собственных, специфическихметодов, с которыми мы также встретимся в этой главе.

Вещественные числа, например, имеют метод as_integer_ratio, который удобно использовать дляпреобразования вещественного числа в рациональное, а также метод is_integermethod, который проверяет – можно ли представить вещественное число как целое значение. Целые числа тоже обладают различными атрибутами, включаяновый метод bit_length, который появился в версии Python���������������������������������������������� 3.1, – он возвращает количество битов, необходимых для представления значения числа. Крометого, множества, отчасти являясь коллекциями, а отчасти числами, поддерживают собственные методы и операторы выражений.Так как выражения наиболее часто используются при работе с числами, мырассмотрим их в первую очередь.Операторы выраженийПожалуй, самой фундаментальной возможностью обработки чисел являютсявыражения: комбинации чисел (или других объектов) и операторов, которыевозвращают значения при выполнении интерпретатором Python.

Выраженияв языке Python записываются с использованием обычной математической нотации и символов операторов. Например, сложение двух чисел X и Y записывается в виде выражения X + Y, которое предписывает интерпретатору Pythonприменить оператор + к значениям с именами X и Y. Результатом выраженияX + Y будет другой числовой объект.157Базовые числовые типыВ табл. 5.2 приводится перечень всех операторов, имеющихся в языке Python.Многие из них достаточно понятны сами по себе, например обычные математические операторы (+, -, *, / и так далее). Некоторые будут знакомы тем, ктов прошлом использовал другие языки программирования: оператор % вычисляет остаток от деления, оператор << производит побитовый сдвиг влево, оператор& выполняет побитовую операцию И и т. д. Другие операторы более характерныдля языка Python, и не все имеют математическую природу.

Например, оператор is проверяет идентичность объектов (это более строгая форма проверки наравенство), оператор lambda создает неименованные функции и так далее.Таблица 5.2. Операторы выражений в языке Python и правила определениястаршинстваОператорыОписаниеyield xПоддержка протокола send в функциях-генераторахlambda args: expressionСоздает анонимную функциюx if y else zТрехместный оператор выбора (значение x вычисляется, только если значение y истинно)x or yЛогическая операция ИЛИ (значение y вычисляется, только если значение x ложно)x and yЛогический оператор И (значение y вычисляется,только если значение x истинно)not xЛогическое отрицаниеx in y, x not in yПроверка на вхождение (для итерируемых объектови множеств)x is y, x is not yПроверка идентичности объектовx < y, x <= y, x > y,x >= yОператоры сравнения, проверка на подмножествои надмножествоx == y, x != yОператоры проверки на равенствоx | yБитовая операция ИЛИ, объединение множествx ^ yБитовая операция «исключающее ИЛИ» (XOR),симметрическая разность множествx & yБитовая операция И, пересечение множествx << y, x >> yСдвиг значения x влево или вправо на y битовx, + yСложение, конкатенацияx – yВычитание, разность множествx * yУмножение, повторениеx % yОстаток, форматx / y, x // yДеление: истинное и с округлением вниз-x, +xУнарный знак «минус», тождественность~xБитовая операция НЕ (инверсия)158Глава 5.

ЧислаТаблица 5.2 (продолжение)ОператорыОписаниеx ** yВозведение в степеньx[i]Индексация (в последовательностях, отображенияхи других объектах)x[i:j:k]Извлечение срезаx(...)Вызов (функций, классов и других вызываемыхобъектов)x.attrОбращение к атрибуту(...)Кортеж, подвыражение, выражение-генератор[...]Список, генератор списков{...}Словарь, множество, генератор словарей и множествТак как в этой книге описываются обе версии Python 2.6 и 3.0, ниже приводятся некоторые примечания, касающиеся различий между версиями и последних дополнений, имеющих отношение к операторам из табл. 5.2:•• В версии Python 2.6 неравенство значений можно проверить двумя способами, как X != Y или как X <> Y. В Python 3.0 последний вариант был убран.В обеих версиях рекомендуется использовать выражение X != Y для проверки на неравенство.•• В версии Python 2.6 выражение в обратных кавычках `X` действует точнотак же, как вызов функции repr(X), и преобразует объект в строковое представление.

Из-за неочевидности функционального назначения это выражение было убрано из Python 3.0 – используйте более очевидные встроенныефункции str и repr, которые описываются в разделе «Форматы отображения чисел».•• Операция деления с округлением вниз (X // Y) всегда усекает дробную частьв обеих версиях Python 2.6 и 3.0. Операция деления X / Y в версии 3.0 выполняет истинное деление (возвращает результат с дробной частью), а в версии 2.6 – классическое деление (усекает результат до целого числа). Подробности ищите в разделе «Деление: классическое, с округлением вниз и истинное».•• Синтаксическая конструкция [...] используется для определения литералов и выражений-генераторов списков.

В последнем случае предполагаетсявыполнение цикла и накопление результатов в новом списке. Примеры использования этой конструкции приводятся в главах 4, 14 и 20.•• Синтаксическая конструкция (...) используется для определения кортежей, подвыражений и выражений-генераторов – разновидности генераторов списков, которая воспроизводит значения по требованию. Примеры использования этой конструкции приводятся в главах 4 и 20. Во всех трехслучаях круглые скобки могут опускаться.•• Синтаксическая конструкция {...} используется для определения литералов словарей, а в версии Python 3.0 еще и для определения литералов мно-Базовые числовые типы159жеств, и генераторов словарей и множеств.

Описание этой конструкцииприводится в этой главе, а примеры использования – в главах 4, 8, 14 и 20.•• Инструкция yield и трехместный оператор выбора if/else доступны в версии Python 2.5 и выше. Инструкция yield в функциях-генераторах возвращает аргументы функции send(...); оператор выбора if/else является краткой формой записи многострочной инструкции if. Если инструкция yield –не единственное, что находится справа от оператора присваиваивания, онадолжна заключаться в круглые скобки.•• Операторы отношений могут объединяться в цепочки: например X < Y < Zвоспроизводит тот же результат, что и конструкция X < Y and Y < Z.

Подробности приводятся в разделе «Операции сравнения: простые и составные»,ниже.•• В последних версиях Python выражение извлечения среза X[I:J:K] является эквивалентом операции индексирования с применением объекта среза:X[slice(I, J, K)].•• В �������������������������������������������������������������������Python������������������������������������������������������������� 2.����������������������������������������������������������X���������������������������������������������������������при выполнении операций сравнения числовые значения приводятся к общему типу, а упорядочение несовместимых типов выполняетсяпосредством сравнивания имен типов значений и считается допустимым.В ��������������������������������������������������������������������Python�������������������������������������������������������������� 3.0 не допускается сравнивать несовместимые типы, не являющиеся числами, а попытка такого сравнения вызывает исключение.•• Операторы отношений для словарей также больше не поддерживаютсяв Python 3.0 (однако поддерживается операция проверки на равенство).Один из возможных способов сравнивания словарей заключается в использовании функции sorted(dict.items()).Примеры использования большинства операторов из табл. 5.2 будут показаныпозже, а пока посмотрим, как операторы могут объединяться в выражения.Смешанные операторыи определение старшинства операторовКак и в большинстве других языков программирования, в языке Python можносоздавать сложные выражения, объединяя несколько операторов из табл. 5.2в одной инструкции.

Например, вычисление суммы двух произведений можнозаписать следующим образом:A * B + C * DКак в этом случае интерпретатор узнает, какие операторы должны выполняться в первую очередь? Ответ на этот вопрос заключается в старшинстве операторов. Когда интерпретатор Python встречает выражение, содержащее болееодного оператора, он делит его на отдельные части в соответствии с правилами старшинства и определяет порядок вычисления этих частей выражения.В табл. 5.2 операторы расположены в порядке возрастания старшинства:•• Чем выше приоритет оператора, тем ниже он находится в таблице и темраньше он выполняется в смешанных выражениях.•• Если в выражении имеется несколько операторов, находящихся в табл. 5.2в одной строке, они выполняются в направлении слева направо (исключение составляет оператор возведения в степень – эти операторы выполняются справа налево, и операторы отношений, которые объединяются в направлении слева направо).160Глава 5.

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

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

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

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