article banner

Що можна робити в Python?

Це фрагмент книги Python з нуля, яка допоможе вам навчитися програмуванню з нуля. Ви можете знайти його на Allegro, Empik та в інтернет-книгарнях.

Python — це одна з найуніверсальніших мов програмування. Вона має низку більш і менш важливих застосувань, як професійних, так і розважальних. Це основний інструмент аналітиків, фахівців зі штучного інтелекту та інженерів даних. Python зазвичай використовується для створення вебпорталів та автоматизації завдань. Його також застосовують тестувальники, розробники ігор, системні адміністратори та служби підтримки.

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

У цьому розділі я говоритиму про пакети (які також називають бібліотеками) і фреймворки. Ці поняття зовні схожі, але насправді є різними. Пакет можна розуміти як код, написаний іншими програмістами, який ми використовуємо в нашому проєкті. Зазвичай він містить корисні функції та класи, які ми використовуємо як інструменти. Прикладом пакетів є NumPy і Pandas. Framework — це більш потужний пакет, який зазвичай визначає, як має виглядати наш код. Його часто описують як "скелет" для створення програми. Кажуть, що розробник викликає пакет, а фреймворк — розробника. Прикладами фреймворків є Django і Flask.

Аналіз даних

Кожного дня збираються петабайти даних, а їх аналіз є не тільки основою науки, але й має вирішальне значення для багатьох бізнес-рішень. Великі компанії піклуються про зібрані дані, як про великий скарб, обробляють їх, аналізують, візуалізують і роблять на їх основі висновки. Існує ряд професій, залучених до цих процесів: аналітики, інженери даних, розробники (які збирають дані), фахівці з баз даних і багато інших.

Сьогодні Python є стандартом для аналізу та візуалізації даних. Найпоширенішими пакетами є NumPy і Pandas. NumPy забезпечує ефективне зберігання та обробку великих наборів даних. Pandas додає ряд функцій для спрощення обробки даних. Для дуже великих наборів даних використовується також PySpark.

Як почати В інтернеті за запитом 2 "python for data science" або "data analysis with python" можна знайти багато безкоштовних курсів. Це дуже хороший початок. Вони переважно зосереджуються на NumPy і Pandas. На наступному кроці варто перевірити набуті знання на практиці, проаналізувавши загальнодоступні набори даних. Ти знайдеш їх за пошуковим запитом "datasets for data science" (багато цікавих наборів даних можна знайти на вебсайтах kaggle.com і data.gov). Для мотивації Ти можеш завести блог і публікувати там свої висновки з аналізу даних.

Візуалізація даних

Візуалізація даних фактично є продовженням їх аналізу. Гарна презентація має важливе значення для того, щоб Твоя аудиторія зрозуміла висновки з аналізу. Для цього у нас є ряд інструментів від різних типів діаграм до різноманітних схем і карт. Популярними пакетами для візуалізації даних є Plotly, Matplotlib і Seaborn.

Як почати Аналіз даних і візуалізація тісно пов’язані, тому багато згаданих у попередньому пункті курсів подають також певні методи візуалізації даних. Однак існують і загальнодоступні спеціальні курси з візуалізації даних. Знайти їх можна за пошуковим запитом "data visualization python".

Машинне навчання

Машинне навчання — це насправді найбільш просунута форма аналізу та отримання висновків на основі даних. Воно ідеально підходить, наприклад, для розпізнавання зображень або звуків, прогнозування або створення текстів 3.

Для машинного навчання Python також є стандартом. Популярні пакети у цій сфері: SciPy, Scikit Learn, Statsmodels, TensorFlow і Keras.

Як почати Машинне навчання — це сфера, яка значною мірою базується на математиці та розумінні того, як працюють використовувані моделі. Тому рекомендую починати з академічних курсів. Їх можна знайти на YouTube або на таких платформах, як Coursera чи edX. Я особливо рекомендую чудовий курс Machine Learning Ендрю Ина (наразі доступний безкоштовно на YouTube і Coursera). Далі варто пройти практичні курси (пошук за запитом "machine learning python"). Нарешті, як і у випадку з аналітикою даних, найбільше значення має самостійна практика та власні проєкти на основі загальнодоступних даних.

Збір даних

Існує два основних методи автоматичного збору даних. Перший — це зберігання у системі дій користувачів або інформації, яку користувачі надають системі. Це нагадує записи власника магазину, який нотує, скільки продано кожного продукту. Цей метод реалізується в рамках розробки програм. Другий спосіб — створення програм, які шукатимуть цікаві для нас дані. Наприклад, такі програми можуть самі вводити відповідний запит у Google і перевіряти, на якому місці знаходиться Твоя сторінка. Для цього дуже часто використовуються скрипти, написані на Python. Популярні пакети включають BeautifulSoup, MechanicalSoup, Scrapy, LXML, Python Requests та Urllib.

Як почати Я рекомендую почати з технік, описаних у розділі Збір даних зі сторінок, а потім глибше ознайомитися з переліченими пакетами та їхніми можливостями.

Тестування сторінок

Коли створюються такі вебсайти, як Facebook або Twitter, одним з найважливіших кроків є переконатися, що вони правильно працюють. Такі портали часто мають багато менших або більших функцій. Неможливо запам’ятати їх усі, не кажучи вже про те, щоб перевірити, чи всі вони працюють саме так, як задумано. Тому при створенні сайтів дуже важливо перевіряти правильність їх роботи за допомогою автоматизованого тестування.

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

Популярним варіантом є написання тестів у Python за допомогою Robot Framework. Це оверлей популярного фреймворку Selenium, який підтримує, серед іншого, Python, Java та JavaScript. Також популярним є тестування за допомогою JavaScript із використанням інструменту Cypress.

Як почати Я рекомендую розпочати нашу пригоду з тестуванням на Python за допомогою Robot Framework (пошуковий запит "robot framework tutorial").

Створення вебсайтів

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

Python використовують зокрема YouTube, Google, Instagram, Reddit, Spotify, Dropbox і Quora.

До популярних фреймворків належать Django та Flask. Однак для створення серйозного вебсайту одного Python недостатньо. Також потрібно знати HTML, CSS і JavaScript.

Багато молодих програмістів створили чудові вебсайти та портали. Працевлаштування у таких проєктах вже давно не бракує, хоча б тому, що майже кожен великий бізнес створює та розвиває власну сторінку. Більше того, створення вебсайту приносить масу задоволення; його можна показати друзям, а кожна створена сторінка наближає Тебе до працевлаштування у цій галузі.

Як почати Я рекомендую починати із проходження курсу з HTML і CSS, а потім створити принаймні одну сторінку з їх використанням. Тоді можна почати використовувати Django або Flask для створення Твого вебсайту. В ідеалі починати з курсу із вибраного фреймфорку, а в міру його вивчення — створювати та розвивати свої проєкти. Згодом неминуче буде ознайомитися з використанням JavaScript, щоб оживити створені сторінки.

Розробка ігор

Python не є мовою першого вибору для розробки професійних ігор. Частіше використовується C++ або C# 4. Тим не менше, завдяки своїй простоті та безлічі хороших фреймворків, Python — це хороше рішення для початку, яке охоче обирають менші розробники. Так були створені зокрема Battlefield 2, Frets on Fire, World of Tanks, Disney's Toontown Online, Vega Strike чи Civilization IV. Популярні фреймворки тут: PySoy і PyGame.

Я особливо ціную навчальні ігри 5. Наприклад, пошук міст на карті у грі здається набагато цікавішою формою навчання, ніж вивчення їх розташування напам’ять. Багато розробників пропонують ігри, які візуалізують важливі математичні моделі або соціальні явища.

Як почати Я рекомендую почати так само, як ми робили в главі книги, присвяченій "змійці", де описано створення простих ігор у PyGame. На YouTube можна легко знайти багато курсів про те, як крок за кроком написати гру вибраного типу. Наприклад, якщо ти хочеш написати гру типу Tower Defense, пошукай "tower defense python".

Робототехніка

Дуже важливим застосуванням програмування є автоматизація та робототехніка. Від написання програмного забезпечення для ліфтів і автомобілів до промислових роботів і дронів. Ці застосування важливі для промисловості, хоча це і непроста кар’єра. Тут можна творити на багатьох різних рівнях.

Найнижчий із них — це проєктування процесорів. Цим займаються виробники серійної техніки. Вони визначають, як саме повинен поводитися процесор, після чого замовляють виробництво саме такого обладнання. Це робить ці процесори дешевими та швидкими. Однак таке програмування дуже складне і має вузький діапазон застосувань. У Польщі, наприклад, мало компаній, які займаються проєктуванням процесорів. Найбільша з відомих мені — Cadence. Визначення процесорів найчастіше задаються у VHDL, але популяризується використання Python і пакета cocotb.

Дещо вищий рівень — написання програм безпосередньо для універсальних процесорів. Це рішення набагато популярніше, тому що такі мікросхеми досі дешеві та швидкі, а розробка програмного забезпечення для них є набагато простішою. Крім того, раніше стандартом була мова C, а зараз популярнішими стають C++ і Python. Вони дають схожий ефект і зручніші у використанні.

Нарешті, дуже важливе застосування — це програмне забезпечення електронних пристроїв з мінімалістичною операційною системою. Тут звичним стало використання систем з групи Raspberry PI, для яких рекомендованою мовою програмування є Python. Як наслідок, більш просунуті машини, такі як роботи чи руки-роботи, також часто програмуються на Python. Так, значна частина коду, який використовується на сучасних заводах, написана на Python.

Приклад руки-робота. Такі руки часто використовуються на заводах.

Як почати Залежно від того, який з рівнів Тебе цікавить, шлях розвитку буде різним. Найпростіше почати навчання з Raspberry PI. Це коштує невеликих грошей, а в інтернеті є багато тематичних курсів. Під заголовком "robotics in python" можна знайти багато курсів на тему програмування роботів, де створений Тобою код перевіряється на симуляторах.

Автоматизація процесів

Використовуючи Python, ми також можемо автоматизувати свої повсякденні або рутинні дії. Коли я мав підрахувати кількість символів у книзі, я написав скрипт 6. Коли мені потрібно було заповнити документ даними з вебсторінок, я написав скрипт. Коли мені потрібно було регулярно перевіряти, чи вебсайт, який я створював, доступний онлайн... Гадаю, Ти вже здогадуєшся. Можна автоматизувати майже будь-яку рутинну діяльність, яку Ти виконуєш на комп’ютері. Звичайно, не все вигідно автоматизувати, хоча з кожним автоматизованим процесом у нас стає не тільки менше нудної роботи, але й більше навичок, корисних для автоматизації наступних процесів.

Можливості автоматизації з використанням Python — неймовірні. Автор книги Automate the Boring Stuff with Python показує, як він автоматизував гру Sushi Go Round за допомогою пакета PyAutoGUI, який дозволяє керувати мишею та клавіатурою. Книга доступна онлайн безкоштовно, а статтю можна знайти за посиланням bit.ly/3u7P7RY

Як почати Інструменти для використання залежатимуть від того, що ми хочемо автоматизувати та яким чином. Найважливішим, однак, є усвідомлення того, що майже будь-який комп’ютерний процес можна автоматизувати, а також сміливість шукати в інтернеті інформацію про те, як щось зробити. Є сенс також добре ознайомитися з командним рядком (або Терміналом у випадку MacOS і Linux) і дізнатися, як запланувати запуск певних програм чи на певний час, чи циклічно (наприклад, за допомогою програми cron).

Операційні системи

Я не думаю, що багато читачів матимуть бажання створити власну операційну систему, але варто згадати, що значна частина Linux написана на Python (а більша частина — на C).

Багато інших можливостей

Цей список можна продовжувати нескінченно. Я не згадав про створення чат-ботів, застосунків для ПК та смартфонів, скриптів для ігор та багато іншого. Щодня з’являються нові можливості та рішення, а творчий потенціал розробників безмежний. Я пишу цю книгу на стику 2021/2022 років, тому, якщо вона потрапила до Тебе кількома роками пізніше, мабуть, з’явилося багато нових пакетів і рішень, про які я навіть не мріяв. Шукай і, можливо, ти осідлаєш хвилю фантазії і здивуєш мене, автора, тим, що ще можна зробити в Python. Я буду радий про це довідатися! Тегни мене, розповідаючи про своє творіння у Twitter (@marcinmoskala), або напиши мені на books@kt.academy.

2:

Під пошуком за запитом я маю на увазі введення його в Google або на YouTube.

3:

Кілька детальних прикладів використання штучного інтелекту подані в розділі Машинне навчання.

4:

Мова C++ може бути набагато ефективнішою, тому її використовують у найбільших проєктах. C# — це мова Unity, дуже популярного рушія, який використовується невеликими розробниками ігор.

5:

Якщо ти створиш цікаву гру, не забудь розповісти мені, тегнувши у Twitter @marcinmoskala або надіславши посилання на електронну пошту books@kt.academy.

6:

Скрипт — це програма, яка автоматизує завдання.