# 1. Розпалювання апетиту

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

Якщо ви професійний розробник програмного забезпечення, можливо, вам доведеться працювати з кількома бібліотеками C/C++/Java, але звичайний цикл запису/компіляції/тестування/повторної компіляції занадто повільний. Можливо, ви пишете набір тестів для такої бібліотеки і вважаєте написання тестового коду виснажливим завданням. Або, можливо, ви написали програму, яка може використовувати мову розширення, і ви не хочете розробляти та впроваджувати абсолютно нову мову для своєї програми.

Python — це саме ваша мова.

Ви можете написати сценарій оболонки Unix або пакетні файли Windows для деяких із цих завдань, але сценарії оболонки найкраще підходять для переміщення файлів і зміни текстових даних, не дуже підходять для програм із графічним інтерфейсом користувача чи ігор. Ви можете написати програму C/C++/Java, але розробка може зайняти багато часу, щоб отримати навіть першу чернетку програми. Python простіший у використанні, доступний в операційних системах Windows, macOS і Unix і допоможе швидше виконувати роботу.

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

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

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

Python дозволяє писати програми компактно та зрозуміло. Програми, написані на Python, зазвичай набагато коротші, ніж еквівалентні програми на C, C++ або Java, з кількох причин:

- типи даних високого рівня дозволяють виражати складні операції в одному операторі;

- групування тверджень здійснюється за допомогою відступів замість початкових і кінцевих дужок;

- не потрібні оголошення змінних або аргументів.

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

До речі, мова названа на честь шоу BBC «Летючий цирк Монті Пайтона» і не має нічого спільного з рептиліями. Посилання на сценки Monty Python у документації не тільки дозволено, але й заохочується!

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

У наступному розділі пояснюється механізм використання інтерпретатора. Це досить повсякденна інформація, але важлива для випробування прикладів, показаних пізніше.

Решта підручника знайомить із різними функціями мови та системи Python через приклади, починаючи з простих виразів, інструкцій і типів даних, через функції та модулі, і, нарешті, торкаючись розширених концепцій, таких як винятки та визначені користувачем класи.