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

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

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

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

Поддержку дополнительных возможностейчисленного программирования в языке Python, включая инструменты дляанализа и построения графических изображений, библиотеки реализациистатистических методов и популярный пакет SciPy, вы можете найти на сайтеPyPI����������������������������������������������������������������������или в Сети. Кроме того, обратите внимание, что расширение NumPy�����������������в настоящее время не входит в состав стандартной библиотеки Python и должноустанавливаться отдельно.В заключениеВ этой главе были рассмотрены типы числовых объектов языка Python и операции, применяемые к ним. Здесь мы познакомились со стандартными целочисленными типами и с вещественными числами, а также с некоторыми экзотическими, нечасто используемыми типами, такими как комплексные числа,рациональные числа и множества.

Мы также исследовали синтаксис выражений в языке Python, порядок преобразования типов, битовые операции и различные литеральные формы представления чисел в сценариях.Далее в этой части книги мы рассмотрим следующий тип объектов – строки.Однако в следующей главе мы потратим некоторое время на более подробноеознакомление с механизмом присваивания значений переменным. Это, пожалуй, самая фундаментальная идея в языке Python, поэтому вам обязательно192Глава 5. Числанужно прочитать следующую главу.

Но перед этим ответьте на контрольныевопросы главы.Закрепление пройденногоКонтрольные вопросы1. Каким будет значение выражения 2 * (3 + 4) в языке Python?2. Каким будет значение выражения 2 * 3 + 4 в языке Python?3. Каким будет значение выражения 2 + 3 * 4 в языке Python?4. Какие функции можно использовать для вычисления квадратного корнячисла и квадрата?5. Какой тип будет иметь результат следующего выражения: 1 + 2.0 +3?6. Как можно выполнить усечение и округление вещественного числа?7. Как можно преобразовать целое число в вещественное?8.

Как можно вывести целое число в восьмеричном, шестнадцатеричноми двоичном представлениях?9. Как можно преобразовать строковое представление восьмеричного, шестнадцатеричного или двоичного числа в простое целое число?Ответы1. Результатом выражения будет число 14, то есть результат произведения 2 * 7,потому что круглые скобки предписывают выполнить операцию сложениядо операции умножения.2. В данном случае результат будет равен 10, то есть результату выражения6 + 4. При отсутствии круглых скобок в языке Python используются правиластаршинства операторов, согласно которым оператор умножения имеет более высокий приоритет, чем оператор сложения (стоящий левее).3. Данное выражение даст в результате число 14, то есть результат выражения2 + 12, согласно тем же правилам старшинства, что и в предыдущем вопросе.4.

Функции вычисления квадратного корня, а также числа пи, тангенсаи многие другие доступны в импортируемом модуле math. Чтобы найти квадратный корень числа, необходимо импортировать модуль math и вызватьфункцию math.sqrt(N). Чтобы найти квадрат числа, можно воспользоваться либо оператором возведения в степень X ** 2, либо встроенной функциейpow(X, 2).

Любой из последних двух способов можно также использовать длявычисления квадратного корня, выполнив возведение в степень .5 (например, X ** .5) .5. Результатом будет вещественное число: целые числа будут преобразованыв вещественные числа как к наиболее сложному числовому типу в выражении и для вычисления результата будет использоваться математика вещественных чисел.6. Функции int(N) и math.trunc(N) выполняют отсечение дробной части, а функция round(N, digits) выполняет округление.

Округление вниз можно такжевыполнить с помощью функции math.floor(N), а простое округление при отображении – за счет использования операций форматирования строк.Закрепление пройденного1937. Функция float(I) выполняет преобразование целых чисел в вещественные.Смешивание целых и вещественных чисел в одном выражении также приводит к выполнению преобразования. В некотором смысле операцию деления / в Python 3.0 также можно рассматривать как средство преобразования – она всегда возвращает вещественный результат, включающий дробную часть, даже если оба операнда являются целыми числами.8.

Встроенные функции oct(I) и hex(I) возвращают строковые представленияцелых чисел в восьмеричном и в шестнадцатеричном форматах. В версияхPython 2.6 и 3.0 имеется также функция bin(I), которая возвращает строковое представление целого числа в двоичном формате. Для этих же целеймогут использоваться оператор % форматирования строк и строковый методformat.9. Для преобразования строковых представлений восьмеричных, шестнадцатеричных и двоичных чисел в обычные целые числа может использоватьсяфункция int(S, base) (достаточно передать в аргументе base значение 8, 16или 2, соответственно).

Для этих целей может также использоваться функция eval(S), но она более медленная и может стать источником проблем,связанных с безопасностью. Обратите внимание: целые числа в памятикомпьютера всегда хранятся в двоичном формате, для их вывода просто используются разные форматы представления.Глава6.Интерлюдияо динамической типизацииВ предыдущей главе мы приступили к детальному исследованию базовыхтипов объектов в языке Python, начав с чисел. Мы продолжим наши исследования типов в следующей главе, но прежде чем продолжить, вам необходиморазобраться в самой фундаментальной, на мой взгляд, идее программированияна языке Python, которая составляет основу гибкости языка, – динамическойтипизации и полиморфизме.Как будет показано в этой главе и далее в книге, в сценариях на языке Pythonне производится объявление объектов определенных типов.

В действительности нам даже не приходится беспокоиться о конкретных типах; более того, онимогут применяться в более широком диапазоне ситуаций, чем можно было быпредусмотреть заранее. Поскольку динамическая типизация составляет основу этой гибкости, давайте коротко ознакомимся с этой моделью.Отсутствие инструкций объявленияЕсли у вас имеется опыт работы с компилирующими языками или с языками, обладающими статической типизацией, такими как C, C++ или Java, вероятно, эта тема в книге вызовет у вас недоумение. Мы все время использовалипеременные, не объявляя ни их самих, ни их типы, и все как-то работало.

Например, когда вводится инструкция a = 3 в интерактивной оболочке интерпретатора или в файле сценария, как интерпретатор Python узнает, что речь идето целом числе? И вообще, как Python узнает, что есть что?Как только вы начинаете задавать такие вопросы, вы попадаете в сферу действия модели динамической типизации, используемой в языке Python. Типыданных в языке Python определяются автоматически во время выполнения,а не в результате объявлений в программном коде. Это означает, что вам нетребуется заранее объявлять переменные (эту концепцию проще понять, еслииметь в виду, что все сводится к переменным, объектам и ссылкам междуними).Отсутствие инструкций объявления195Переменные, объекты и ссылкиКак было видно из примеров, приводившихся до сих пор в книге, когда выполняется операция присваивания, такая как a = 3, интерпретатор выполняет ее,хотя перед этим ему нигде не сообщалось, что a – это имя переменной, или чтоона представляет объект целочисленного типа.

В языке ����������������������Python����������������все это решается весьма естественным способом, как описано ниже:Создание переменнойПеременная (то есть имя), такая как a, создается автоматически, когда в программном коде ей впервые присваивается некоторое значение. Все последующие операции присваивания просто изменяют значение, ассоциированноес уже созданным именем. Строго говоря, интерпретатор Python определяетнекоторые имена до запуска программного кода, но вполне допустимо думать, что переменные создаются первой операцией присваивания.Типы переменныхПеременные не имеют никакой информации о типе или ограничениях, связанных с ним.

Понятие типа присуще объектам, а не именам. Переменныеуниверсальны по своей природе – они всегда являются всего лишь ссылками на конкретные объекты в конкретные моменты времени.Использование переменнойКогда переменная участвует в выражении, ее имя замещается объектом, накоторый она в настоящий момент ссылается, независимо от того, что это заобъект. Кроме того, прежде чем переменную можно будет использовать, ейдолжно быть присвоено значение – использование неинициализированнойпеременной приведет к ошибке.В итоге складывается следующая картина: переменные создаются при выполнении операции присваивания, могут ссылаться на объекты любых типов и имдолжны быть присвоены некоторые значения, прежде чем к ним можно будетобратиться. Это означает, что от вас не требуется заранее объявлять переменные в сценарии, но вы должны инициализировать их перед использованием –счетчик, например, должен быть инициализирован нулевым значением, прежде чем его можно будет наращивать.Модель динамической типизации существенно отличается от моделей типовв традиционных языках программирования.

Динамическая типизация обычно проще поддается пониманию начинающих, особенно если они четко осознают разницу между именами и объектами. Например, если ввести такую инструкцию:>>> a = 3интерпретатор Python выполнит эту инструкцию в три этапа, по крайней мере,концептуально. Следующие этапы отражают все операции присваиванияв языке Python:1. Создается объект, представляющий число 3.2.

Создается переменная a, если она еще отсутствует.3. В переменную a записывается ссылка на вновь созданный объект, представляющий число 3.196Глава 6. Интерлюдия о динамической типизацииРезультатом выполнения этих этапов будет структура, которая показана нарис. 6.1. Как показано на схеме, переменные и объекты хранятся в разныхчастях памяти и связаны между собой ссылкой (ссылка на рисунке показана в виде стрелки). Переменные всегда ссылаются на объекты и никогда – надругие переменные, но крупные объекты могут ссылаться на другие объекты(например, объект списка содержит ссылки на объекты, которые включеныв список).ИменаaСсылкиОбъекты3Рис. 6.1. Имена и объекты после выполнения операции присваивания a = 3.Переменная превращается в ссылку на объект 3.

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

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

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

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