Изучаем Python - [55]
greet_users.py
def greet_users(names):
. ."""Вывод простого приветствия для каждого пользователя в списке."""
. .for name in names:
. . . .msg = "Hello, " + name.title() + "!"
. . . .print(msg)
(1) usernames = ['hannah', 'ty', 'margot']
greet_users(usernames)
В соответствии со своим определением функция greet_users() рассчитывает получить список имен, который сохраняется в параметре names. Функция перебирает полученный список и выводит приветствие для каждого пользователя. В точке (1) мы определяем список пользователей usernames, который затем передается greet_users() в вызове функции:
Hello, Hannah!
Hello, Ty!
Hello, Margot!
Результат выглядит именно так, как ожидалось. Каждый пользователь получает персональное сообщение, и эту функцию можно вызвать для каждого нового набора пользователей.
Изменение списка в функции
Если вы передаете список функции, код функции сможет изменить список. Все изменения, внесенные в список в теле функции, закрепляются, что позволяет эффективно работать со списком даже при больших объемах данных.
Допустим, компания печатает на 3D-принтере модели, предоставленные пользователем. Проекты хранятся в списке, а после печати перемещаются в отдельный список. В следующем примере приведена реализация, не использующая функции:
printing_models.py
# Список моделей, которые необходимо напечатать.
unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']
completed_models = []
# Цикл последовательно печатает каждую модель до конца списка.
# После печати каждая модель перемещается в список completed_models.
while unprinted_designs:
. .current_design = unprinted_designs.pop()
. .# Печать модели на 3D-принтере.
. .print("Printing model: " + current_design)
. .completed_models.append(current_design)
. .
# Вывод всех готовых моделей.
print("\nThe following models have been printed:")
for completed_model in completed_models:
. .print(completed_model)
В начале программы создается список моделей и пустой список completed_models, в который каждая модель перемещается после печати. Пока в unprinted_designs остаются модели, цикл while имитирует печать каждой модели: модель удаляется с конца списка, сохраняется в current_design, а пользователь получает сообщение о том, что текущая модель была напечатана. Затем модель перемещается в список напечатанных. После завершения цикла выводится список напечатанных моделей:
Printing model: dodecahedron
Printing model: robot pendant
Printing model: iphone case
The following models have been printed:
dodecahedron
robot pendant
iphone case
Мы можем изменить структуру этого кода: для этого следует написать две функции, каждая из которых решает одну конкретную задачу. Бульшая часть кода останется неизменной; просто программа становится более эффективной. Первая функция занимается печатью, а вторая выводит сводку напечатанных моделей:
(1) def print_models(unprinted_designs, completed_models):
. ."""
. .Имитирует печать моделей, пока список не станет пустым.
. .Каждая модель после печати перемещается в completed_models.
. ."""
. .while unprinted_designs:
. . . .current_design = unprinted_designs.pop()
. .
. . . .# Имитация печати модели на 3D-принтере.
. . . .print("Printing model: " + current_design)
. . . .completed_models.append(current_design)
. . . .
(2)def show_completed_models(completed_models):
. ."""Выводит информацию обо всех напечатанных моделях."""
. .print("\nThe following models have been printed:")
. .for completed_model in completed_models:
. . . .print(completed_model)
. . . .
unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']
completed_models = []
print_models(unprinted_designs, completed_models)
show_completed_models(completed_models)
В точке (1) определяется функция print_models() с двумя параметрами: список моделей для печати и список готовых моделей. Функция имитирует печать каждой модели, последовательно извлекая модели из первого списка и перемещая их во второй список. В точке (1) определяется функция show_completed_models() с одним параметром: списком напечатанных моделей. Функция show_completed_models() получает этот список и выводит имена всех напечатанных моделей.
Программа выводит тот же результат, что и версия без функций, но структура кода значительно улучшилась. Код, выполняющий бульшую часть работы, разнесен по двум разным функциям; это упрощает чтение основной части программы. Теперь любому разработчику будет намного проще просмотреть код программы и понять, что делает программа:
unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']
completed_models = []
print_models(unprinted_designs, completed_models)
show_completed_models(completed_models)
Программа создает список моделей для печати и пустой список для готовых моделей. Затем, поскольку обе функции уже определены, остается вызвать их и передать правильные аргументы. Мы вызываем print_models() и передаем два необходимых списка; как и ожидалось, print_models() имитирует печать моделей. Затем вызывается функция show_completed_models(), и ей передается список готовых моделей, чтобы функция могла вывести информацию о напечатанных моделях. Благодаря содержательным именам функций другой разработчик сможет прочитать этот код и понять его даже без комментариев.
Книга посвящена рассмотрению всей совокупности проблем, связанных с созданием, воспроизведением на компьютере и практическим использованием электронных и мультимедийных изданий. В частности, показано место этих изданий в современной медиа-индустрии. Рассмотрено использование различных HTML-редакторов и специализированных программных средств создания электронных и мультимедийных изданий (MS FrontPage, Macromedia Director, DreamWeaver и Flash, а также 3ds max). В книгу также вошли разделы, связанные с публикацией и хранением электронных изданий с помощью баз данных, а также семантическим анализом, индексацией и организацией поиска и долговременного хранения электронных документов.
Превратится ли всемирная паутина в «традиционное СМИ», содержание которого строго контролируется в интересах максимизации прибыли? В чьих руках сейчас находится Рубильник интернет-истории и, по сути, — развития общества? Исследуя развитие телефонии, радио, кино и телевидения, автор показывает, как эти индустрии прошли путь от хобби — к крупному бизнесу, от открытости и гибкости — к закрытой и жесткой системе. Какое будущее ожидает всемирную Сеть?Пролить свет на прошлое, чтобы предвидеть будущее — главная задача этой книги.Эта книга для тех, кто считает интернет не просто средством общения, но и инструментом познания мира, способом самовыражения.
Чем полезен Интернет пожилому человеку? Прежде всего, неограниченными возможностями общения. Вы можете вести виртуальный дневник или общаться с друзьями в социальных сетях, делиться советами на форумах или переписываться с родственниками, живущими за рубежом, находить старых друзей и заводить новых.Книга поможет вам ориентироваться в мире социальных сетей и интерактивных сервисов, научит вас работать с ними и использовать все те возможности, которые они предоставляют. Материал книги изложен в доступной форме, что облегчает его восприятие, а различные способы выполнения тех или иных действий дадут вам возможность выбрать наиболее удобный способ именно для вас.
Автор предлагает бесплатную, проверенную на практике, супернадежную и эффективную комплексную защиту от вирусов, шпионских программ, вторжения любопытных хакеров — любых попыток несанкционированного вторжения в ваш компьютер.Пользуясь советами автора, вы сможете не только выстроить надежную систему безопасности, но и контролировать те сайты, которые посещают ваши дети, а также без проблем восстановить операционную систему после любого сбоя и даже полного обрушения. Книга станет настольным пособием и у продвинутых пользователей, и у чайников благодаря простому и краткому изложению материала с подробными иллюстрациями каждого шага.
Рассказывается о ведущем поисковом ресурсе российской части Интернета — Яндексе. Описаны его сервисы для поиска документов и новостей, блогов и адресов, товаров и музыкальных произведений. Рассмотрены почтовый сервис и сервис для создания и размещения сайтов на Народ. ру. Читатель узнает о том, что такое "электронные деньги" и как с их помощью оплатить товар. Большое внимание уделяется общедоступным поисковым программам, которые Яндекс предлагает своим посетителям для поиска информации не только на сайтах, но и на своем компьютере.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Не можете сосредоточиться на работе? Постоянно отвлекаетесь на проверку электронной почты, социальные сети и новостные ленты? Пора воспользоваться советами от ведущих IT-специалистов и погрузиться в работу с головой.Освойте один из самых ценных навыков – умение сосредоточиться на сложной задаче, не отвлекаясь на мелочи. Только так можно справиться со сложной информацией и добиться лучших результатов за минимальное время. Погружение в работу – это суперсила в нашей все более конкурентной экономике XXI века.
Что общего между самыми востребованными профессиями и стремительным увеличением количества информации в мире? Ответ: язык структурированных запросов (SQL). SQL — рабочая лошадка среди языков программирования, основа основ для современного анализа и управления данными. Книга «SQL: быстрое погружение» идеальна для всех, кто ищет новые перспективы карьерного роста; для разработчиков, которые хотят расширить свои навыки и знания в программировании; для любого человека, даже без опыта, кто хочет воспользоваться возможностями будущего, в котором будут править данные.
Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей.
Алгоритмы - это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузится в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие.