Пісочниця і шпаргалка по вивченню Python
Вивчати Python3 я почав з документації на офіційному сайті. Мені сподобалися приклади коду, але, на жаль, вони були там не інтерактивними. Хотілося спробувати виконати код самостійно, з різними вхідними даними і подивитися на виводиться результат. Так само мені особисто легше запам’ятовуються конструкції мови, якщо я їх набрав кілька разів вручну. Консоль Python для цього підходить відмінно, але хотілося так само мати своєрідну шпаргалку, до якої можна було б повернутися при написанні програм надалі, якщо, наприклад, виникне питання, як в Python-е написати цикл for
і т. п. І останньою краплею стало бажання автоматичної перевірки стилю написання коду у відповідності з існуючими стандартами. Читати і вникати в них було лінь, тому хотілося щоб перевірка коду була автоматичною і підказувала які я роблю помилки і як їх виправити.
У підсумку всі свої експерименти я вилив на GitHub.
Сховище являє собою колекцію скриптів Python, розбиту на категорії. Кожен скрипт містить приклади коду, з коментарями і прикладами використання, а так само з посиланнями для подальшого більш докладного читання і вивчення кожного топіка.
У підсумку репозиторій вийшов пісочницею оскільки у користувачів є можливість змінити або додати код, подивитися на те, як він працює і за допомогою тестів перевірити його правильність (використовуючи assertion
-и. Так само є можливість перевірити відповідність коду сучасним стандартам. Все разом це має допомогти користувачам вивчати мову більш інтерактивно і вже з самого початку підтримувати непогану чистоту коду.
Репозиторій так само, на мою думку, є шпаргалкою в тому плані, що до нього можна повернутися і згадати основні конструкції мови, методи об’єктів тощо. Так само, завдяки тому, що код напханий assertion
-нами, користувачі можуть перевірити очікуваний результат виконання функцій не запускаючи їх.
Як користуватися даними репозиторієм
Кожен 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, що ілюструє результат виконання коду.
Тому процес користування сховищем може бути наступним:
- Знайти тему, яку ви хочете дізнатися або згадати.
- Прочитати коментарі, при необхідності перейти по посиланню з більш детальним поясненням топіка
- Ознайомитися з прикладами коду і “ассершнами”.
- Додати або змінити код і подивитися, як він буде працювати.
- Запустити тести і перевірити стиль написання коду.
Розділи репозиторію
- Getting Started
- What is Python
- Python Syntax
- Variables
- 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
)
- Arithmetic Operators (
- Data Types
- Numbers (including booleans)
- Strings and their methods
- Lists and their methods (including list comprehensions)
- Tuples
- Sets and their methods
- Dictionaries
- Type Casting
- Control Flow
The if
statementThe for
statement (andrange()
function)While The
statementTry The
statementsThe break
statementThe continue
statement
- Functions
- Function Definition (
def
andreturn
statements) - Default Argument Values
- Keyword Arguments
- Arbitrary Argument Lists
- Unpacking Argument Lists (
*
and**
statements) - Lambda Expressions (
lambda
statement) - Documentation Strings
- Function Annotations
- Function Definition (
- Classes
- Class Definition (
class
statement) - Class Objects
- Instance Objects
- Method Objects
- Class and Instance Variables
- Inheritance
- Multiple Inheritance
- Class Definition (
- Modules
- Modules (
import
statement) - Packages
- Modules (
- Errors and Exceptions
- Handling Exceptions (
try
statement) - Raising Exceptions (
raise
statement)
- Handling Exceptions (
- Files
- Reading and Writing (
with
statement) - Methods of File Objects
- Reading and Writing (
- Additions
The pass
statement- Generators (
yield
statement)
- 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)
- Serialization (
Сподіваюся цей репозиторій здасться вам корисним