Изучаем Python - [51]
Функция может иметь любое количество позиционных аргументов. При вызове функции Python перебирает аргументы, приведенные в вызове, и сопоставляет каждый аргумент с соответствующим параметром из определения функции.
О важности порядка позиционных аргументов
Если нарушить порядок следования аргументов в вызове при использовании позиционных аргументов, возможны неожиданные результаты:
def describe_pet(animal_type, pet_name):
. ."""Выводит информацию о животном."""
. .print("\nI have a " + animal_type + ".")
. .print("My " + animal_type + "'s name is " + pet_name.title() + ".")
. .
describe_pet('harry', 'hamster')
В этом вызове функции сначала передается имя, а потом тип животного. Так как аргумент 'harry' находится в первой позиции, значение сохраняется в параметре animal_type, а аргумент 'hamster' сохраняется в pet_name. На этот раз вывод получается бессмысленным:
I have a harry.
My harry's name is Hamster.
Если вы получили подобные странные результаты, проверьте, соответствует ли порядок следования аргументов в вызове функции порядку параметров в ее определении.
Именованные аргументы
Именованный аргумент представляет собой пару «имя—значение», передаваемую функции. Имя и значение связываются с аргументом напрямую, так что при передаче аргумента путаница с порядком исключается. Именованные аргументы избавляют от хлопот с порядком аргументов при вызове функции, а также проясняют роль каждого значения в вызове функции.
Перепишем программу pets.py с использованием именованных аргументов при вызове describe_pet():
def describe_pet(animal_type, pet_name):
. ."""Выводит информацию о животном."""
. .print("\nI have a " + animal_type + ".")
. .print("My " + animal_type + "'s name is " + pet_name.title() + ".")
. .
describe_pet(animal_type='hamster', pet_name='harry')
Функция describe_pet() не изменилась. Однако на этот раз при вызове функции мы явно сообщаем Python, с каким параметром должен быть связан каждый аргумент. При обработке вызова функции Python знает, что аргумент 'hamster' должен быть сохранен в параметре animal_type, а аргумент 'harry' в параметре pet_name.
Порядок следования именованных аргументов в данном случае не важен, потому что Python знает, где должно храниться каждое значение. Следующие два вызова функции эквивалентны:
describe_pet(animal_type='hamster', pet_name='harry')
describe_pet(pet_name='harry', animal_type='hamster')
примечание
При использовании именованных аргументов будьте внимательны — имена должны точно совпадать с именами параметров из определения функции.
Значения по умолчанию
Для каждого параметра вашей функции можно определить значение по умолчанию. Если при вызове функции передается аргумент, соответствующий данному параметру, Python использует значение аргумента, а если нет — использует значение по умолчанию. Таким образом, если для параметра определено значение по умолчанию, вы можете опустить соответствующий аргумент, который обычно включается в вызов функции. Значения по умолчанию упрощают вызовы функций и проясняют типичные способы использования функций.
Например, если вы заметили, что большинство вызовов describe_pet() используется для описания собак, задайте animal_type значение по умолчанию 'dog'. Теперь в любом вызове describe_pet() для собаки эту информацию можно опустить:
def describe_pet(pet_name, animal_type='dog'):
. ."""Выводит информацию о животном."""
. .print("\nI have a " + animal_type + ".")
. .print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet(pet_name='willie')
Мы изменили определение describe_pet() и включили для параметра animal_type значение по умолчанию 'dog'. Если теперь функция будет вызвана без указания animal_type, Python знает, что для этого параметра следует использовать значение 'dog':
I have a dog.
My dog's name is Willie.
Обратите внимание: в определении функции пришлось изменить порядок параметров. Так как благодаря значению по умолчанию указывать аргумент с типом животного не обязательно, единственным оставшимся аргументом в вызове функции остается имя домашнего животного. Python интерпретирует его как позиционный аргумент, и если функция вызывается только с именем животного, этот аргумент ставится в соответствие с первым параметром в определении функции. Именно по этой причине имя животного должно быть первым параметром.
В простейшем варианте использования этой функции при вызове передается только имя собаки:
describe_pet('willie')
Вызов функции выводит тот же результат, что и в предыдущем примере. Единственный переданный аргумент 'willie' ставится в соответствие с первым параметром в определении, pet_name. Так как для animal_type аргумент не указан, Python использует значение по умолчанию 'dog'. Для вывода информации о любом другом животном, кроме собаки, используется вызов функции следующего вида:
describe_pet(pet_name='harry', animal_type='hamster')
Так как аргумент для параметра animal_type задан явно, Python игнорирует значение параметра по умолчанию.
примечание
Если вы используете значения по умолчанию, все параметры со значением по умолчанию должны следовать после параметров, у которых значений по умолчанию нет. Это необходимо для того, чтобы Python правильно интерпретировал позиционные аргументы.
Книга посвящена рассмотрению всей совокупности проблем, связанных с созданием, воспроизведением на компьютере и практическим использованием электронных и мультимедийных изданий. В частности, показано место этих изданий в современной медиа-индустрии. Рассмотрено использование различных HTML-редакторов и специализированных программных средств создания электронных и мультимедийных изданий (MS FrontPage, Macromedia Director, DreamWeaver и Flash, а также 3ds max). В книгу также вошли разделы, связанные с публикацией и хранением электронных изданий с помощью баз данных, а также семантическим анализом, индексацией и организацией поиска и долговременного хранения электронных документов.
Превратится ли всемирная паутина в «традиционное СМИ», содержание которого строго контролируется в интересах максимизации прибыли? В чьих руках сейчас находится Рубильник интернет-истории и, по сути, — развития общества? Исследуя развитие телефонии, радио, кино и телевидения, автор показывает, как эти индустрии прошли путь от хобби — к крупному бизнесу, от открытости и гибкости — к закрытой и жесткой системе. Какое будущее ожидает всемирную Сеть?Пролить свет на прошлое, чтобы предвидеть будущее — главная задача этой книги.Эта книга для тех, кто считает интернет не просто средством общения, но и инструментом познания мира, способом самовыражения.
Чем полезен Интернет пожилому человеку? Прежде всего, неограниченными возможностями общения. Вы можете вести виртуальный дневник или общаться с друзьями в социальных сетях, делиться советами на форумах или переписываться с родственниками, живущими за рубежом, находить старых друзей и заводить новых.Книга поможет вам ориентироваться в мире социальных сетей и интерактивных сервисов, научит вас работать с ними и использовать все те возможности, которые они предоставляют. Материал книги изложен в доступной форме, что облегчает его восприятие, а различные способы выполнения тех или иных действий дадут вам возможность выбрать наиболее удобный способ именно для вас.
Автор предлагает бесплатную, проверенную на практике, супернадежную и эффективную комплексную защиту от вирусов, шпионских программ, вторжения любопытных хакеров — любых попыток несанкционированного вторжения в ваш компьютер.Пользуясь советами автора, вы сможете не только выстроить надежную систему безопасности, но и контролировать те сайты, которые посещают ваши дети, а также без проблем восстановить операционную систему после любого сбоя и даже полного обрушения. Книга станет настольным пособием и у продвинутых пользователей, и у чайников благодаря простому и краткому изложению материала с подробными иллюстрациями каждого шага.
Рассказывается о ведущем поисковом ресурсе российской части Интернета — Яндексе. Описаны его сервисы для поиска документов и новостей, блогов и адресов, товаров и музыкальных произведений. Рассмотрены почтовый сервис и сервис для создания и размещения сайтов на Народ. ру. Читатель узнает о том, что такое "электронные деньги" и как с их помощью оплатить товар. Большое внимание уделяется общедоступным поисковым программам, которые Яндекс предлагает своим посетителям для поиска информации не только на сайтах, но и на своем компьютере.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Не можете сосредоточиться на работе? Постоянно отвлекаетесь на проверку электронной почты, социальные сети и новостные ленты? Пора воспользоваться советами от ведущих IT-специалистов и погрузиться в работу с головой.Освойте один из самых ценных навыков – умение сосредоточиться на сложной задаче, не отвлекаясь на мелочи. Только так можно справиться со сложной информацией и добиться лучших результатов за минимальное время. Погружение в работу – это суперсила в нашей все более конкурентной экономике XXI века.
Что общего между самыми востребованными профессиями и стремительным увеличением количества информации в мире? Ответ: язык структурированных запросов (SQL). SQL — рабочая лошадка среди языков программирования, основа основ для современного анализа и управления данными. Книга «SQL: быстрое погружение» идеальна для всех, кто ищет новые перспективы карьерного роста; для разработчиков, которые хотят расширить свои навыки и знания в программировании; для любого человека, даже без опыта, кто хочет воспользоваться возможностями будущего, в котором будут править данные.
Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей.
Алгоритмы - это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузится в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие.