Пітон спосіб пересування

Підручник з Python¶

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

Інтерпретатор Python і обширна стандартна бібліотека доступні у вихідному або двійковому вигляді для всіх основних платформ на веб-сайті Python https://www.python.org/ і можуть вільно поширюватися. Цей же сайт також містить дистрибутиви та вказівники на багато безкоштовних сторонніх модулів Python, програм і інструментів, а також додаткову документацію.

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

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

Опис стандартних об’єктів і модулів див. Стандартна бібліотека Python . Довідник з мови Python дає більш формальне визначення мови. Щоб написати розширення на C або C++, прочитайте Розширення та вбудовування інтерпретатора Python і Довідковий посібник з API Python/C . Є також кілька книг, які детально описують Python.

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

  • 1. Розпалювання апетиту
  • 2. Використання інтерпретатора Python
    • 2.1. Виклик Інтерпретатора
      • 2.1.1. Передача аргументу
      • 2.1.2. Інтерактивний режим
      • 2.2.1. Кодування вихідного коду
      • 3.1. Використання Python як калькулятора
        • 3.1.1. Числа
        • 3.1.2. Text
        • 3.1.3. списки
        • 4.1. if Інструкції
        • 4.2. for Заяви
        • 4.3. Функція range()
        • 4.4. break і continue Інструкції та else пропозиції циклів
        • 4.5. pass Інструкції
        • 4.6. match Інструкції
        • 4.7. Визначення функцій
        • 4.8. Докладніше про визначення функцій
          • 4.8.1. Значення аргументів за замовчуванням
          • 4.8.2. Аргументи ключових слів
          • 4.8.3. Спеціальні параметри
            • 4.8.3.1. Позиційні або ключові аргументи
            • 4.8.3.2. Лише позиційні параметри
            • 4.8.3.3. Аргументи лише за ключовими словами
            • 4.8.3.4. Приклади функцій
            • 4.8.3.5. Підведення підсумків
            • 5.1. Більше про списки
              • 5.1.1. Використання списків як стеків
              • 5.1.2. Використання списків як черг
              • 5.1.3. Розуміння списку
              • 5.1.4. Розуміння вкладених списків
              • 6.1. Детальніше про модулі
                • 6.1.1. Виконання модулів у вигляді скриптів
                • 6.1.2. Шлях пошуку модуля
                • 6.1.3. «Компільовані» файли Python
                • 6.4.1. Імпортування * з пакету
                • 6.4.2. Внутрішньопакетні посилання
                • 6.4.3. Пакунки в кількох каталогах
                • 7.1. Вишуканіше форматування виводу
                  • 7.1.1. Відформатовані рядкові літерали
                  • 7.1.2. Метод String format().
                  • 7.1.3. Ручне форматування рядка
                  • 7.1.4. Старе форматування рядка
                  • 7.2.1. Методи файлових об’єктів
                  • 7.2.2. Збереження структурованих даних за допомогою json
                  • 8.1. Синтаксичні помилки
                  • 8.2. Винятки
                  • 8.3. Обробка винятків
                  • 8.4. Створення винятків
                  • 8.5. З’єднання винятків
                  • 8.6. Винятки, визначені користувачем
                  • 8.7. Визначення дій з очищення
                  • 8.8. Попередньо визначені дії з очищення
                  • 8.9. Raising and Handling Multiple Unrelated Exceptions
                  • 8.10. Enriching Exceptions with Notes
                  • 9.1. Слово про імена та предмети
                  • 9.2. Області та простори імен Python
                    • 9.2.1. Приклад областей і просторів імен
                    • 9.3.1. Синтаксис визначення класу
                    • 9.3.2. Об’єкти класу
                    • 9.3.3. Об’єкти екземпляра
                    • 9.3.4. Об’єкти методу
                    • 9.3.5. Змінні класу та екземпляра
                    • 9.5.1. Множинне успадкування
                    • 10.1. Інтерфейс операційної системи
                    • 10.2. Символи підстановки файлів
                    • 10.3. Аргументи командного рядка
                    • 10.4. Перенаправлення виводу помилки та завершення програми
                    • 10.5. Відповідність шаблону рядка
                    • 10.6. Математика
                    • 10.7. Доступ в інтернет
                    • 10.8. Дати та час
                    • 10.9. Стиснення даних
                    • 10.10. Вимірювання ефективності
                    • 10.11. Контроль якості
                    • 10.12. Батарейки в комплекті
                    • 11.1. Форматування виводу
                    • 11.2. шаблонування
                    • 11.3. Робота з макетами записів двійкових даних
                    • 11.4. Багатопотоковість
                    • 11.5. Лісозаготівля
                    • 11.6. Слабкі посилання
                    • 11.7. Інструменти для роботи зі списками
                    • 11.8. Десяткова арифметика з плаваючою комою
                    • 12.1. вступ
                    • 12.2. Створення віртуальних середовищ
                    • 12.3. Керування пакетами за допомогою pip
                    • 14.1. Доповнення вкладок і редагування історії
                    • 14.2. Альтернативи інтерактивному інтерпретатору
                    • 15.1. Помилка представлення
                    • 16.1. Інтерактивний режим
                      • 16.1.1. Обробка помилок
                      • 16.1.2. Виконувані скрипти Python
                      • 16.1.3. Інтерактивний файл запуску
                      • 16.1.4. Модулі налаштування

                      #17 – Основи ООП. Створення класу та об’єкта

                      ООП – об’єктно-орієнтоване програмування. Є однією з найважливіших концепцій мови Python. Ми з вами приступаємо до вивчення теоретичної та практичної реалізації ООП. За урок ми навчимося прописувати класи та об’єкти у мові Пітон.

                      Відеоурок

                      Підписуйтесь на нашу групу в Телеграмі 🇺🇦

                      На початковому етапі ООП – це темний ліс, у якому багато чого незрозуміло і надто ускладнене. Насправді, все зовсім не так. Пропоную абстрагуватися від специфічних (незрозумілих) визначень і познайомитися з ООП простими словами.

                      ООП простими словами

                      Оскільки на прикладі все засвоїти набагато простіше, то давайте за приклад візьмемо робота, якого намагатимемося описати за рахунок класів в ООП.

                      Клас у випадку з роботом – це його креслення. Об’єктом класу називає цілий робот, створений точно за кресленням.

                      Спадкування – це додавання корисних опцій до креслення робота. Наприклад, беремо стандартний креслення робота і малюємо до нього лазери, крила та броню. Всі ці домальовки ми зробимо у класі спадкоємця, основний функціонал якого взято з батьківського класу.

                      Поліморфізм – це загальний функціонал для всіх роботів і не важливо, що кожен робот може дуже сильно відрізнятися один від одного. Наприклад, у основному класі ми вказуємо можливість переміщення всім наступним роботам. Далі в класі спадкоємця ми можемо додатково вказати можливість левітації для робота, в іншому класі вкажемо можливість пересування по воді і так далі. Виходить, що є загальний функціонал, що записаний у головному кресленні, але його можна переписати для кожного наступного робота (для кожного спадкоємця).

                      А інкапсуляція є для нас бронею, що захищає робота. Під пластиром броні знаходяться вразливі елементи, на зразок проводів та мікросхем. Після прикриття проломів за допомогою броні (модифікатори protected або private ) робот повністю захищений від зовнішніх втручань. По суті ми робимо доступ до всіх полів лише за рахунок методів, тим самим прямий доступ до поля буде закритий.

                      У всіх класах методи можуть відрізнятись, як і поля з конструкторами. Кожен клас дозволяє створювати будь-яку кількість різних об’єктів, усі мають власні характеристики.

                      Створення класів

                      Для створення класу необхідно прописати ключове слово class і далі назву класу. Загальноприйнято починати назви класів із літери у верхньому регістрі, але якщо цього не зробити, то помилки не буде.

                      У будь-якому класі можна створювати поля (змінні), методи (функції) та конструктори.

                      Створивши новий клас і помістивши туди будь-яку інформацію, ми можемо створювати на основі нього нові об’єкти. Об’єкти матимуть доступ до всіх характеристик класу.

                      Приклад простого класу наведено нижче:

                      class Book: pass # Клас може нічого не повертати

                      На основі такого класу ми можемо створити велику кількість об’єктів. Кожен об’єкт у разі представлятиме собою конкретну книжку. Для кожного об’єкта ми можемо вказати унікальні дані.

                      Щоб створити об’єкт, нам знадобиться наступний код:

                      obj_new = Some() # Створення об'єкта obj_second = Some() # Створення 2 об'єкта
                      Весь код буде доступний після підписки на проект!