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

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

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

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

По этой причине всегда стоит обращаться к электронной документации, чтобы увидеть, какие функции доступны. Смотрите врезку «Электронная документация». Электронная документация В этой книге дается полный охват языка РусЬоп 3, встроенных функций и наиболее часто используемых модулей из стандартной библиотеки, тем не менее в электронной документации можно найти значительный объем справочной информации о языке Ру1Ьоп и особенно об обширнейшей стандартной библиотеке. Электронная документация доступна на сайте тгосв.ругйол.огу, а также поставляется в составе самого интерпретатора РуФЬоп.

Для операционной системы 1АГ)пс(отав документация поставляется в формате справочных файлов опт)отче. Выберите пункт меню Пуск-»Все программы-»РусЬоп З.х-+Ру(Ьоп МапцаЬ (51агг-+Ай Ргодгапгв-» Рубйоп З.х-»РусЬоп Мазза(в), чтобы запустить средство просмотра справочных файлов Ж1пс(оэгв. Этот инструмент обладает функциями индексирования и поиска, которые упрощают возможность поиска по документу. Пользователи операционной системы ()1»11Х получают документацию в формате НТМ1 . В дополнение к различным гиперссылкам в ней содержатся различные страницы с предметными указателями.

Кроме того, в левой части каждой страницы присутствует очень удобная функция «Яп(ей ЯеагсЬ». Наиболее часто начинающими пользователями используется документ «1 1Ъгагу Ве1егепсе», а опытными пользователями — документ «01оЬа1 Мос1и1е 1пг(ех». Оба документа содержат ссылки, ведущие на страницы с описанием всей стандартной библиотеки Ру(Ьоп, а, кроме того, документ «1лЬгагу Ве(егепсе» содержит ссылки на страницы с описанием всех встроенных функциональных возможностей языка РуФЬоп. Определенно имеет смысл ознакомиться с документацией, особенно с документами «ЫЪгагу Ве1егепсе» и «О)оЬа1 Мобп1е 1пдех», чтобы получить представление о том, что может предложить стандартная библиотека, и пощелкать мышью на темах, которые вас заинтересуют.

Это даст вам первое впечатление о том, что доступно, и поможет запомнить, где можно отыскать документацию, которая будет представлять для вас интерес. (Краткое описание стандартной библиотеки языка Ру»Ьоп приводится в главе б.) 204 Глава 4. Управляющие структуры и функции Кроме того, в интерпретаторе также имеется справочная система.

Если вызвать встроенную функцию Ле1р( ) без аргументов, вы попадете в электронную справочную систему — чтобы получить в ней нужную информацию, просто следуйте инструкциям, а чтобы вернуться в интерпретатор — введите символ «с» или команду «ест 1». Если вы знаете, описание какого модуля или типа данных хотите получить, можно вызвать функцию Ье1р( ), передав ей имя модуля или типа в виде аргумента. Например, выполнив инструкцию Ье1р(втг), вы получите информацию о типе данных втг, включая описания всех его методов; инструкция Ье1р(Ь1ст.орсзте) выведет информацию о методе арбате() типа данных Ь1ст; а инструкция Ье1р(ов) отобразит информацию о модуле св (если перед этим он был импортировав). Если вы уже знакомы с языком РуФ)топ, то часто бывает достаточно просто просмотреть, какие атрибуты (например, методы) имеет тот или иной тип данных.

Эту информацию можно получить с помощью функции З1г(), например, вызов З!г(втг) перечислит все методы строк, а вызов Ьтг(св) перечислит все константы и функции модуля св (опять же при условии, что модуль был предварительно импортирован). Синтаксис создания функции (глобальной или локальной) имеет следующий вид: свт гспсттссйазе(рагвзетегв): вс1те Параметры рагззетегв являются необязательными и при наличии более одного параметра записываются как последовательность идентификаторов через запятую или в виде последовательности пар тс(елтт Гтег=иа)ие, о чем вскоре будет говориться подробнее. Например, ниже приводится функция, которая вычисляет площадь треугольника по формуле Герона: сет ьегсс(а, ь, с): в = (а + Ь » с) / 2 гетсгс вать.всгт(в ° (в — а) * (в - ь) * (в - с)) Внутри функции каждый параметр, а, Ь и с, инициализируется соответствующими значениями, переданными в виде аргументов.

При вызове функции мы должны указать все аргументы, например, Ьегсл(3, 4, 5). Если передать слишком мало или слишком много аргументов, будет возбуждено исключение Туре5ггсг. Производя такой вызов, мы говорим, что используем позиционные аргументы, потому что каждый переданный аргумент становится значением параметра в соответ- Собственные функции гбб ствующей позиции. То есть в данном случае при вызове функции параметр а получит значение 3, параметр Ь вЂ” значение 4 и параметр с — значение 5. Все функции в языке Ру()соп возвращают какое-либо значение, хотя вполне возможно (и часто так и делается) просто игнорировать это значение. Возвращаемое значение может быть единственным значением или кортежем значений, а сами значения могут быть коллекциями, поэтому практически не существует никаких ограничений на то, что могут возвращать функции.

Мы можем покинуть функцию в любой момент, используя инструкцию гетцгп. Если инструкция гетцгп используется без аргументов или если мы вообще не используем инструкцию гесс гп, функция будет возвращать значение Иове. (В главе 6 мы рассмотрим инструкцию усе!З, которая в функциях определенного типа может использоваться вместо инструкции гетсгп.) Некоторые функции имеют параметры, для которых может существовать вполне разумное значение по умолчанию. Например, ниже приводится функция, которая подсчитывает количество алфавитных символов в строке; по умолчанию подразумеваются алфавитные символы из набора АЯСП: пвт 1ессег совпс(секс, 1выегв=всыпс.авсп 1ессегв): 1ессегв = тгосвпвес(1ессегв) соипс = 0 Сог сваг сп секс: ст сваг сп 1ессвгв: ссвпс в= 1 гвсигп совпс Здесь при помощи синтаксиса рагааегег=т)е~аи1 С было определено значение по умолчанию для параметра 1ессегв.

Это позволяет вызывать функцию 1ессег соцпС() с единственным аргументом, например, 1еССег совпС("Марр1е апз Нсреу" ). Вэтом случае внутри функции параметр 1еССег будет содержать строку, которая была задана как значение по умолчанию. Но за нами сохраняется возможность изменить значение по умолчанию, например, указав дополнительный позиционный аргумент: 1еССег соьпС("Ма001е апд Нореу", "аессцАЕ100"), или используя именованный аргумент (об именованных аргументах рассказывается ниже): 1еССег ссипС("Мзсрсе апз Нореу", 1еССегв="ае!ЬцАЕ100"). Синтаксис параметров не позволяет указывать параметры, не имеющие значений по умолчанию, после параметров со значениями по умолчанию, поэтому такое определение: Оет Ьаз(а, Ь=с, с);, будет вызывать синтаксическую ошибку.

С другой стороны, мы не обязаны передавать аргументы в том порядке, в каком они указаны в определении функции — мы можем использовать именованные аргументы и передавать их в виде пазег иа1се. Ниже демонстрируется короткая функция, возвращающая заданную строку, если ее длина меньше или равна заданной длине, и усеченную 206 Глава 4, Управляющие структуры и функции версию строки с добавлением в конец значения параметра ! ос!сато гв в противном случае: оет впогтеп(техт, 1епдтп=25. !потов!от="..."): !г 1вп(техт) > 1епдтп: 1ехт = техт[;1епдтп - 1еп(тпо1сатог)) г !по1сатог гетогп техт Вот несколько примеров вызова этой функции: впогтеп("тпе яоао") В вернет: 'Тве вовс' впогтеп(!епдтп=7, техт="тпе поао") В вернет: 'Тве ...' впогтеп("тпе яоао", тпотсатогы'а", 1епдтп=7) в вернет: 'тпе яоа' впогтеп("тпе яоао", 7, "а") в вернет 'тпв яоа' Поскольку оба параметра, 1епдся и 1пг)1сасог, имеют значение по умолчанию, любой из них илн даже оба сразу могут быть опущены, тогда будут использоваться значения по умолчанию — этот случай соответствует первому вызову.

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

Различие между обязательным н необязательным параметром заключается в наличии значения по умолчанию, то есть параметр со значением по умолчанию является необязательным (интерпретатор может использовать значение по умолчанию), а параметр без значения по умолчанию является обязательным (интерпретатор не может делать никаких предположений). Осторожное использование значений по умолчанию может упростить программный код и сделать вызовы функций более понятными. Вспомните, что функция орел() имеет один обязательный аргумент (имя файла) и шесть необязательных аргументов. Используя смесь из позиционных и именованных аргументов, мы можем указывать только необходимые аргументы, опуская другие. Это дает нам возможность записать такой вызов: преп([т1епазе, епсоотпд="от!8"), вместо того чтобы указывать все аргументы, например: преп(711епаае, "г", лопе, "о!78", лопе, йопе, Тгое).

Кще одно преимущество использования именованных аргументов состоит в том, что они способны сделать вызов функции более удобочитаемым, особенно в случае использования логических аргументов. Значения по умолчанию создаются на этапе выполнения инструкции бе[ (то есть в момент создания функции), а яе в момент гоу Собственные функции ее вызова. Для неизменяемых аргументов, таких как строки или числа, это не имеет никакого значения, но в использовании изменяемых аргументов кроется труднозаметная ловушка.

опт аррапо тт ечап(х, 1вт=()); Р ОшиБкм тт х % 2 == О: 1вт.аррепо(х) гатогп 1вт В момент создания этой функции параметр 1вт ссылается на новый список. Всякий раз, когда эта функция вызывается с одним первым параметром, параметр 1в1 будет ссылаться на список, созданный как значение по умолчанию вместе с функцией — то есть при каждом таком вызове новый список создаваться не будет. Как правило, это не совсем то, что нам хотелось бы — мы ожидаем, что каждый раз, когда функция вызывается без второго аргумента, будет создаваться новый пустой список. Ниже приводится новая версия функции, на этот раз использующая правильный подход к работе с изменяемыми аргументами, имеющими значения по умолчанию; оет аррепо 1( ечап(х, 1вт=иопе); тт )вт (в Иопе: 1вт = [] 11 х % 2 == О: 1вт.аррепо(х) гетогп 1вт Здесь, всякий раз, когда функция вызывается без второго аргумента, мы создаем новый список.

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

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

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

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