Okay, let’s create a comprehensive "Python Handbook" or "Python Reference" covering key concepts and common tasks. This will be structured as a quick reference guide rather than a full tutorial.
Python Handbook (Справочник Python)
Python — это высокоуровневый, интерпретируемый, интерактивный, объектно-ориентированный скриптовый язык программирования. Он разработан для высокой читабельности кода и использует английские ключевые слова.
1. Основы синтаксиса (Syntax Basics)
- Комментарии: Начинаются с #.
Python
# Это однострочный комментарий
- Многострочные комментарии / Docstrings: Используются тройные кавычки.
Python
"""
Это многострочный комментарий
Или docstring для функций/классов.
"""
- Отступы (Indentation): Используются для определения блоков кода (вместо скобок {}). Обычно 4 пробела.
Python
If True:
print("Это блок кода") # Отступ
- Переменные: Не требуют объявления типа.
Python
X = 10
Имя = "Алиса"
- Множественное присваивание:
Python
A, b, c = 1, 2, 3
2. Типы данных (Data Types)
Тип |
Описание |
Пример |
Изменяемый (Mutable) |
Int |
Целые числа (произвольная точность) |
10, -5, 1_000_000 |
Нет |
Float |
Числа с плавающей точкой |
3.14, -0.5, 2.0 |
Нет |
Str |
Строки (последовательность символов) |
"Привет", ‘Python’ |
Нет |
Bool |
Логический тип (True или False) |
True, False |
Нет |
List |
Упорядоченная, изменяемая коллекция |
[1, ‘a’, 3.14] |
Да |
Tuple |
Упорядоченная, неизменяемая коллекция |
(1, ‘a’, 3.14) |
Нет |
Dict |
Неупорядоченная коллекция пар ключ-значение |
{‘key’: ‘value’, ‘age’: 30} |
Да |
Set |
Неупорядоченная коллекция уникальных элементов |
{1, 2, 3} |
Да |
NoneType |
Специальный тип для отсутствующего значения |
None |
Нет |
Преобразование типов:
Python
Int(‘123’) # 123
Float(‘3.14’) # 3.14
Str(123) # ‘123’
List((1,2,3)) # [1, 2, 3]
Tuple([1,2,3]) # (1, 2, 3)
Dict([(1,’a’)]) # {1: ‘a’}
Set([1,1,2,3]) # {1, 2, 3}
3. Операторы (Operators)
- Арифметические: +, -, *, / (деление с плавающей точкой), // (целочисленное деление), % (остаток от деления), ** (возведение в степень). Сравнения: == (равно), != (не равно), <, >, <=, >=. Логические: and, or, not. Присваивания: =, +=, -=, *=, /=, //=, %=, **=. Идентичности: is (проверяет, являются ли объекты одним и тем же), is not. Принадлежности: in (проверяет наличие элемента в последовательности), not in.
4. Условные Операторы (Conditional Statements)
Python
X = 10
If x > 0:
print("Положительное")
Elif x == 0:
print("Ноль")
Else:
print("Отрицательное")
# Тернарный оператор (условное выражение)
Результат = "Четное" if x % 2 == 0 else "Нечетное"
Print(результат)
5. Циклы (Loops)
For (для итерирования по коллекциям)
Python
# По списку
For элемент in [1, 2, 3]:
print(элемент)
# По строке
For символ in "Привет":
print(символ)
# С индексом (enumerate)
For индекс, значение in enumerate([‘a’, ‘b’, ‘c’]):
print(f"Индекс: {индекс}, Значение: {значение}")
# В диапазоне (range)
For i in range(5): # 0, 1, 2, 3, 4
print(i)
For i in range(2, 7): # 2, 3, 4, 5, 6
print(i)
For i in range(10, 0, -2): # 10, 8, 6, 4, 2
print(i)
While (пока условие истинно)
Python
Счетчик = 0
While счетчик < 5:
print(счетчик)
счетчик += 1
# break (прерывание цикла)
For i in range(10):
if i == 5:
break
print(i) # Выведет 0 1 2 3 4
# continue (переход к следующей итерации)
For i in range(5):
if i == 2:
continue
print(i) # Выведет 0 1 3 4
6. Функции (Functions)
Python
# Определение функции
Def greet(имя):
"""Эта функция приветствует человека."""
return f"Привет, {имя}!"
# Вызов функции
Сообщение = greet("Алиса")
Print(сообщение)
# Функция с аргументами по умолчанию
Def power(base, exp=2):
return base ** exp
Print(power(3)) # 3**2 = 9
Print(power(3, 3)) # 3**3 = 27
# Произвольное количество аргументов (*args, **kwargs)
Def print_args(*args, **kwargs):
print("Позиционные аргументы:", args)
print("Именованные аргументы:", kwargs)
Print_args(1, 2, 3, name="Боб", age=30)
# Анонимные функции (lambda)
Удвоить = lambda x: x * 2
Print(удвоить(5)) # Вывод: 10
7. Обработка Исключений (Exception Handling)
Python
Try:
результат = 10 / 0
Except ZeroDivisionError:
print("Нельзя делить на ноль!")
Except TypeError:
print("Ошибка типа данных!")
Else:
print(f"Результат: {результат}") # Выполняется, если нет исключений
Finally:
print("Этот блок выполнится всегда.")
# Вызов исключения
# raise ValueError("Что-то пошло не так!")
8. Модули И Пакеты (Modules and Packages)
- Модуль: Файл. py, содержащий код Python. Пакет: Директория, содержащая несколько модулей и файл __init__.py.
Python
# Импорт всего модуля
Import math
Print(math. sqrt(16))
# Импорт конкретных объектов из модуля
From datetime import date
Сегодня = date. today()
Print(сегодня)
# Импорт с псевдонимом
Import numpy as np
Arr = np. array([1, 2, 3])
9. Работа со строками (String Operations)
- F-строки (Python 3.6+): Рекомендуемый способ форматирования.
Python
Имя = "Елена"
Возраст = 25
Print(f"Привет, {имя}! Тебе {возраст} лет.")
- Метод .format():
Python
Print("Имя: {}, Возраст: {}".format("Петр", 30))
- Конкатенация:
Python
S1 = "Привет"
S2 = "Мир"
S3 = s1 + " " + s2
Print(s3) # Вывод: Привет Мир
- Основные методы строк:
- len(s): Длина строки. s. lower(): В нижний регистр. s. upper(): В верхний регистр. s. strip(): Удаляет пробелы по краям. s. split(разделитель): Разбивает строку на список. разделитель. join(список): Объединяет список строк. s. replace(что, на_что): Замена подстроки. s. startswith(префикс): Проверка начала строки. s. endswith(суффикс): Проверка конца строки. ‘подстрока’ in s: Проверка наличия подстроки.
10. Работа со списками (List Operations)
Python
Мой_список = [10, 20, 30, 40, 50]
# Доступ по индексу (нумерация с 0)
Print(мой_список[0]) # 10
Print(мой_список[-1]) # 50 (последний элемент)
# Срезы (Slicing)
Print(мой_список[1:4]) # [20, 30, 40] (от индекса 1 до 4, не включая 4)
Print(мой_список[2:]) # [30, 40, 50] (от индекса 2 до конца)
Print(мой_список[:3]) # [10, 20, 30] (от начала до индекса 3, не включая 3)
Print(мой_список[::2]) # [10, 30, 50] (каждый второй элемент)
Print(мой_список[::-1])# [50, 40, 30, 20, 10] (развернуть список)
# Основные методы списков:
* `list. append(элемент)`: Добавить элемент в конец.
* `list. extend(итерируемый_объект)`: Добавить все элементы из другого итерируемого объекта в конец.
* `list. insert(индекс, элемент)`: Вставить элемент по индексу.
* `list. remove(значение)`: Удалить первое вхождение значения.
* `list. pop(индекс)`: Удалить элемент по индексу и вернуть его (если индекс не указан, удаляет последний).
* `list. sort()`: Сортировка на месте.
* `sorted(list)`: Возвращает новый отсортированный список.
* `len(list)`: Длина списка.
* `sum(list)`: Сумма элементов.
* `min(list)`: Минимальный элемент.
* `max(list)`: Максимальный элемент.
11. Генераторы списков (List Comprehensions)
Компактный способ создания списков.
Python
Квадраты = [x**2 for x in range(10)] # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Четные_квадраты = [x**2 for x in range(10) if x % 2 == 0] # [0, 4, 16, 36, 64]
Также существуют генераторы словарей (dict comprehensions), множеств (set comprehensions).
12. Работа с файлами (File I/O)
Python
# Запись в файл
With open("файл. txt", "w", encoding="utf-8") as f:
f. write("Это первая строка.\n")
f. write("Это вторая строка.\n")
# Чтение файла целиком
With open("файл. txt", "r", encoding="utf-8") as f:
содержимое = f. read()
print(содержимое)
# Чтение файла построчно
With open("файл. txt", "r", encoding="utf-8") as f:
for строка in f:
print(строка. strip()) # .strip() удаляет перенос строки
- Режимы открытия:
- "r": Чтение (по умолчанию). "w": Запись (перезаписывает файл или создает новый). "a": Добавление (дописывает в конец файла или создает новый). "rb", "wb", "ab": Для работы с бинарными файлами.
Encoding="utf-8": Важно указывать кодировку для текстовых файлов.
13. Классы И Объекты (Classes and Objects)
Python
Class Собака:
# Атрибут класса (общий для всех экземпляров)
вид = "Canis familiaris"
# Конструктор
def __init__(self, имя, возраст):
# Атрибуты экземпляра
self. имя = имя
self. возраст = возраст
# Метод экземпляра
def лаять(self):
return f"{self. имя} лает: Гав-гав!"
# Метод класса (использует класс как первый аргумент)
@classmethod
def создать_щенка(cls, имя):
return cls(имя, 0) # Создаем собаку с возрастом 0
# Статический метод (не зависит от экземпляра или класса)
@staticmethod
def о_собаках():
return "Собаки — лучшие друзья человека."
# Создание объектов (экземпляров класса)
Моя_собака = Собака("Рекс", 3)
Другая_собака = Собака("Белла", 5)
Print(моя_собака. имя) # Вывод: Рекс
Print(моя_собака. возраст) # Вывод: 3
Print(моя_собака. лаять()) # Вывод: Рекс лает: Гав-гав!
Print(Собака. вид) # Вывод: Canis familiaris
Щенок = Собака. создать_щенка("Бим")
Print(f"Щенок: {щенок. имя}, возраст: {щенок. возраст}")
Print(Собака. о_собаках())
14. Декораторы (Decorators)
Функция, которая принимает другую функцию и расширяет ее поведение.
Python
Def log_выполнение(func):
def обертка(*args, **kwargs):
print(f"Выполняется функция: {func.__name__}")
результат = func(*args, **kwargs)
print(f"Функция {func.__name__} завершила работу.")
return результат
return обертка
@log_выполнение
Def сумма(a, b):
return a + b
Print(сумма(5, 3))
15. Менеджеры контекста (With statement)
Гарантируют правильное управление ресурсами (например, файлами), даже если возникают ошибки.
Python
# Автоматическое закрытие файла
With open("мой_файл. txt", "w") as f:
f. write("Пример")
# Файл f будет автоматически закрыт здесь
16. Важные Встроенные Функции (Important Built-in Functions)
- print(): Вывод на консоль. input(): Получение ввода от пользователя. len(): Длина (строки, списка, кортежа, словаря, множества). type(): Тип объекта. range(): Генератор последовательности чисел. str(), int(), float(), bool(): Преобразование типов. abs(): Модуль числа. round(): Округление числа. min(), max(), sum(): Для коллекций чисел. sorted(): Возвращает новый отсортированный список. enumerate(): Добавляет счетчик к итерируемому объекту. zip(): Объединяет элементы из нескольких итерируемых объектов. map(): Применяет функцию к каждому элементу итерируемого объекта. filter(): Отфильтровывает элементы итерируемого объекта.
Этот справочник охватывает основные аспекты Python, достаточные для начала работы и быстрого обращения к синтаксису и общим задачам. Для более глубокого изучения каждого пункта рекомендуется обращаться к официальной документации Python или специализированным учебникам.