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

Лутц М. - Изучаем Python (1077325), страница 34

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

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

и что кроме применения инструкции рг)пт и автоматического вывода результатов существуют и другие способы отображения чисел: »> пцэ = 1 / 3.0 »> пцэ № Автоматический вывод 0.33333333333333331 »> рггпт пца № Инструкция ргтлт выполняет округление 0.333333333333 »> "Хе" Х пца '3.333333е-001' »> "Х2.2Г' Х пцэ № Вывод с использованием строки форматирования '0.33' № Вывод с использованием строки форматирования В последних двух случаях была использована стирана формаптирова- нин результата выражения, которая позволяет гибко определять фор- мат представления, но об этом мы поговорим в главе 7, когда займемся исследованием строк. Теперь, когда вы увидели, как работает операция деления, вы должны знать, что она претерпит небольшие изменения в будущей версии РуХЬоп (версия З.О, которая должна появиться после выпуска этого издания книги).

В Ру(Ьоп 2,5 она работает так, как только что было описано, но фактически существуют два оператора деления (один из которых претерпит изменения): Деление: классическое, с округлением вниз и истинное Глава 5. Числа Х/У Классическое деление. В Ру1Ьоп 2.5 и в более ранних версиях результат усекается при делении целых чисел и сохраняется дробная часть для чисел с плавающей точкой.

Этот оператор станет оператором истинного деления — в будущей версии Ру1Ьоп З.О он будет всегда сохранять дробную часть, независимо от типов операндов. Х // У Деление с округлением вниз. Этот оператор впервые появился в Ру1Ьоп 2.2. Он всегда отсекает дробную часть, округляя результат до ближайшего наименьшего целого, независимо от типов операндов. Деление с округлением вниз было добавлено по той причине, что в текущей модели классического деления тип результата зависит от типов операндов, который трудно предсказать заранее в языках программирования с динамической типизацией, таких как Ру1Ьоп.

Из-за возможных проблем с обратной совместимостью операция деления в языке Ру1Ьоп в настоящее время находится в состоянии постоянного изменения. Подытоживая вышесказанное: в версии 2.5 оператор деления / по умолчанию работает, как было описано выше, а оператор деления с округлением вниз // может использоваться для округления результата деления до ближайшего наименьшего целого, независимо от типов операндов: »> (5 / 2), (5 / 2.0), (5 / -2.0), (5 / -2) (2, 2.5, -2.5, -3) >» (5 // 2), (5 // 2.0), (5 // -2,0), (5 // -2) (2, 2.0, -3.0, -3) »> (9 / 3), (9.0 / 3), (9 // 3), (9 // 3.0) (3, 3 О, 3, 3.0) В будущей версии Ру1Ьоп оператор / изменится так, что будет возвращать истинный результат деления, который всегда будет содержать дробную часть, даже в случае деления целых чисел, например, результатом выражения 1 / 2 будет значение 0. 5, а не 0, в то время как результатом выражения 1// 2 будет значение 0.

А сейчас, пока эти изменения еще не включены полностью, ознакомиться с будущим принципом действия оператора / можно при использовании специальной формы импорта: Ггоз (01сге (арогс 01ч131оп. В этом случае оператор / превращается в оператор истинного деления (с сохранением дробной части в результате), а принцип действия оператора // остается неизменным. Ниже показано, как эти операторы будут действовать в будущем: »> Ггоэ Го1ого 1зрогс 01ч1В1ОП »> (5 / 2), (5 / 2.0), (5 / -2.0), (5 / -2) (2.5, 2 5, -2.5, -2.5) Числа в действии »> (5 // 2), (9 // 2.0), (9 // -2.0), (5 // -2) (2, 2.0, -3.0, -3) »> (9 / 3), (9.0 / 3), (9 // 3), (9 // 3.0) (3.0, 3.0, 3, 3.0) Рассмотрите простой пример цикла иЛ11е в главе 13 и соответствующее упражнение в конце четвертой части книги, которые иллюстрируют программный код, на котором может сказаться это изменение в поведении оператора /.

Вообще, воздействию этого изменения может быть подвержен любой программный код, который подразумевает усечение дробной части в целочисленном результате (в этих случаях вместо него следует использовать оператор //). К моменту написания этих строк данное изменение планируется включить в версию Русаков 3.0, но вам обязательно следует опробовать эти выражения в своей версии интерпретатора, чтобы увидеть, как этот оператор действует. Кроме того, запомните специальную команду т гсз, использованную здесь, — она еще будет обсуждаться в главе 21. Битовые операции Помимо обычных числовых операций (сложение, вычитание и т. д,) язык Ру()топ поддерживает большую часть видов числовых выражений, доступных в языке С. Например, ниже приводится пример выполнения операций поразрядного сдвига и логических операций: »> х 1 № 0001 »> х « 2 № Сдвиг влево на 2 бита: 0100 4 »>х)2 № Побитовое ИПИ: 0011 3 >» х $1 № Побитовое И Оббт 1 В первом выражении двоичное значение 1 (по основанию 2, 0001) сдвигается влево на две позиции, в результате получается число 4 (0100).

В последних двух выражениях выполняются двоичная операция ИЛИ (0001 ~ 0010 = 0011) и двоичная операция И (000160001 = 0001). Такого рода операции позволяют хранить сразу несколько Флагов и других значений в единственном целом числе. Мы не будем здесь слишком углубляться в»жонглирование битами». Вам пока достаточно знать, что битовые операции поддерживаются языком, и они могут пригодиться, когда вы будете иметь дело, например, с сетевыми пакетами или упакованными двоичными данными, которые производятся программами на языке С.

Тем не менее вы должны понимать, что в языках высокого уровня, таких как Ру1)топ, битовые операции не имеют такого большого значения, как в низкоуровневых языках, подобных языку С. Как правило, если у вас возникает желание использовать битовые операции в программах на языке Ру()топ, вам необходимо вспомнить, на каком языке вы программируете. В Ру9Ьоп 156 Глава 5. Числа имеются гораздо лучшие способы представления информации, чем последовательности битов. Длинные целые Теперь добавим немного экзотики и посмотрим на длинные целые в действии. Когда целочиеленный литерал завершается символом 6 (или!), интерпретатор создает длинное целое число. В Ру$йоп длинные целые могут иметь произвольную величину.

То есть такое число может содержать такое число цифр, на которое хватит памяти в компьютере: »> 99999999999999999999999999999999999996 + 1 10000000000000000000000000000000000000С Символ Г в конце литерала предписывает интерпретатору Ру(Ьоп создать объект длинного целого числа, способный представлять число с произвольной точностью. В действительности, начиная с версии Ру- $)>оп 2.2, даже символ С в конце литерала можно не указывать. Интерпретатор автоматически преобразует обычное целое число в длинное целое, если его значение превысит величину, которая может быть представлена обычным целым числом (с технической точки зрения— когда число превысит величину, которую способно вместить 32-битовое целое число), То есть вам не требуется указывать символ 1., так как Ру$)>оп автоматически выполнит необходимые преобразования, когда в этом возникнет потребность: >» 9999999999999999999999999999999999999 + 1 10000000000000000000000000000000000000С Длинные целые — это достаточно удобный инструмент.

Например, с их помощью можно представить национальный бюджет в копейках (если вам это интересно и в вашем компьютере имеетея достаточный объем памяти). Именно по этой причине нам удалось в примерах из главы 3 вычислить такую большую степень числа 2: »> 26 ° ° 200 1606938044258990275541962092341162602522202993782792835301376С »> »> 2 * ° 200 1806938044258990275541962092341162602522202993782792835301376С Так как интерпретатору приходится производить дополнительные действия, чтобы обеспечить поддержку высокой точности, математические операции с участием длинных целых чисел обычно выполняются существенно медленнее, чем операции с обычными целыми числами (которые, как правило, выполняются непосредственно аппаратными средствами).

Однако, если важна высокая точность, то фактор низкой производительности уходит на задний план. Числа в действии Комплексные числа Комплексные числа — это особый базовый тип данных в РуФ)топ. Если вы знаете о существовании комплексных чисел, вы должны знать, когда они используются. В противном случае этот раздел можно пропустить. Комплексные числа состоят из двух чисел с плавающей точкой, представляющих вещественную и мнимую части, и в тексте программы отличаются наличием суффикса 3, нли ), после мнимой части.

Если вещественная часть не равна нулю, комплексное число записывается как сумма двух частей, с помощью символа +. Например, комплексное число, вещественная часть которого равна 2, а мнимая часть -3, записывается как 2 е -3) .Ниже приводятся примеры некоторых действий над комплексными числами: »> 1) ~ 13 (-1>0) ) »>2+1) *3 (2>3)) »> (2+1)) * 3 (6+3)) Кроме того, комплексные числа позволяют обращаться к своим частям, как к атрибутам, поддерживают все обычные математические операции и могут обрабатываться с помощью стандартного модуля сзатл (версия модуля затл, предназначенная для работы с комплексными числами). Комплексные числа обычно используются в инженерных программах.

Поскольку зто инструмент повышенной сложности, ищите подробности в справочном руководстве к языку РуФ)топ. Шестнадцатеричная и восьмеричная формы записи чисел Как уже говорилось ранее, целые числа в языке РуФ)топ могут записываться в шестнадцатеричной (по основанию 16) и восьмеричной (по основанию 8) форме: ° Восьмеричные литералы должны начинаться с символа О, вслед за которым следует последовательность восьмеричных цифр 0-7, каждая из которых представляет трн бита. ° Шестнадцатеричные литералы должны начинаться с комбинации символов Ох или ОХ, вслед за которой следует последовательность шестнадцатеричных цифр 0-9 и А-Г (в верхнем или в нижнем регистре), каждая из которых представляет четыре бита.

Имейте в виду, что это всего лишь альтернативный синтаксис задания значений целочисленных объектов. Например, следующие восьмеричные и шестнадцатеричные литералы создают обычные целые числа с заданными значениями: »> 01, 010, 0100 е Вееенериннее литерале (1, 8, 64) 158 Глава 5. Числа »> Ох01, Ох10, Охаб а Шестнадцатеричаае литерала (1, 16, 255) Здесь восьмеричное значение 0100 соответствует десятичному значению 64, а шестнадцатеричное Охрр — десятичному 255. По умолчанию интерпретатор РуХЬоп выводит числа в десятичной системе счисления (по основанию 10), но предоставляет встроенные функции, которые позволяют преобразовывать целые числа в последовательности восьмеричных и шестнадцатеричных цифр: »> оос(64), Лех(64), ЛЕХ(255) ('0100'.

Ох40', Ох(1') Функция сс( выводит целое число в восьмеричном представлении, а функция Лех — в шестнадцатеричном. Кроме того, существует возможность обратного преобразования — встроенная функция тл(, которая преобразует строку цифр в целое число. Во втором необязательном аргументе она может принимать основание системы счисления: »> Хл1('0100'), 1лт('0100', 8), 1лт('Ох40', 16) (100, 64, 64) Функция еча), с которой мы встретимся далее в этой книге, интерпретирует строку во входном аргументе, как программный код на языке РуХ)хоп. Поэтому она имеет похожий эффект (хотя обычно она работает заметно медленнее, потому что ей приходится компилировать и выполнять строку как часть программы, а это предполагает, что вы должны иметь безграничное доверие к источнику запускаемой строки — достаточно грамотный пользователь мог бы подсунуть вашей программе строку, которая при выполнении в функции еча! удалит все файлы на вашем компьютере!): »> ечеЦ '100'), ече)('0100'), ече)('Ох40') (100, 54, 64) Наконец, целые числа могут быть преобразованы в восьмеричное и шестнадцатеричное представления с помощью строки выражения форматирования: »> "Хо Хх ХХ" Х (64, 64, 255) '100 40 ГЕ' Строки форматирования будут рассматриваться в главе 7.

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

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

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

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