Написал программу на питон что дальше
Перейти к содержимому

Написал программу на питон что дальше

  • автор:

Что дальше¶

Добросовестный читатель, дочитавший книгу до сих пор, а также много практиковавшийся в написании программ, наверняка уже освоился с Python. И конечно, вы уже попробовали реализовать какие-нибудь собственные идеи на Python, чтобы потренироваться. Нет? Тогда стоит начать! Но в таком случае возникает вопрос: “Что же делать дальше?”.

Я предлагаю вам справиться со следующей задачей.

Создайте собственную программу “Адресная книга”, работающую из командной строки и позволяющую просматривать, добавлять, изменять, удалять или искать контактные данные ваших знакомых. Кроме того, эта информация также должна сохраняться на диске для последующего доступа.

Это достаточно простая задача, если думать о ней в терминах, которые мы до сих пор проходили. Если же вы всё-таки нуждаетесь в подсказке, как действовать, вот она.

Подсказка (не читать!)

Создайте класс для хранения персональных данных. Объекты визитных карточек храните в словаре, в котором имена контактов будут служить ключами. Для длительного хранения этих объектов на жёстком диске воспользуйтесь модулем pickle. Для добавления, изменения или удаления контактов применяйте встроенные методы словаря.

Как только вы справитесь с этим, вы смело можете называться программистом на Python. А теперь немедленно напишите мне письмо ;-). Это не обязательный шаг, но весьма рекомендуемый. Также подумайте о покупке бумажной версии книги, чтобы поддержать её дальнейшую разработку.

Если эта задачка показалась вам слишком лёгкой, попробуйте ещё одну:

Реализуйте команду replace. Эта команда заменяет одну строку другой в списке переданных ей файлов.

Команда replace может быть любой желаемой сложности: от простой замены строк до поиска по шаблону (регулярному выражению).

А вот ещё некоторые возможные направления вашего дальнейшего путешествия по миру Python:

Упражнения¶

Примеры программ¶

Лучший способ овладеть языком программирования – это писать много программ и читать много программ:

Вопросы и ответы¶

Советы и рекомендации¶

Учебники¶

Видео¶

Обсуждение¶

Если вы застряли на какой-то проблеме в Python и не знаете, кого спросить, тогда список рассылки python-tutor подойдёт наилучшим образом.

Тем не менее, сначала проделайте всю домашнюю работу и попытайтесь решить проблему самостоятельно.

Новости¶

Если вас интересуют последние новости мира Python, отслеживайте их на официальной планете Python.

Установка библиотек¶

В Каталоге пакетов Python существует колоссальное количество открытых библиотек, которые вы можете использовать в своих программах. Для их установки можно воспользоваться pip.

Графические программы¶

Для создания собственной графической программы на Python понадобится какая-нибудь библиотека ГИП (графического интерфейса пользователя) со своими привязками к Python. Привязки позволяют писать программу на Python, используя библиотеки, которые сами по себе написаны на C, C++ или других языках.

Выбор ГИП для Python достаточно обширен:

Kivy

PyGTK

Это привязки Python к инструментарию GTK+, на основе которого построен GNOME. У GTK+ есть много своих особенностей, но как только вы освоитесь, вы сможете создавать ГИП очень быстро. Что касается дизайнера графического интерфейса Glade, то он просто незаменим. Документация же всё ещё требует некоторых улучшений. GTK+ хорошо работает в GNU/Linux, но его порт на Windows пока не закончен. При помощи GTK+ можно создавать как свободные, так и проприетарные программы. Для начала прочитайте Учебник по PyGTK.

PyQt

Это привязки Python к инструментарию Qt, на основе которого построена KDE. Qt чрезвычайно прост в использовании, особенно благодаря Qt Designer и изумительной документации Qt. PyQt бесплатно, если используется для создания свободных программ (с лицензией GPL). Для создания закрытых проприетарных программ вам придётся его купить. Начиная с Qt 4.5, разрешается создавать при помощи него не только GPL’ные программы. Для начала прочитайте краткое пособие по PyQt или Книгу PyQt.

wxPython

Это привязки Python к инструментарию wxWidgets. wxPython не так прост в освоении, но зато он переносим и работает на GNU/Linux, Windows, Mac и даже на встраиваемых платформах. Многие среды разработки для wxPython, такие как SPE (Stani’s Python Editor) и wxGlade включают дизайнеры графического интерфейса. При помощи wxPython можно создавать как свободные, так и проприетарные программы. Для начала прочитайте учебник по wxPython.

Резюме по инструментам ГИП¶

К сожалению, не существует некоего единого стандартного инструмента для создания графических программ на Python. Я бы рекомендовал выбирать один из инструментов, описанных выше, наиболее подходящий для конкретной ситуации. Во-первых, определитесь, согласны ли вы платить за использование этого инструмента. Во-вторых, определитесь, на каких платформах должна работать ваша программа: только на Windows, на Mac и GNU/Linux или на всех сразу. И в-третьих, если вы выбрали платформу GNU/Linux, то в какой среде вы работаете: в KDE или GNOME.

Для более подробного анализа см. страницу 26 Статей о Python, Том 3, Выпуск 1.

Различные реализации¶

Язык программирования обычно состоит из двух частей: собственно языка и программного обеспечения. Язык – это то, как мы что-либо пишем, а программное обеспечение – это то, что запускает наши программы.

До сих пор для выполнения наших программ мы использовали CPython. Он называется “CPython”, потому что написан на языке C и является Классическим интерпретатором Python[1].

Но существует и другое программное обеспечение, способное выполнять программы на Python:

Реализация Python, работающая на платформе Java. Это означает, что можно использовать библиотеки и классы Java в программе на Python и наоборот.

Реализация Python, работающая на платформе .NET, что означает возможность использования библиотек и классов .NET в программах на Python и наоборот.

Реализация Python, написанная на Python! Это исследовательский проект, существующий для ускорения и облегчения разработки интерпретатора, поскольку сам интерпретатор написан на динамическом языке (в отличие от статических языков, как C, Java и C# в вышеупомянутых реализациях)

Реализация Python, специализирующаяся на высокой производительности многопоточных программ.

Существуют и другие реализации, такие как CLPython – написанная на Common Lisp и IronMonkey – порт IronPython на JavaScript, что даёт возможность писать браузерные приложения (“Ajax”) на Python вместо JavaScript.

Каждая из перечисленных реализаций имеет свою область применения.

Функциональное программирование (для хорошо подготовленных читателей)¶

Для написания больших программ определённо необходимо изучить функциональный подход к программированию, в отличие от объектно-ориентированного подхода, который мы проходили в разделе “Объектно-ориентированное программирование” :

Резюме¶

Вот мы и подошли к концу нашей книги, но как говорится, это только начало конца! Теперь вы заядлый программист на Python, и несомненно, готовы решать множество задач при помощи Python. Теперь вы можете начать автоматизировать на своём компьютере всё подряд, можете писать собственные игры и многое-многое другое. Так что вперёд!

Что дальше?

Конечно же вы познакомились только с самыми азами языка, но полученные знания помогут вам сделать следующие шаги к изучению Python и написанию своих собственных программ и проектов, например, создать сайт, собственную игру, мобильное приложение, запрограммировать робота, а может быть обучить искусственный интеллект понимать ваши устные команды? Все это можно создавать с Python!

1. Определитесь с тем, что бы вам хотелось создать. Выделите себе время для занятий, составьте себе четкий план действий и следуйте ему безукоризненно!

2. Ищите и изучайте в интернете статьи и примеры кода похожих программ на Python. Просто введите в поисковую строку запрос: "Как написать игру на Python?". Скачивайте и изучайте код программ. Ищите объяснения всех непонятных вам команд, задавайте вопросы людям, которые создавали эти программы.

3. Помните, ключ к успеху в любом деле — практика! Никогда не копируйте чужой код — перепечатывайте. Чем больше и чаще вы пишите программы собственными руками, тем быстрее сформируете навык, запомните синтаксис, станете реже допускать ошибки. Помните, с ошибками и трудностями сталкиваются все программисты — относитесь к ним как интересным задачам, уровням игры, которые нужно пройти! Только с практикой программирование превратится для вас в сплошной поток творчества и удовольствия!

Ниже мы подобрали для вас полезные ресурсы, курсы и книги, которые помогут вам или вашим ученикам продолжать совершенствовать свои навыки программирования и знания языка Python, полученные на данном мастер-классе.

Бесплатные подробные онлайн-курсы для изучения Python (для начинающих) на русском языке:

Официальный сайт Python (на английском языке)

Весь мир и последние новости в мире языка Python. Официальная документация, версии, редакторы кода для разных операционных систем, ссылки на сообщества программистов Python по всему миру, база знаний.

Что можно делать с Python?

У вас получилось: вы закончили курсы, или дочитали книгу, которая дает вам базу для программирования в Python. Вы освоили списки, словари, классы, может даже некоторые объектно-ориентированные концепции.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

И что дальше?

Python – это очень универсальный язык программирования, с плеядой пользователей во всех возможных сферах. Если вы освоили основы Python, и хотите построить на нем что-нибудь – важно понять, какой первый шаг следует сделать.

Содержание:

В данной статье мы рассмотрим несколько разных проектов, ресурсов и руководств, которые вы можете использовать для создания чего-либо в Python.

Что другие делают в Python?

Вы, наверное, думаете, что люди создают в Python в реальной жизни? Для начала, давайте быстренько пройдемся по крупным компаниям, которые используют данный язык.

Google, к примеру, использовали Python с самого начала, и сегодня он занимает место ведущих гигантов среди языков, ориентированных на серверную сторону. Гвидо ван Россум, добрый пожизненный диктатор Python (уже нет) даже работал нам на протяжении нескольких лет, наблюдая за тем, как развивается язык.

Spotify использует язык из-за его сервисов анализа данных и бэкенда. Согласно команде разработчиков, простота использования Python позволяет достичь молниеносной скорости разработки. Spotify выполняет тонны анализов, чтобы собирать рекомендации своим пользователям, так что им нужно что-нибудь, что может выполнять такую работу быстро. Python – это решение!

Что я могу делать в Python?

Начиная с веб разработки до работы с научными данными, машинным обучением, и пр., приложения Python не имеют границ. Рассмотрим несколько проектов, которые помогут вам развить ваши навыки работы с Python.

#1: Автоматизация нудных дел

Это ресурс по «практическому программированию для начинающих». Как и говорится в заголовке, с этой книгой вы можете узнать, как автоматизировать скучные процессы, такие как обновление электронных таблиц, или переименовывать файлы на компьютере. Это отличная отправная точка для тех, кто уже освоил основы Python.Что можно делать с Python?

У вас будет шанс попрактиковаться в том, что вы уже выучили на данный момент, создавая словари, проводя скрейпинг сайтов, работая с файлами и создавая объекты и классы. Практические приложения, встречающиеся в этой книге дадут вам реальное представление о том, что вы можете делать незамедлительно.

#2: Держать руку на курсе Биткоина

Похоже, что сегодня о Bitcoin Python говорят все. С тех пор, как в декабре 2017, когда курс почти поднялся до отметки в 20 000 долларов, криптовалюта стала на слуху у миллионов. Цена продолжает колебаться, но многие считают инвестиции целесообразными.

Если вы хотите обогатиться на виртуальном золоте и хотите знать, когда делать следующий шаг, то вам нужно иметь представление о лучших ценах на bitcoin. Это руководство может научить вас, как использовать навыки работы в Python, чтобы построить собственную систему уведомлений о курсе Bitcoin.

Основа этого проекта – это создание IFTTT (if this, then that) апплетов. Вы узнаете, как использовать библиотеку requests для отправки запросов HTTP и как использовать webhook для подключения вашего приложения к внешним сервисам.

Этот проект – отличная отправная точка для начинающего питониста, который заинтересован в крипте. Сервис, который вы построите с данным руководством может быть расширен под другие валюты, так что если вы также рассматриваете Ethereum – двери открыты!

#3: Создание калькулятора

Этот простой проект – отличный шлюз в мире GUI программирования. Создание бекенд сервисов – это важная часть развертывания, но может появиться необходимость во фронтенде, которую стоит учитывать. Создание приложений, которыми пользователи могут легко пользоваться – это первостепенная важность.

Если вам интересен UX\UI дизайн, то это руководство вам понравится. Вы будете работать с модулем tkinter, стандартным пакетом графического пользовательского интерфейса, который поставляется вместе с Python.

Модуль tkinter – это обертка вокруг Tcl/Tk, комбинация скриптового языка Tcl и расширения фреймворка графического пользовательского интерфейса Tk. Если у вас есть установленный Python, то у вас уже есть готовый к использованию tkinter. Вам нужно сделать простой вызов перед началом:

После проведения установки, вы можете начать работу с постройкой своего первого GUI калькулятора в Python.
Попрактикуйтесь в использовании модуля tkinter и наблюдайте за тем, как ваше виденье материализуется на экране. После того, как вы окрепнете, вы можете начать работать с другими GUI инструментами Python. Ознакомьтесь к официальной документацией GUI программирования в Python для дополнительной информации.

#4: Майнинг данных Twitter

Благодаря интернету, и (все чаще и чаще) интернету вещей (IoT) – у нас есть доступ к огромному количеству данных, о которых не могли мечтать всего десять лет назад. Аналитика – это огромная часть любой сферы, которая связана с данными. О чем люди разговаривают? Какие шаблоны видны в их поведении?

Твиттер – отличное место, чтобы получить ответы на эти вопросы. Если вам интересен анализ данных, тогда майнинг данных в Twitter – отличный способ попробовать свои навыки в Python, чтобы ответить на вопросы об окружающем мире.

В учебном пособии по анализу Твиттера позволит вам получать данные из Твиттера и анализировать настроения пользователей в среде docker. Вы узнаете, как регистрировать приложение вместе с Твиттером, это понадобиться вам, чтобы получить доступ к потоковым API.

Вы увидите, как использовать Tweepy для фильтрации твитов, которые вы хотите вытягивать, TextBlob для подсчета настроения этих твитов, Elasticsearch для анализа содержимого этих твитов и Kibana для показа результатов. По окончанию данного руководства, вы уже будете готовы к тому, чтобы заняться другими проектами, которые используют Python для обработки текстов и распознавания речи.

#5: Создание микроблога с помощью Flask

Похоже, что у каждого сегодня есть блог, и нет ничего плохого в том, чтобы иметь собственный уютный хаб онлайн. С развитием Twitter и Instagram, микроблоги стали чрезвычайно популярными. В этом проекте Мигеля Гринерга, вы научитесь создавать собственный микроблог.

Он называется «Мега-руководство Flask», и однозначно соответствует названию. Проработав 23 главы, вы получите глубокое представление о веб-фреймворке Flask. К концу проекта, вы сможете создать полностью работающее веб приложение.
Вам не нужно знать что-либо о Flask, чтобы приступить к делу, так что это идеально для тех, у кого чешутся руки, чтобы приступить к веб разработке.

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

#6: Создание блокчейна

Хотя блокчейн в основном разрабатывается как финансовая технология, его можно применять во многих других областях. Блокчейны можно применять практически во всех транзакциях: от сделок с недвижимостью, до передач медицинских отчетов.

Вы можете получить лучшее представление о том, как это работает, построив свой блокчейн! Руководство Hackernoon поможет вам реализовать блокчейн с нуля. К концу проекта, вы получите глубокое представление того, как работает эта технология транзакций.

Вы будете работать с HTTP клиентами и библиотекой requests. После установки веб-фреймворка Flask, вы сможете использовать запросы HTTP и взаимодействовать со своим блокчейном в интернете.

Помните, блокчейн – это не только для фанатов криптовалюты. Построив такой самим, вы легко найдете креативный способ реализовать эту технологию в интересующей вас области.

#7: Разбираемся с лентой Twitter

Интересует постройка веб приложений, но не хватает уверенности, чтобы начать мега-проект? Не беспокойтесь, мы кое-что подготовили для вас. С нами вы сможете научиться создавать простое веб приложение всего за несколько часов.

Боб Белдерброс делится кейсом, где он создал 40th PyBites Code Challenge, в котором участникам нужно было построить простое веб приложение для лучшей навигации по ленте новостей Daily Python Tip в Твиттере. Вы можете пройтись по результатам данного челенджа и ознакомиться с кодом.

Вместо Flask, вы будете использовать микро веб-фреймворк Bottle. Он славится тем, что является слабо зависимым решением для быстрого создания приложений. Так как он был разработан таким образом, чтобы быть легким и простым в использовании, вы сможете получить свое приложение практически мгновенно.
Вы также сможете работать с модулем Tweepy, чтобы загружать данные из API Твиттера. Вы сможете хранить данные в базе SQLAlchemy или Peewee, так что заодно получите небольшую практику в запросах SQL.

#8: Играйте в PyGames

Этот раздел для тех, кто хочет весело провести время. Python может быть использован для написания различных аркадных игр, адвенчур и пазлов, на разработку которых уйдет всего несколько дней. К классическим играм, типа пинг-понга вы сможете перейти, когда освоите новые навыки программирования.

Библиотека Pygame заметно упрощает разработку собственных игр. Он включает в себя практически все необходимое, чтобы вы могли приступить к разработке игр.

Pygame совершенно бесплатный и находится в открытом доступе. Он включает в себя библиотеки компьютерной графики и работы со звуком, которые вы можете использовать для внедрения интерактивного функционала в ваше приложение.

Вам доступны десятки игр, которые вы можете создать при помощи библиотеки. Что-бы вы не хотели придумать, чувствуйте себя комфортно и делитесь своими работами в сообществе Pygame!

#9: Выберите свое собственное приключение

Если вам больше по духу повествование, то у вас все еще масса инструментов, чтобы создать нечто крутое в Python.
Язык очень прост для написания, что делает его идеальной средой для разработки интерактивного чтива. С этим бесплатным руководством, вы сможете пошагово ознакомиться с написанием текстовых игр в Python.

Руководство подразумевает базовое понимание программирования в Python, и помогает проложить мост между тем, что вы уже знаете и неизведанными землями для построения приложения.

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

#10: Скажите “Привет, мир!” машинному обучению

Машинное обучение может быть фундаментальной областью в понимании искусственного интеллекта. Однако, в этой сфере легко запутаться, так как она постоянно развивается и меняется.
К счастью, в вашем распоряжении имеются онлайн ресурсы, которые могут помочь освоиться, перед тем как нырнуть с головой в мир под названием data science. Это руководство создано Джейсоном Браунли, и является хорошим примером введением в использование Python для машинного обучения.

Вы пройдетесь по ряду базовых алгоритмов машинного обучения, как и по библиотекам Python, которые помогут вам в составлении прогнозов.

Руководство очень простое и в нем легко ориентироваться. Вы можете окончить его всего за несколько часов. По окончанию курса, у вас будет общее представление о том, как использовать Python в науке данных.

Когда вы будете уверены в том, что можно нырять с головой, можете ознакомиться с этими руководствами, где вы сможете научиться анализировать отпечатки, создавать визуализации, распознавать речь и лица, и все это в Python!

#11: Бросаем вызов!

Если вы не уверены в том, что готовы окунаться в некоторые крупные проекты, упомянутые ранее, при этом мелкие вас не очень интересуют, вы можете думать: а чем еще можно заняться?

Кодерские задачки могут помочь вам попрактиковаться в навыках работы в Python и получить поверхностное представление обо всем спектре вещей, которые вы можете делать в Python,
Проще говоря: вам предоставят проблему, и вам нужно найти решение, в котором используется Python.

У вас будет шанс разработать решения, которые имеют смысл для вас, при этом у вас есть возможность углубиться в язык Python при помощи подсказок. Так вы получите представление о том, какие модули вам нужно импортировать, чтобы решить проблему.

Кодовые челенджы – это хороший способ освоить наибольшее количество библиотек, методов и фреймворков. Вы гарантированно найдете что-нибудь, что зацепит ваш интерес, и захотите уделять этому свободное время. Вы можете вернуться к этому списку и найти то, что зажгло в вас интерес, когда вы использовали это в одном из челенджей.

Чтобы начать, попробуйте одно из следующих, чтобы оценить свои силы:

    . Более 20 доступных уровней. Создавайте простые скрипты в Python, чтобы решить уровень. По интернету есть разбросанные подсказки, но старайтесь искать решение самостоятельно! . Включает в себя 50 задач, и количество растет! Эти задачи направлены на то, чтобы вы научились работать в Python для создания приложений, которые будут решать определенные проблемы.

Если вы предпочитаете программировать в таких задачах самостоятельно вместо пошаговых инструкций, то не будет лишним иметь под рукой вспомогательный ресурс.

Книга Python Tricks – это отличный источник информации, который поможет при работе с задачами. В книге рассматриваются малоизвестные части Python, на основании которых и формируются задачи.

Чего (скорее всего) не стоит делать в Python?

Очевидно, что Python – чрезвычайно универсальный язык, с которым вы можете делать массу вещей. Но вы не можете делать буквально всё. Фактически, есть определенные сферы, на которые Python не рассчитан.

С точки зрения интерпретируемого языка, у Python есть проблемы со взаимодействия с низкоуровневыми устройствами, такими как драйверами устройств. Например, у вас будут проблемы, если вы захотите написать операционную систему только на Python. Вам лучше связать его с С или С++ для низкоуровневых приложений.

Однако, даже это может быть проблемой не долго. В качестве подтверждения гибкости Python, есть люди, которые работают над проектами, которые расширяют юзабилити Python для низкоуровневых взаимодействий. MicroPython – это один из таких проектов, разрабатывающих низкоуровневые возможности Python.

Что если вашей идеи нет в этом списке?

Ничего страшного! Этот список вряд ли можно назвать исчерпывающим: существует огромное количество других инструментов и приложений, которые вы можете построить в Python, которые мы не рассмотрели в данной статье. Не думайте, что ваши идеи должны как-либо ограничиваться данным списком. Это просто база, с которой вы можете начать.

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

Что делать дальше?

Ну, вот и все! Одиннадцать путей от новичка в Python до прожженного питониста!
Неважно, с чего вы хотите начать, вам открыты бесчисленные проспекты для разработки ваших навыков программирования. Начинайте с чего угодно! Родилась идея, которой нет в этом списке? Поделитесь в комментариях! Вы можете предложить идеальный проект для программиста-побратима.

Если вы застряли и ищете толчок в нужном направлении, поговорите об этом! Программирование не обязательно должно быть одиночным делом.

Если вы ищете способ задать вопрос и получить быстрый ответ от профессионалов – Python Форум всегда свободен. Это частное сообщество поможет вам найти контакт с теми, кто поможет вам пройти через возникшие стены, на которые вы наткнулись, работая в Pyhton.

Являюсь администратором нескольких порталов по обучению языков программирования Python, Golang и Kotlin. В составе небольшой команды единомышленников, мы занимаемся популяризацией языков программирования на русскоязычную аудиторию. Большая часть статей была адаптирована нами на русский язык и распространяется бесплатно.

Изучение Python: от нуля до мастера

Первым делом спросим себя, что такое Python? Создатель языка, Гвидо ван Россум, описывает его следующим образом:

“Язык программирования высокого уровня, главная идея которого — это простая читабельность и синтаксис, который позволяет программистам выражать концепцию программы парой строк кода”

Лично для меня, первой причиной изучать Python было то, что это очень красивый язык программирования, выражать мысли в котором просто и естественно.

Следующей причиной было то, что Python мультизадачный. Мы можем его использовать для анализирования данных, разработки сайтов, машинного обучения. Quora, Pinterest и Spotify используют именно Python для своего back-end’а. Хорошая мотивация, чтобы узнать чуть больше об этом.

Основы

1. Переменные

Вы можете думать о переменных, как о словах, что держат в себе какое-то значение. Очень просто.

В Python нет ничего проще, чем определить переменную и присвоить ей какое-то значение. Представьте, что мы ходим сохранить число 1 в переменной, которую назовём “one”. Это будет выглядеть следующим образом

Что может быть проще? И при этом вы только что присвоили значение 1 для переменной “one”.

И таким образом вы можете присвоить любое значение любой переменной. И как видно в примере кода повыше, переменная “two” хранит числовое значение 2, а переменная “some_number” хранит значение 10,000.

Помимо числовых значений, мы также можем использовать логические (true/false, в переводе истинно/ложно), строки, десятичные числа и много других типов.

2. Контролирование потока: условные состояния

Ключевое слово “if” используется для ситуаций, когда нам нужно выполнить разные действия при положительных или отрицательных условиях. При значении “истинно” будет выполняться описанный после слова “if” блок, например:

2 больше, чем 1, поэтому выполняется “print”-команда.

Блок “else” выполнится при условии, если условие “if” ложно.

Так как 1 не больше 2, то выполняется в блоке “else”.

Также можно использовать “elif” условие:

3. Циклы / итерации

В Python, можно создавать циклы различными способами. Мы расскажем о двух: while и for.

Цикл While: до тех пор, пока условие истинно, код внутри цикла будет выполняться. Таким образом, следующий код напишет числа от 1 до 10.

Циклу while нужно “условие повтора”. Если оно остаётся истинным, итерации продолжаются. В приведённом примере, когда значение num становится 11, условие цикла становится ложным.

Ещё один небольшой пример, чтобы лучше понять цикл while:

Условие цикла(loop condition) установлено в True, поэтому цикл будет выполняться до тех пор, пока мы не переключим его в значение False.

Цикл for: в цилке for мы назначаем переменную “num” для самого цикла, который в свою очередь будет увеличивать значение этой переменной. Следующий код напишет числа от 1 до 10 точно так же, как и цикл while:

Видите? Очень просто. Цикл начинается с 1 и продолжается до 11 элемента.

Списки: коллекция, массив, структура данных

Представьте что вы хотите сохранить значение 1 в переменной. или может теперь вы хотите сохранить 2. А ещё 3, 4, 5…

Есть ли иной способ хранить все числа, что нам нужны, не имея при этом, не создавая при этом миллионы переменных? Как оказывается, есть иной способ хранить их всех.

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

Это действительно просто. Мы создали список и сохранили его в my_integers.

Но затем мы спросим себя: “А как нам получить нужное значение из списка?”.

Хороший вопрос. В списках есть концепция, которая зовётся номером(индексом). Номером первого элемента в списке является 0, следующий получает 1 и так далее.

Чтобы донести это проще, мы можем представить список, у которого каждый элемент подписан своим номером. Как на следующей картинке:

Используя синтаксис Python не сложно понять и следующее:

Представьте, что мы больше не хотим хранить числа. Вместо этого мы хотим составить список имён наших знакомых. Мой выглядел бы следующим образом:

Это работает точно так же, как и с числами. Неплохо.

Только что мы выучили, как работают индексы в списках. Но мне всё ещё нужно показать вам, как добавить новый элемент в список.

Самая простая функция, которую можно использовать для этого — зовётся append. Работает она следующим образом:

Функция append донельзя проста. Вам всего лишь нужно использовать новый элемент(в примере выше это “The Effective Engineer”) как значение это функции.

Ну что же, достаточно о списках. Перейдём к следующей структуре данных.

Словарь: структура данных в виде ключ-значение

Теперь мы знаем, что списки пронумерованы числовыми значениями. Но что, если мы не хотим использовать числа для идентификации элемента? Некоторые виды структур данных могут использовать числа, строки, или другие виды идентификации.

Одним из таких типов является словарь. Словарь это коллекция пар ключ-значение. Вот так это выглядит:

Ключ указывает на значение. Чтобы получить доступ к какому-либо значению — нам нужно обратиться к его ключу. Делается это следующим образом:

Я создал словарь о себе. Моё имя, никнейм и национальность. Эти атрибуты ключи в словаре.

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

В примере я написал предложение о себе используя значения, которые хранятся в словаре. Довольно просто, не правда ли?

Ещё одной хорошей особенностью словарей является то, что мы можем использовать что угодно в качестве значения. В том словаре, что я создал, я хочу добавить новый ключ “age”(возраст) и числом мой реальный возраст в качестве значения:

Здесь у нас пара из ключа(age) и значения(24). При этом ключ это строка, а значение это число.

Точно также как со списками, давайте научимся добавлять новый элемент в словарь. Ключ указывающий на значение — главная особенность словаря. И это же одна из особенностей при добавлении нового элемента в словарь:

Нам просто нужно дописать значение для существующего ключа в словаре. Ничего сложного, не так ли?

Итерации: циклы для структур данных

Как описывалось выше — итерации в списках довольно просты. Обычно Python-разработчики используют цикл for. Давайте посмотрим как это выглядит:

Таким образом, за каждую книгу на книжной полке(bookshelf) мы вызываем функцию print. Достаточно просто и интуитивно. Это Python.

Для хэш-структуры данных мы используем тот же цикл for, но в качестве счётчика выступает key:

Это пример того как мы используем этот цикл. За каждый ключ в словаре, мы используем print для вывода ключа и его значения.

Также есть другой способ сделать это используя функцию iteritems.

Мы назвали наши параметры как key и value, но в этом нет необходимости. Мы можем назвать их как угодно. Давайте проверим это:

В данном примере мы использовали attribute, как параметр для ключей словаря. Как видим, всё работает корректно. Отлично!

Классы и объекты

Немного теории:

Объекты это представление предметов из реальной жизни, например машин, собак, велосипедов. У объектов есть две основных характеристики: данные и поведение.

У машин есть данные, например количество колёс или сидячих мест. Также у них есть поведение: они могут разгоняться, останавливаться, показывать оставшееся количество топлива и другое.

В объектно-ориентированном программировании мы идентифицируем данные как атрибуты, а поведение как методы. Ещё раз:

Данные → Атрибуты; Поведение → Методы

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

Активировать объектно-ориентированный режим Python

Python, как объектно-ориентированный язык программирования, имеет следующие концепции: классы и объекты.

Класс — это чертёж, модель для его объектов.

Ещё раз, класс — это просто модель, или способ для определения атрибутов и поведения(о которых мы говорили в теории выше). Например, класс машины будет иметь свои собственные атрибуты, которые определяют какие объекты являются машинами. Количество колёс, тип топлива, количество сидячих мест и максимальная скорость — всё это является атрибутами машин.

Держа это в уме, давайте посмотрим на синтаксис Python для классов:

Мы определяем классы class-блоком и на этом всё. Легко, не так ли?

Объекты это экземпляры классов. Мы создаём экземпляр тогда, когда даём классу имя.

Здесь car это объект(экземпляр) класса Vehicle.

Помните, что наш класс машин имеет следующие атрибуты: количество колёс, тип топлива, количество сидячих мест и максимальная скорость. Мы задаём все атрибуты когда создаём объект машины. В коде ниже, мы описываем наш класс таким образом, чтобы он принимал данные в тот момент, когда его инициализируют:

Мы используем метод init. Мы называем этот конструктор-методом. Таким образом, когда мы создаём объект машины, мы можем ещё и определить его атрибуты. Представьте, что нам нравится модель Tesla S и мы хотим создать её как наш объект. У неё есть четыре колеса, она работает на электрической энергии, есть пять сидячих мест и максимальная скорость составляет 250 км/ч. Давайте создадим такой объект:

Четыре колеса + электрический “вид топлива” + пять сидений + 250 км/ч как максимальная скорость.

Все атрибуты заданы. Но как нам теперь получить доступ к значениям этих атрибутов? Мы посылаем объекту сообщению с запросом атрибутов. Мы называем это метод. Это поведение объекта. Давайте воплотим эту идею:

Это реализация двух методов: number_of_wheels и set_number_of_wheels. Мы называем их получатель и установщик. Потому что получатель принимает значение атрибута, а установщик задаёт ему новое значение.

В Python мы можем реализовать это используя @property для описания получателя и установщика. Посмотрим на это в коде:

Далее мы можем использовать методы как атрибуты:

Это немного отличается от описания методов. Эти методы работают как атрибуты. Например, когда мы задаём количество колёс, то не применяем два как параметр, а устанавливаем значение двойки для number_of_wheels. Это один из способ написать получать и установщик в Python.

Ещё мы можем использовать методы для других вещей, например создать метод “make_noise”(пошуметь).

Когда мы вызовем этот метод, он просто вернётся строку “VRRRRUUUUM”.

Инкапсуляция: сокрытие информации

Инкапсуляция — это механизм, который ограничивает свободный доступ к данным и методам объекта. Но в то же время, это упрощает доступ к данным(методам объекта).

“Инкапсуляция может использоваться для сокрытия данных и функций. Под определением инкапсуляции имеется ввиду то, что внутреннее представление объекта сокрыто от просмотра вне определения объекта.” — Википедия

Вся внутренняя реализация объекта недоступна извне. Только сам объект может взаимодействовать со своими внутренними данными.

Для начала нам нужно понять как работают публичные и не-публичные переменные и методы.

Публичные экземпляры данных

Для Python-класса мы можем инициализировать публичный экземпляр переменной внутри нашего конструктор-метода. Давайте посмотрим:

Здесь мы применяем значение first_name как аргумент для публичного экземпляра переменной.

Здесь нам не нужно применять first_name как аргумент, а все экземпляры объектов будут иметь заранее прописанный атрибут класса. В нашем случае first_name будет заполнено строкой “ТК.

Круто. Теперь мы узнали как можно использовать публичные экземпляры переменных и атрибуты класса. Ещё одна интересная особенность публичных данных в том, что мы можем управлять значениями переменных. Что я имею в виду под этим? Наш объект может управлять значением переменной: получать и устанавливать значения переменной.

Помня о классе person зададим значение для переменной first_name

Вот и всё. Мы просто задали другое значение(kaio) экземпляру переменной first_name и оно обновилось. И всё на этом. Поскольку это публичная переменная, то мы можем делать это так.

Не-публичные экземпляры данных

Мы не используем термин “приватный”, поскольку в Python нет действительно приватных атрибутов(если только не задаваться тяжёлой целью создать их). — PEP 8

Точно так же, как с публичными экземплярами переменных, мы можем объявить и не-публичные экземпляры. Оба внутри конструктор-метода или внутри класса. Синтаксис несколько отличается: не-публичные экземпляры переменных должны начинаться с нижнего подчёркивания(“_”) перед именем переменной.

“‘Приватный’ экземпляр данных, доступ к которому открыт только изнутри, не существует в Python. Тем не менее, есть условность, которая выполняется в большей части Python-кода: имена с префиксом “_”(например, “_spam”) должны обрабатываться как не-публичные части API(будь то функция, метод или какие-то данные)” — Python Software Foundation

Увидели переменную email? Вот так мы описываем не-публичную переменную:

Мы имеем доступ и может обновить это. Не-публичные переменные это условность, при которой эти переменные обрабатываются как не-публичная часть API.

Таким образом мы создаём метод, который позволяет нам вносить изменения внутри определения класса. Давайте реализуем два метода(email и update_email), чтобы понять это:

Теперь мы имеем доступ и можем обновить значения не-публичных переменных используя эти методы. Посмотрим:

  1. Мы объявили новый объект, в котором first_name заполнено строкой “ТК” и email заполнено строкой “tk@mail.com”
  2. Выводим email получая доступ к не-публичной переменной через метод
  3. Пробуем задать новый email извне нашего класса
  4. Нам нужно обращаться в не-публичной переменной как к не-публичной части API
  5. Обновляем нашу не-публичную переменную с нашим методом экземпляра
  6. Успех! Мы можем обновить это внутри нашего метода с помощью метода-помощника

Публичные методы

Публичные методы мы тоже можем использовать вне класса:

Давайте протестируем это:

Прекрасно. Мы можем использовать это без каких-либо проблем.

Не-публичные методы

Но не-публичные методы мы не можем использовать так просто. Давайте реализуем тот же класс Person, но теперь метод show_age станет не-публичным с нижним подчёркиванием.

А теперь попробуем вызвать этот не-публичный метод с помощью нашего объекта:

У нас есть доступ и мы можем обновить это. Не-публичные методы это просто условность, при которых они обрабатываются как не-публичная часть API.

Здесь пример того, как мы можем использовать это:

Здесь у нас есть не-публичный метод _get_age и публичный метод show_age. show_age может использоваться нашим объектом(вне класса), в то время как _get_age используется только внутри определения нашего класса(внутри метода show_age). Но опять же, в виду условностей.

Вывод об инкапсуляции

С помощью инкапсуляции мы можем убедиться, что наша внутренняя реализация объекта сокрыта от внешних манипуляций.

Наследование: поведение и характеристики

Разные объекты могут иметь некоторую схожесть, обладать поведением и характеристиками.

Например, я унаследовал какие-то характеристики и поведение от своего отца. Я получил его глаза и волосы в качестве своих характеристик, а его нетерпеливость и интровертность в качестве своего поведения.

В объектно-ориентированном программировании классы могут наследовать простые характеристики(данные) и поведение(методы) от других классов.

Давайте посмотрим другой пример и реализуем его в Python.

Представьте машину. Количество колёс, сидячих мест и максимальная скорость — всё это атрибуты машины. Мы можем сказать, что класс электромашины наследует эти схожие характеристики от обычного класса машины.

Наш класс машины реализует:

Один раз реализовав, мы можем использовать все созданные экземпляры переменных. Неплохо.

В Python, мы применяем класс-родитель к нашему классу-наследнику как параметр. Класс электромашины может наследоваться от класса машины.

Вот так просто. Нам не нужно реализовывать какой-либо другой метод, потому что этот класс уже имеет его(унаследовав от класса машины). Давайте докажем это:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *