- PVSM.RU - https://www.pvsm.ru -
Изучать Python3 я начал с документации [1] на официальном сайте. Мне понравились примеры кода, но, к сожалению, они были там не интерактивными. Хотелось попробовать выполнить код самостоятельно, с разными входными данными и посмотреть на выводимый результат. Так же мне лично легче запоминаются конструкции языка, если я их набрал несколько раз вручную. Python консоль для этого подходит отлично, но хотелось так же иметь своего рода шпаргалку, к которой можно было бы вернуться при написании программ в дальнейшем, если, например, возникнет вопрос, как в Python-е написать цикл for
и т.п. И последней каплей стало желание автоматической проверки стиля написания кода в соответствии с существующими стандартами [2]. Читать и вникать в них было лень, поэтому хотелось чтобы проверка кода была автоматической и подсказывала какие ошибки я делаю и как их исправить.
В итоге все свои эксперименты я вылил на GitHub [3].
Репозиторий представляет собой коллекцию Python скриптов [3], разбитую на категории [4]. Каждый скрипт содержит примеры кода, с комментариями и примерами использования, а так же со ссылками для дальнейшего более подробного чтения и изучения каждого топика.
В итоге репозиторий получился песочницей поскольку у пользователей имеется возможность изменить или добавить код, посмотреть на то, как он работает и при помощи тестов [5] проверить его правильность (используя assertion
-ы. Так же есть возможность проверить соответствие кода современным стандартам [6]. Все вместе это должно помочь пользователям изучать язык более интерактивно и уже с самого начала поддерживать неплохую чистоту кода.
Репозиторий так же, по моему мнению, является шпаргалкой в том плане, что к нему можно вернуться и вспомнить основные конструкции языка [4], методы объектов и тому подобное. Так же, благодаря тому, что код напичкан 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, иллюстрирующий результат выполнения кода.
Поэтому процесс пользования репозиторием может быть следующим:
+
, -
, *
, /
, //
, %
, **
)&
, |
, ^
, >>
, <<
, ~
)=
, +=
, -=
, /=
, //=
etc.)==
, !=
, >
, <
, >=
, <=
)and
, or
, not
)is
, is not
)in
, not in
)The if
statement [24]The for
statement [25] (and range()
function)The while
statement [26]The try
statements [27]The break
statement [28]The continue
statement [28]def
and return
statements)*
and **
statements)lambda
statement)class
statement)try
statement)raise
statement) with
statement)The pass
statement [50]yield
statement)json
library)glob
library)re
library)math
, random
, statistics
libraries)datetime
library)zlib
library)Надеюсь этот репозиторий покажется вам полезным
Автор: trehleb
Источник [58]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/290811
Ссылки в тексте:
[1] документации: https://docs.python.org/3/tutorial/index.html
[2] существующими стандартами: https://www.python.org/dev/peps/pep-0008/
[3] вылил на GitHub: https://github.com/trekhleb/learn-python
[4] категории: https://github.com/trekhleb/learn-python#table-of-contents
[5] тестов: https://github.com/trekhleb/learn-python#testing-the-code
[6] проверить соответствие кода современным стандартам: https://github.com/trekhleb/learn-python#linting-the-code
[7] What is Python: https://github.com/trekhleb/learn-python/blob/master/src/getting_started/what_is_python.md
[8] Python Syntax: https://github.com/trekhleb/learn-python/blob/master/src/getting_started/python_syntax.md
[9] Variables: https://github.com/trekhleb/learn-python/blob/master/src/getting_started/test_variables.py
[10] Arithmetic Operators: https://github.com/trekhleb/learn-python/blob/master/src/operators/test_arithmetic.py
[11] Bitwise Operators: https://github.com/trekhleb/learn-python/blob/master/src/operators/test_bitwise.py
[12] Assignment Operators: https://github.com/trekhleb/learn-python/blob/master/src/operators/test_assigment.py
[13] Comparison Operator: https://github.com/trekhleb/learn-python/blob/master/src/operators/test_comparison.py
[14] Logical Operators: https://github.com/trekhleb/learn-python/blob/master/src/operators/test_logical.py
[15] Identity Operators: https://github.com/trekhleb/learn-python/blob/master/src/operators/test_identity.py
[16] Membership Operators: https://github.com/trekhleb/learn-python/blob/master/src/operators/test_membership.py
[17] Numbers: https://github.com/trekhleb/learn-python/blob/master/src/data_types/test_numbers.py
[18] Strings: https://github.com/trekhleb/learn-python/blob/master/src/data_types/test_strings.py
[19] Lists: https://github.com/trekhleb/learn-python/blob/master/src/data_types/test_lists.py
[20] Tuples: https://github.com/trekhleb/learn-python/blob/master/src/data_types/test_tuples.py
[21] Sets: https://github.com/trekhleb/learn-python/blob/master/src/data_types/test_sets.py
[22] Dictionaries: http://src/data_types/test_dictionaries.py
[23] Type Casting: http://src/data_types/test_type_casting.py
[24] The if
statement: https://github.com/trekhleb/learn-python/blob/master/src/control_flow/test_if.py
[25] The for
statement: https://github.com/trekhleb/learn-python/blob/master/src/control_flow/test_for.py
[26] The while
statement: https://github.com/trekhleb/learn-python/blob/master/src/control_flow/test_while.py
[27] The try
statements: https://github.com/trekhleb/learn-python/blob/master/src/control_flow/test_try.py
[28] The break
statement: https://github.com/trekhleb/learn-python/blob/master/src/control_flow/test_break.py
[29] Function Definition: https://github.com/trekhleb/learn-python/blob/master/src/functions/test_function_definition.py
[30] Default Argument Values: https://github.com/trekhleb/learn-python/blob/master/src/functions/test_function_default_arguments.py
[31] Keyword Arguments: https://github.com/trekhleb/learn-python/blob/master/src/functions/test_function_keyword_arguments.py
[32] Arbitrary Argument Lists: https://github.com/trekhleb/learn-python/blob/master/src/functions/test_function_arbitrary_arguments.py
[33] Unpacking Argument Lists: https://github.com/trekhleb/learn-python/blob/master/src/functions/test_function_unpacking_arguments.py
[34] Lambda Expressions: https://github.com/trekhleb/learn-python/blob/master/src/functions/test_lambda_expressions.py
[35] Documentation Strings: https://github.com/trekhleb/learn-python/blob/master/src/functions/test_function_documentation_string.py
[36] Function Annotations: https://github.com/trekhleb/learn-python/blob/master/src/functions/test_function_annotations.py
[37] Class Definition: https://github.com/trekhleb/learn-python/blob/master/src/classes/test_class_definition.py
[38] Class Objects: https://github.com/trekhleb/learn-python/blob/master/src/classes/test_class_objects.py
[39] Instance Objects: https://github.com/trekhleb/learn-python/blob/master/src/classes/test_instance_objects.py
[40] Method Objects: https://github.com/trekhleb/learn-python/blob/master/src/classes/test_method_objects.py
[41] Class and Instance Variables: https://github.com/trekhleb/learn-python/blob/master/src/classes/test_class_and_instance_variables.py
[42] Inheritance: https://github.com/trekhleb/learn-python/blob/master/src/classes/test_inheritance.py
[43] Multiple Inheritance: https://github.com/trekhleb/learn-python/blob/master/src/classes/test_multiple_inheritance.py
[44] Modules: https://github.com/trekhleb/learn-python/blob/master/src/modules/test_modules.py
[45] Packages: https://github.com/trekhleb/learn-python/blob/master/src/modules/test_packages.py
[46] Handling Exceptions: https://github.com/trekhleb/learn-python/blob/master/src/exceptions/test_handle_exceptions.py
[47] Raising Exceptions: https://github.com/trekhleb/learn-python/blob/master/src/exceptions/test_raise_exceptions.py
[48] Reading and Writing: https://github.com/trekhleb/learn-python/blob/master/src/files/test_file_reading.py
[49] Methods of File Objects: https://github.com/trekhleb/learn-python/blob/master/src/files/test_file_methdos.py
[50] The pass
statement: https://github.com/trekhleb/learn-python/blob/master/src/additions/test_pass.py
[51] Generators: https://github.com/trekhleb/learn-python/blob/master/src/additions/test_generators.py
[52] Serialization: https://github.com/trekhleb/learn-python/blob/master/src/standard_libraries/test_json.py
[53] File Wildcards: https://github.com/trekhleb/learn-python/blob/master/src/standard_libraries/test_glob.py
[54] String Pattern Matching: https://github.com/trekhleb/learn-python/blob/master/src/standard_libraries/test_re.py
[55] Mathematics: https://github.com/trekhleb/learn-python/blob/master/src/standard_libraries/test_math.py
[56] Dates and Times: https://github.com/trekhleb/learn-python/blob/master/src/standard_libraries/test_datetime.py
[57] Data Compression: https://github.com/trekhleb/learn-python/blob/master/src/standard_libraries/test_zlib.py
[58] Источник: https://habr.com/post/421701/?utm_campaign=421701
Нажмите здесь для печати.