Рубрики
Без рубрики

Продвиньте свои навыки Python, создавая анализатор чата WhatsApp: руководствующийся проект

Поиск способов применения ваших знаний после того, как процесс обучения по существу означает, что обучение H … помечено Python, Учебное пособие, карьеру.

Построить, чтобы узнать (4 части серии)

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

Разве это не хочется промедление?

Я верю в подход к обучению, который дает делать проекты основное значение .

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

Кроме того, это супер весело и приключенны!

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

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

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

Самое главное, я хочу дать вам мотивацию и стимул для вас, чтобы научить себя.

Что вы узнаете

Вот несколько навыков учебников, которые вы получите:

  • Обработка файлов
  • Струнные операции в Python
  • Функции
  • Модули
  • PIP и используя 3-я партийные пакеты
  • Регулярные выражения (Regex) в Python

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

  • Важность читаемости вашего кода и стиля кодирования
  • Когда и как сломать свой код в функции
  • Как пойти на отладка вашего кода (когда вы хотите взбить голову на стену, вместо этого)
  • Как выглядеть в Интернете – используйте Google, используйте Stackoverflow, чтение документации и т. Д.
  • Понять необходимость разных структур данных и когда использовать то, что

Давайте доберемся до этого!

Q: «Хорошо, что я строю?» 😃

Хорошо, так вот идея:

Когда общаюсь с близким другом, вы когда-нибудь хотели знать –

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

Разве это не будет круто, если вы написали программу, которая просто рассчитала бы все это для вас?!?

Q: «Но насколько это круто, действительно?» 😒

Reddit говорит, что это «14k Points» -Cool!

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

Q: «Круто! Но я готов? ” 😳

” Каждый замечательный разработчик, который вы знаете, попали там, решение проблем, они были неквалифицированы, чтобы решить, пока они на самом деле не сделали это ».

— Патрик МакКензи.

Думая по этим линиям, я верю, что:

  • Если вы знать основы Из следующего в Python – переменные, списки, словари, петли, условия, функции – вы готовы.
  • В противном случае, если вы Новый в Python, но знайте основы на другом языке – Пройдите через Этот быстрый урок Python И я думаю, что вы будете готовы.

Просто погрузитесь в 1-й «Hello World» -эквивалентные упражнения ниже. Если вы можете завершить его, вы готовы!

Q: «А как я построю это?» 😕.

WhatsApp позволяет вам экспортировать любой чат в текстовый файл, который выглядит что-то подобное –

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

Но это недостаточно помощи, верно?

  • Вот почему я написал это краткое руководство для вас, чтобы следовать как дорожная карта. Я разделил задачу здания в 10 вехи (MS) И написали небольшие советы по тому, что вам нужно научиться покрывать каждую вехою. Относиться к этому как ученичество.

«Хорошо, давайте сделаем это тогда!» 😃

MS0: настроить вашу среду

Когда вы начинаете, вы не хотите проводить часы, настраивая среду. Половина вашей мотивации убивается прямо там! Верно?

Repl.it Выход из установки-разочарования.

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

MS1: уверенность в том, что вещи работают («Hello World!», Эквивалентный)

Каждая книга/учебник по программированию когда-либо начинается с «Hello World!» программа. Почему это так?

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

С учетом этих целей, вот ваша Hello World-Equivalent программы:

Печать «Я люблю тебя 3000» .. 3000 раз! ( Любые любители Marvel там? :п)

Это хорошая возможность идти глубоко и:

  • Видите, если вы готовы погрузиться глубже в проект

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

MS2: прочитайте файл чата с помощью программы Python

Здесь вы построите кусок проекта с каждой главой.

Есть 2 файла, которые вам понадобится для проекта –

  1. Ваш файл чата WhatsApp (заканчивая .txt )
  2. Файл кода Python (заканчивая .py )

Как только вы у вас есть, эта первая глава требует от вас открыть файл чата с помощью программы Python и распечатать все его содержимое.

Это хорошая возможность идти глубоко и:

  • Понять, как обрабатывать файлы с Python

Обработка файла в Python – от нуля до героя:

Вы знаете, что любой редактор, который вы используете для открытия текстового файла на вашем компьютере (Notepad, VS Code, Vim и т. Д.) Это программа, верно?

Знаешь что? – Вы можете сделать свою собственную программу Python сделать это. Почти легко!

Пройти через Это отличное руководство настоящим Python Чтобы узнать концепции обработки файлов в Python.

MS3: Особенности # 1 и # 2 – Подсчитайте общий объем нет. сообщений и полной нет. слова

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

Это хорошая возможность идти глубоко и:

  • Понимать строки в Python

Важные вещи, которые нужно помнить о струнах в Python:

  • Строки рассматриваются как списки. Таким образом, вы можете пообщаться так:
if "- Paridhi:" in chat_line:
    counter+=1
  • Струны Python известны (по сравнению с теми на других языках), потому что Python поддерживает их богатой библиотекой встроенных методов, которые вы можете использовать для выполнения операций на них. Я предлагаю вам использовать Это руководство W3Schools Как ваш справочный материал для тех методов.

  • Способность питона Структура и отрицательные индексные струны Может быть действительно удобным временами!

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

Стиль кодирования и читаемость кода:

Брайан У. Кернеган говорит в своей книге – Практика программирования :

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

Лично, когда я пытаюсь принять решения о читаемости моего кода, эта линия от Дзен Питона играет в моем мозге:

Явное лучше, чем неявное

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

1. Поместите некоторые мысли в выборе имени ваших переменных

Я нахожу совет Брайана У. Кернингана очень полезно здесь:

  • Глобальные функции, классы и структуры должны иметь описательные имена, которые предлагают свою роль в программе.
  • Напротив, более короткие имена достаточно для локальных переменных; В рамках функции n может быть достаточным, npoints хорошо, и НомерОтовые точки это переплет.
  • Локальные переменные, используемые в обычных способах, могут иметь очень короткие имена. Использование i и J Для индексов петлей P и Q. для указателей, и с и T Для строк настолько часто, что есть небольшая прибыль и, возможно, некоторая потеря в более длительных именах.

2. Используйте функции везде, где это необходимо

  • Разбить длинные кусочки кода в функции
  • Не повторяйте себя (сухими) – используйте функции, чтобы удалить дубликаты кусочков кода

Больше на функциях в следующей главе.

3. Напишите полезные комментарии

  • Комментарии предназначены для помочь читателю программы. Они не помогают говорить о том, что код уже просто говорит, либо, противоречащий коду или отвлекая читателя с помощью сложных типографических дисплеев.
  • Как можно больше, Написать код, который легко понять ; Чем лучше вы делаете это, тем меньше комментариев вам нужно. Хороший код нуждается в меньшем количестве комментариев, чем плохой код. Комментарии, в лучшем случае, необходимое зло.
  • Не противоречить коду Отказ Большинство комментариев согласны с кодом, когда они написаны, но в качестве исправления ошибок и программа развивается, комментарии часто остаются в их первоначальном виде, что приведет к разногласию с кодом.

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

MS4: функция № 3 – рассчитать среднюю длину сообщений, отправленных каждой стороной

Теперь, что вы рассчитали свою индивидуальную долю, используя 2 метрики – количество сообщений и подсчет слов – вы можете использовать его для расчета каждой из вас средней длины сообщений. Распечатайте результаты.

Это хорошая возможность идти глубоко и:

Понять функции как средство:

  • уменьшить повторение
  • сделать код более читабельным

Глубокое погружение в использование функций – мотивация и стиль:

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

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

Что еще? Делать такой выбор дизайна – это то, что делают программирование забавным!

Вот 3 эвристика из Книга Боб Мартина Чистый код Это будет направлять вас при создании такого варианта:

  • Функции должны быть маленькими ; Как маленький? Не более, чем экран или 20 строк
  • Функции должны иметь описательные имена Отказ Меньшая и более целенаправлена функция, тем легче выбрать описательное имя. Не бойся сделать имя долго. Длинное описательное имя лучше, чем короткое загадочное имя. Длинное описательное имя лучше, чем длинный описательный комментарий.
  • Функции должны делать только одну вещь и не имеют никаких «побочных эффектов» – его намерение должно быть ясно из его имени

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

Помните, что они являются целями по созданию функций, которые вам нужно стремиться к. Не позволяйте им парализовать вас.

MS5: функция # 4 – счет нет. первых текстов и показать им

Хотите решить проблему «Кто тексты сначала» раз и навсегда? 😜 После этого этама вы будете. Вы точно узнаете, сколько разговоров каждый из вас инициировал и имел список этих первых текстов. Распечатайте все это.

Это хорошая возможность идти глубоко и:

  • Понимать модули – вам понадобится … Python’s время Модуль здесь
  • Узнайте, как выглядеть и прочитать документацию

Осторожно : Не пугайтесь документами. Они твои друзья.

Что такое модули?

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

Установка Python поставляется с Стандартная библиотека которые содержат такие модули вне коробки Отказ Это полезные кусочки кода, которые вам не нужно писать!

MS6. Особенность № 5 – Час времени в чате – почасовые, ежедневно и ежемесячно

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

  • Какой час дня вы общаетесь больше всего? Как насчет остальных часов?
  • Какой день недели вы обычно общаетесь больше всего? Как насчет остальных дней?
  • Какой месяц вы болтали больше всего? Как насчет остальных?

Распечатайте результаты.

Это хорошая возможность идти глубоко и:

  • Понять необходимость разных структур данных для хранения всех этих данных и думать о том, как разработать структуру данных, чтобы удовлетворить ваши потребности

Примечание : Вам понадобится время Модуль снова здесь. Важно знать, что все в порядке, если вы не помните это; Вам разрешено использовать Google и проверять документацию столько раз, сколько вам нужно.

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

Как отладить свой код:

  • Объясните код другу или используйте «Техника резиновой утки»
  1. Выберите друга (или резиновую утку)
  2. Откройте проблемный код и объясните его ему (/ей/ей), линия по линии, медленно и терпеливо
  3. Найдите проблему, глядя на вас, на вашем лице, без какой-либо помощи вашего друга (или утки), как будто магией!
  • Добавить операторы печати

Хотя добавление таких операторов печати не является правильным способом отладки, я нахожу их невероятно эффективным время от времени. Особенно, когда я работаю с текстовым редактором, таким как VIM, а не на полноценном IDE, у которого есть отладчик (или когда вы слишком ленивы, чтобы узнать, как использовать отладчик: P).

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

  • Используйте отладчик IDE

Как написать, reft.it пока не полностью поддерживает отладчик. Мои любимые IDES для Python, которые поддерживают это код Pycharm или VS.

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

Персональный совет: я использую «IDE отладчик», потому что Python предоставляет отладчик в стандартном библиотечном модуле – * PDB ** – И я предложу, что вы не попадаете в это сейчас.

MS7. Особенность # 7 – Самые общие веб-сайты

Это хорошая возможность идти глубоко и:

  • Узнайте Regex.
  • Понять словари Python как традиционные Hashtables: сопоставление от имени сайта на количество вхождений

Быстрое введение для регулярного выражения

Регулярное выражение – это специальная текстовая строка для описания шаблона поиска.

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

« Я хочу каждую строку, которая находится между " http://" или " https://" а второй / После этого, если присутствует. Или первый, первый / Отказ

Вот несколько любимых ресурсов для изучения Regex:

MS8. Функция № 8 – наиболее распространенные слова

Я позволю вам понять это самостоятельно!

MS9. Распечатать все вышеперечисленное в красивых, аккуратные столы

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

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

Это хорошая возможность идти глубоко и:

  • Осознать, что это значит, когда люди советуют – «Функции должны сделать только одну вещь»
  • Учитесь искать, устанавливать и использовать 3-го вечеринки модули, которые Python’s Awesome, оживленное сообщество Python предоставляет через пипс
  • Дайте личное прикосновение к проекту с тем, как вы разработаете таблицы!

Быстрый грунт на богатой экосистеме Python из открытого источника, 3-й партии

Экосистема Python имеет участники отдельных разработчиков в MegaCorps, как Facebook и Google (богатая экосистема, а?:п ). Они предлагают модули и библиотеки кода, чтобы помочь в строительстве веб-сайта, числовое программирование, разработку игр, науки о данных, машинном обучении, глубокому обучению и хорошо, печатную красивые таблицы.

Теперь это много кода, вам не нужно писать!

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

Вот несколько вещей, которые выберут вас на скорость использования PYPI:

  • Вы можете установить каждый пакет, используя Simple Terminal Command – пипс . Вы можете найти именно то, что вам нужно ввести на страницу пакета в Pypi.
pip install tabulate
  • У любого хорошего пакета также есть Как использовать руководство (или документация) на его странице в Pypi
  • Даже новички могут публиковать свои экспериментальные пакеты в Python. Вы должны быть осторожны перед использованием их; Они могут быть неполными или ненаправленными. Вы можете проверить посылку История выпуска или его статистика Github определить его доверие.

MS10: Сделайте всю эту работу для групповых файлов чата

С помощью этой вехи вы будете расширять свою программу в новый корпус – групповые чаты. До этого момента у вас будет прямое сообщение чата с одним другом. Теперь вы измените свою программу, чтобы она будет работать с файлами WhatsApp Group Chat.

Это хорошая возможность идти глубоко и:

  • Оцените ваши функции. Вы можете повторно использовать хотя бы некоторые из них?
  • Почувствуйте преимущества хорошего стиля кодирования и Хорошие практики программирования
  • Смотрите важность системы управления версиями и изучать Git

Хорошее программное обеспечение

Это сделает вам хорошо помнить, что Брайан У. Кернеган говорит о хорошем программном обеспечении в его книге Практика программирования :

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

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

Вот какой-то код, чтобы дать вашему стартую повышение:

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

Кроме того, вы можете спросить меня или ваших попусленших ваших сомнений в Построить для изучения Slack Group Отказ

Как заметку, я хотел бы, чтобы вы вспомнили слова Джена Симмонс, поскольку вы работаете над этим проектом (или любым другим проектом программирования):

WhatsApp Chat Analyzer является одним из 20 Проекты прохлада программирования, которые я упомянул в последнем посте В серии – Построить для изучения Отказ Если вы хотите, чтобы я сделал подобное руководство для любого из остальных, не стесняйтесь комментировать ниже или добраться до меня напрямую!

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

Вы можете связаться со мной на обоих Twitter и LinkedIn Отказ

Построить, чтобы узнать (4 части серии)

Оригинал: “https://dev.to/nityeshaga/advance-your-python-skills-by-building-a-whatsapp-chat-analyser-a-guided-project-6p9”