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

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

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

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

Литералы целых чисел обычно записываются в виде десятичных чисел, но также существует возможность записывать двоичные литералы, используя префикс ОО, восьмеричные литералы, используя префикс Оо, и шестнадцатеричные литералы, используя префикс Ох. Когда деление двух целых чисел выполняется с помощью оператора /, результатом всегда будет число типа 11сат. Это отличает Ру$11оп от многих других языков программирования, но позволяет избежать некоторых трудноуловимых ошибок, которые могут возникнуть из-за усечения дробной части в результате. (Если необходимо выполнить целочисленное деление, следует использовать оператор //.) В языке Ру$воп имеется тип данных Осе!, который может иметь одно из двух значений — Т псе или Еа1зе.

В языке Ру(поп имеется три логических оператора: апэ, сг и псц два из которых (алО и ог) опираются на логику сокращенных вычислений. Имеется три разновидности чисел с плавающей точкой: 11сац согр1ех и эес1за1. Оес(за1. Наиболее часто используется тип Т1саг — он представляет числа с плавающей точкой двойной точности, чьи точные характеристики зависят от библиотек С, С№ или дача, на основе которых была выполнена компиляция Ру1поп.

Комплексные числа представле- В заключение ны парой чисел типа г1оаг, одно из которых хранит действительную часть комплексного числа, а второе — мнимую. Тип бес! аа1. Вес заа! реализован модулем бесзэа1. По умолчанию эти числа имеют точность представления 28 десятичных знаков, однако точность может быть увеличена или уменьшена в зависимости от потребностей.

Все три типа чисел с плавающей точкой могут использоваться в комбинации с типичными арифметическими операторами и функциями. В дополнение к этому модулыагп предоставляет разнообразные тригонометрические, гиперболические и логарифмические функции, которые могут использоваться с числами типа г!оаг, а модуль сэа!и предоставляет аналогичное множество функций для работы с числами типа соар1ех. Большая часть главы посвящена строкам. Литералы строк в языке Ру- $)зоп могут создаваться с помощью апострофов или кавычек, а если возникает необходимость включить в строку символы перевода строки или кавычки, можно использовать тройные кавычки.

Для вставки специальных символов могут использоваться различные экранированные последовательности, такие как табуляция (!!) и перевод строки (1п), и символы Юникода, как с использованием шестнадцатеричных экранированных последовательностей, так и с использованием названий символов Юникода. Несмотря на то, что строки поддерживают те же самые операторы сравнения, что и другие типы данных в языке РуФЬоп, мы отметили, что сортировка строк, содержащих неанглийские символы, может вызывать сложности. Поскольку строки являются последовательностями, к ним может применяться оператор получения среза ([)), имеющий простой, но мощный синтаксис.

Строки могут также объединяться с помощью оператора э и дублироваться с помощью оператора *; кроме того, можно использовать комбинированные операторы присваивания (+= и *=), хотя для конкатенации строк предпочтительнее использовать метод а! г. ) о!и(). Строки имеют множество других методов, включая методы проверки их содержимого (такие как а! г. !эарасе() и а! г, !аа1рпа()), методы изменения регистра символов (такие как згг.1онег() и з!г. !!!1е()), методы поиска(такие как э!г. г!пб() и згг. !пбех()) и многие другие. Поддержка строк в языке Ру!)зоп действительно находится на очень высоком уровне, позволяя нам легко отыскивать, извлекать или сравнивать как целые строки, так и их части, замещать символы или подстроки, разбивать строки на списки подстрок и объединять списки строк в единую строку.

Пожалуй, самым универсальным строковым методом является метод агг. (огэат(). Этот метод используется для создания строк путем замещения полей значениями переменных и посредством задания спецификаторов формата, точно определяющих характеристики каждого поля, замещаемого некоторым значением. Синтаксис имен замещаемых полей позволяет организовать доступ к позиционным или имено- 126 Глава 2. Типы данных ванным аргументам метода и использовать индексы, ключи или имена атрибутов для доступа к элементам или атрибутам аргументов. Спецификаторы формата позволяют определять символ-заполнитель, направление выравнивания и минимальную ширину поля вывода.

Кроме того, при форматировании чисел мы можем определять, как должен выводиться знак числа, а для чисел с плавающей точкой указывать число знаков после десятичной точки и выводить их в стандартном или экспоненциальном представлении. Мы также обсудили сложную проблему кодировок символов. По умолчанию для файлов .ру используется кодировка Т)ТР-8, благодаря чему мы имеем возможность записывать комментарии, идентификаторы и данные на любом языке человеческого общения. С помощью метода згг, епсоое() мы можем преобразовать строку в последовательность байтов, используя определенную кодировку, а с помощью метода Ьузез, Овсове() выполнить обратное преобразование последовательности байтов в строку, используя определенную кодировку. Широкое разнообразие кодировок, находящихся в использовании, может доставлять массу неудобств, но кодировка ТТТР-8 быстро превращается в фактический стандарт для простых текстовых файлов (и уже используется по умолчанию для ХМ( -файлов), поэтому данная проблема должна потерять свою остроту в ближайшие годы.

В дополнение к типам данных, рассматривавшимся в этой главе, РуЗйоп предоставляет еще два встроенных типа данных — Ьузез и Ьусеа г гау, оба они будут рассматриваться в главе 7. В языке РуЗ)гоп имеется также несколько типов коллекций, часть которых является встроенными типами, а часть реализована в стандартной библиотеке.

Наиболее важные типы коллекций языка Руспоп будут рассматриваться в следующей главе. Упражнения 1. Измените программу рппг ип!сог2еру так, чтобы пользователь мог вводить в командной строке несколько разных слов и получать только те строки из таблицы символов Юникода, в которых содержатся все слова, указанные пользователем. Это означает, что мы сможем вводить такие команды: рг1пг сп1сосе апз.ру огезх зузьо1 Один из способов достижения поставленной цели состоит в том, чтобы заменить переменную нпгс (которая может хранить О, йопе или строку) списком ногоз. Не забудьте изменить информацию о порядке использования.

В результате изменений не более десяти строк программного кода добавится и не более десяти строк изменится. Решение находится в файле рггпЗ ипгсог(е апз.ру (Пользователи Т)(г)пдохуз и кроссплатформенной версии программы должны Упражнения 127 модифицировать файл ргьп1 1п(сот)е ип1.ру, а решение находится в файле рг(п1 (п1сог)е ип1 апзру.) 2. Измените программу диас(газ(ору так, чтобы она не выводила коэффициенты со значением 0,0, а отрицательные коэффициенты выводились бы как -л, а не + -л.

Для этого придется заменить последние пять строк программы примерно пятнадцатью строками. Решение находится в файле диас(га11с апзру. (Пользователи МГ[пс(отвз и кроссплатформенной версии программы должны модифицировать файл диас(га11с ип(.ру, а решение находится в файле диас(га11с ип1 а из.ру.) 3.

Удалите функцию езсзре ЬШ1() из программы соз2)»1т1ру и используйте вместо нее функцию хв1. зах, захц1!1з. езсаре() из модуля ха1. звх. Вахог!1з. Для этого потребуется добавить одну новую строку (с инструкцией !прог!), удалить пять строк (с ненужной функцией) и изменить одну строку (задействовать функцию ха1.

звх. пахот!1з. езсаре() вместо езсаре ЬШ1()). Решение приводится в файле сзо2- )»1т11 апз.ру. 4. Измените программу срз2)»1т1ру еще раз и добавьте в нее новую функцию с именем ргосезз ор!!Ьпз(). Эта функция должна вызываться из функции за [и( ) и возвращать кортеж с двумя значениями: вахи!01П (типа !и!) и 1огаас (типа з!г). При вызове функция ргосезз орс!опз( ) должна устанавливатыахитбЬЬ в значение по умолчанию 100, а строку (о гва! — в значение по умолчанию " . 01", которое будет использоваться как спецификатор формата при выводе чисел. Если пользователь вводит в командной строке «-)т» или « — йе!р», должно выводиться сообщение о порядке использования и возвращаться кортеж (1«опе, 1«опе).

(В этом случае функция аа!и() ничего делать не должна.) В противном случае функция должна прочитать аргументы командной строки и выполнить соответствующие присваивания. Например, устанавливать значение переменной вахи!Ьсп, если задан аргумент «шахчгЫЬ)т=п», и точно так же устанавливать значение переменной [о гав!, если задан аргумент «бог!па(=з». Ниже приводится сеанс работы с программой, когда пользователь затребовал инструкцию о порядке работы: сз»2птв12 впз.ру -П взвоз: СЗ»2МВ1.ру [ИВХИтстлгют) [ГОГВВт=втГ) < тлт11В.СЗУ > Ооттт1е.лти1 ивхмютл !з вп орттопв1 тптврвг; !Г зрвс!Гтвд, ы звтз тпв ввх!эцв пцвЬвг ог слвгвствгз тлвт свп Ьв острот Гог зтг!пр Гтв1сз, о!пеги!зв в овгвц11 ог 100 спвгвствгз !з цзво.

(ввхмтстп — необязательное волов число. Если задана, определяет мвксимвльнов число символов для строкових полей В противном случае используется значение по умолчание 100.) гогввт тз тьв Гогввт то цзв Гог пциовгз; тГ пот зрвст[твс тт Овтво1тз то ".ОГ". Глава 2. Типы данных (Гогват — фориат вывода чисел. Если не задан, по умолчание используется формат " 01".) А ниже приводится пример командной строки, в которой установ- лены оба аргумента: сву2тв12 апв,ру вахнина=20 гогват=0.2( < ауоата.сву > муса!а, та1 Не забудьте изменить функцию рг!и! 1!пе() так, чтобы она использовала переменную То гав! при выводе чисел — для этого вам придется передавать функции дополнительный аргумент, добавить одну строку и изменить еще одну строку.

И это немного затронет функцию аа!и(). Функция ргосевз орс!опв() должна содержать порядка двадцати пяти строк (включая девять строк с текстом сообщения о порядке использования). Это упражнение может оказаться сложным для неопытных программистов. В состав примеров входят два файла с тестовыми данными: т!ага/ со2-ватр1е.сви и г(ага/со2-1гот-Говв!11ие!в.сви. Решение приводится в файле сво2)г!т(2 опару. В главе 5 мы увидим, как для обработки аргументов командной строки можно использовать модуль оп! ра гзе.

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

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

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

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