Пісочниця і шпаргалка по вивченню Python

Вивчати Python3 я почав з документації на офіційному сайті. Мені сподобалися приклади коду, але, на жаль, вони були там не інтерактивними. Хотілося спробувати виконати код самостійно, з різними вхідними даними і подивитися на виводиться результат. Так само мені особисто легше запам’ятовуються конструкції мови, якщо я їх набрав кілька разів вручну. Консоль Python для цього підходить відмінно, але хотілося так само мати своєрідну шпаргалку, до якої можна було б повернутися при написанні програм надалі, якщо, наприклад, виникне питання, як в Python-е написати цикл for і т. п. І останньою краплею стало бажання автоматичної перевірки стилю написання коду у відповідності з існуючими стандартами. Читати і вникати в них було лінь, тому хотілося щоб перевірка коду була автоматичною і підказувала які я роблю помилки і як їх виправити.

У підсумку всі свої експерименти я вилив на GitHub.

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

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

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

Читайте також  FreeCAD — новий метод малювання

Як користуватися даними репозиторієм

Кожен Python скрипт в репозиторії має наступну структуру:

"""Lists <--- Назву топіка розкритого

# @see: https://www.learnpython.org/en/Lists <-- Посилання для подальшого вивчення

І тут можуть йти загальні деталі, що відносяться до топіку (наприклад щось про Lists).
"""

def test_list_type():
 "Тут йде назва під-розділу (наприклад, "Створення списків" або "Методи списків").

 Та більш детальний опис підрозділу...
"""

 # Here is an example of how to build a list. <-- Коментарі, що пояснюють код
 squares = [1, 4, 9, 16, 25]

 # Lists can be indexed and sliced. 
 # Indexing returns the item.
 assert squares[0] == 1 # <-- Assertion, що ілюструє результат виконання коду.
 # Slicing returns a new list.
 assert squares[-3:] == [9, 16, 25] # <-- Assertion, що ілюструє результат виконання коду.

Тому процес користування сховищем може бути наступним:

  • Знайти тему, яку ви хочете дізнатися або згадати.
  • Прочитати коментарі, при необхідності перейти по посиланню з більш детальним поясненням топіка
  • Ознайомитися з прикладами коду і “ассершнами”.
  • Додати або змінити код і подивитися, як він буде працювати.
  • Запустити тести і перевірити стиль написання коду.

Розділи репозиторію

  1. Getting Started
    • What is Python
    • Python Syntax
    • Variables
  2. Operators
    • Arithmetic Operators (+, -, *, /, //, %, **)
    • Bitwise Operators (&, |, ^, >>, <<, ~)
    • Assignment Operators (=, +=, -=, /=, //= etc.)
    • Comparison Operator (==, !=, >, <, >=, <=)
    • Logical Operators (and, or, not)
    • Identity Operators (is, is not)
    • Membership Operators (in, not in)
  3. Data Types
    • Numbers (including booleans)
    • Strings and their methods
    • Lists and their methods (including list comprehensions)
    • Tuples
    • Sets and their methods
    • Dictionaries
    • Type Casting
  4. Control Flow
    • The if statement
    • The for statement (and range() function)
    • While The statement
    • Try The statements
    • The break statement
    • The continue statement
  5. Functions
    • Function Definition (def and return statements)
    • Default Argument Values
    • Keyword Arguments
    • Arbitrary Argument Lists
    • Unpacking Argument Lists (* and ** statements)
    • Lambda Expressions (lambda statement)
    • Documentation Strings
    • Function Annotations
  6. Classes
    • Class Definition (class statement)
    • Class Objects
    • Instance Objects
    • Method Objects
    • Class and Instance Variables
    • Inheritance
    • Multiple Inheritance
  7. Modules
    • Modules (import statement)
    • Packages
  8. Errors and Exceptions
    • Handling Exceptions (try statement)
    • Raising Exceptions (raise statement)
  9. Files
    • Reading and Writing (with statement)
    • Methods of File Objects
  10. Additions
    • The pass statement
    • Generators (yield statement)
  11. Brief Tour of the Standard Libraries
    • Serialization (json library)
    • File Wildcards (glob library)
    • String Pattern Matching (re library)
    • Математика (math, random, statistics libraries)
    • Dates and Times (datetime library)
    • Data Compression (zlib library)
Читайте також  Як технології маніпулюють вашим розумом: погляд ілюзіоніста і експерта з етики дизайну Google

Сподіваюся цей репозиторій здасться вам корисним

Степан Лютий

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

You may also like...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *