Python Basics
Типы данных
Заголовок раздела «Типы данных»Числовые типы
Заголовок раздела «Числовые типы»# Целые числа (int)x = 42y = -10z = 1_000_000 # Подчёркивания для читаемости
# Числа с плавающей точкой (float)pi = 3.14159scientific = 1.23e-5 # Научная запись
# Комплексные числа (complex)c = 3 + 4jСтроки (str)
Заголовок раздела «Строки (str)»# Создание строкs1 = "Привет"s2 = 'Мир's3 = """Многострочнаястрока"""
# Форматированиеname = "Анна"age = 25print(f"Имя: {name}, Возраст: {age}")Списки (list)
Заголовок раздела «Списки (list)»# Создание списковnumbers = [1, 2, 3, 4, 5]empty = []list_from_string = list("hello") # ['h', 'e', 'l', 'l', 'o']
# Основные методыnumbers.append(6) # Добавить в конецnumbers.insert(0, 0) # Вставить по индексуnumbers.remove(3) # Удалить по значениюpopped = numbers.pop() # Удалить и вернуть последнийnumbers.index(2) # Индекс элементаnumbers.count(1) # Подсчёт вхожденийnumbers.sort() # Сортировкаnumbers.reverse() # Обратный порядокСловари (dict)
Заголовок раздела «Словари (dict)»# Создание словарейperson = { "name": "Анна", "age": 25, "city": "Москва"}
# Основные методыperson.keys() # Ключиperson.values() # Значенияperson.items() # Пары ключ-значениеperson.get("name") # Получение значения (без ошибки)person.update({"age": 26}) # Обновлениеperson.pop("city") # Удаление и возвратКортежи (tuple)
Заголовок раздела «Кортежи (tuple)»# Создание кортежей (неизменяемые списки)point = (10, 20)empty = ()single = (42,) # Запятая обязательна для одного элемента
# Распаковкаx, y = pointМножества (set)
Заголовок раздела «Множества (set)»# Создание множествnumbers = {1, 2, 3, 4, 5}from_list = set([1, 2, 2, 3]) # {1, 2, 3}
# Основные методыnumbers.add(6) # Добавлениеnumbers.remove(3) # Удалениеnumbers.discard(10) # Удаление без ошибкиset1 | set2 # Объединениеset1 & set2 # Пересечениеset1 - set2 # РазностьУсловия
Заголовок раздела «Условия»if/elif/else
Заголовок раздела «if/elif/else»# Базовая структураif condition: # кодelif another_condition: # кодelse: # код
# Операторы сравненияx == y # Равноx != y # Не равноx > y # Большеx < y # Меньшеx >= y # Больше или равноx <= y # Меньше или равно
# Логические операторыx and y # Иx or y # ИЛИnot x # НЕТернарный оператор
Заголовок раздела «Тернарный оператор»value = "да" if condition else "нет"for цикл
Заголовок раздела «for цикл»# Итерация по спискуfor item in list: # код
# Использование rangefor i in range(5): # 0, 1, 2, 3, 4for i in range(1, 6): # 1, 2, 3, 4, 5for i in range(0, 10, 2): # 0, 2, 4, 6, 8
# enumerate для индексаfor index, value in enumerate(list): print(index, value)while цикл
Заголовок раздела «while цикл»while condition: # код
# Бесконечный цикл с breakwhile True: # код if condition: breakУправление циклами
Заголовок раздела «Управление циклами»for i in range(10): if i == 5: break # Выход из цикла if i % 2 == 0: continue # Переход к следующей итерации print(i)else после цикла
Заголовок раздела «else после цикла»for i in range(5): if i == 10: breakelse: # Выполняется, если не было break print("Цикл завершён без break")Функции
Заголовок раздела «Функции»Определение функций
Заголовок раздела «Определение функций»# Простая функцияdef greet(): return "Привет!"
# С параметрамиdef greet(name): return f"Привет, {name}!"
# С параметрами по умолчаниюdef greet(name, greeting="Привет"): return f"{greeting}, {name}!"
# С возвращаемым значениемdef add(a, b): return a + bВариативные параметры
Заголовок раздела «Вариативные параметры»# *args для переменного количества аргументовdef sum_all(*numbers): return sum(numbers)
sum_all(1, 2, 3) # 6
# **kwargs для именованных аргументовdef print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}")
print_info(name="Анна", age=25)Lambda-функции
Заголовок раздела «Lambda-функции»# Анонимные функцииadd = lambda a, b: a + bsquare = lambda x: x ** 2
# Использование с mapnumbers = [1, 2, 3, 4, 5]squared = list(map(lambda x: x ** 2, numbers)) # [1, 4, 9, 16, 25]
# Использование с filtereven = list(filter(lambda x: x % 2 == 0, numbers)) # [2, 4]Рекурсия
Заголовок раздела «Рекурсия»def factorial(n): if n == 0 or n == 1: return 1 return n * factorial(n - 1)
factorial(5) # 120Работа с файлами
Заголовок раздела «Работа с файлами»Чтение файлов
Заголовок раздела «Чтение файлов»# Чтение всего файлаwith open("file.txt", "r", encoding="utf-8") as file: content = file.read()
# Чтение по строкамwith open("file.txt", "r", encoding="utf-8") as file: for line in file: print(line.strip())
# Чтение в списокwith open("file.txt", "r", encoding="utf-8") as file: lines = file.readlines()Запись файлов
Заголовок раздела «Запись файлов»# Перезаписьwith open("file.txt", "w", encoding="utf-8") as file: file.write("Текст")
# Добавление в конецwith open("file.txt", "a", encoding="utf-8") as file: file.write("Текст")
# Запись нескольких строкlines = ["Строка 1\n", "Строка 2\n"]with open("file.txt", "w", encoding="utf-8") as file: file.writelines(lines)Режимы открытия файлов
Заголовок раздела «Режимы открытия файлов»| Режим | Описание |
|---|---|
| ”r” | Чтение (по умолчанию) |
| “w” | Запись (перезапись) |
| “a” | Добавление |
| ”r+“ | Чтение и запись |
| ”rb” | Чтение бинарное |
| ”wb” | Запись бинарное |
Работа с JSON
Заголовок раздела «Работа с JSON»import json
# Загрузка из файлаwith open("data.json", "r", encoding="utf-8") as file: data = json.load(file)
# Запись в файлdata = {"name": "Анна", "age": 25}with open("data.json", "w", encoding="utf-8") as file: json.dump(data, file, ensure_ascii=False, indent=4)
# Преобразование строкиjson_str = json.dumps(data)data = json.loads(json_str)Импорт модулей
Заголовок раздела «Импорт модулей»# Импорт всего модуляimport mathprint(math.sqrt(16))
# Импорт с псевдонимомimport math as mprint(m.sqrt(16))
# Импорт конкретных функцийfrom math import sqrt, piprint(sqrt(16))print(pi)
# Импорт всех (не рекомендуется)from math import *Создание модулей
Заголовок раздела «Создание модулей»def greet(name): return f"Привет, {name}!"
PI = 3.14159
# Использованиеimport my_modulemy_module.greet("Анна")Исключения
Заголовок раздела «Исключения»Обработка ошибок
Заголовок раздела «Обработка ошибок»try: # Код, который может вызвать ошибку result = 10 / 0except ZeroDivisionError as e: print(f"Ошибка деления на ноль: {e}")except Exception as e: print(f"Другая ошибка: {e}")else: # Выполняется, если не было ошибок print("Успешно")finally: # Выполняется всегда print("Завершено")Создание исключений
Заголовок раздела «Создание исключений»# Вызов исключенияraise ValueError("Неверное значение")
# Создание собственного исключенияclass CustomError(Exception): pass
raise CustomError("Произошла ошибка")Генераторы
Заголовок раздела «Генераторы»Создание генераторов
Заголовок раздела «Создание генераторов»# Генератор с yielddef countdown(n): while n > 0: yield n n -= 1
for i in countdown(5): print(i) # 5, 4, 3, 2, 1
# Генераторное выражениеsquares = (x ** 2 for x in range(10))Декораторы
Заголовок раздела «Декораторы»# Простой декораторdef my_decorator(func): def wrapper(): print("До вызова функции") func() print("После вызова функции") return wrapper
@my_decoratordef greet(): print("Привет!")
greet()Работа с датами
Заголовок раздела «Работа с датами»from datetime import datetime, date, time, timedelta
# Текущая дата и времяnow = datetime.now()print(now) # 2024-03-07 12:00:00
# Форматированиеformatted = now.strftime("%Y-%m-%d %H:%M:%S")print(formatted) # 2024-03-07 12:00:00
# Парсингparsed = datetime.strptime("2024-03-07", "%Y-%m-%d")print(parsed) # 2024-03-07 00:00:00
# Разница во времениdelta = timedelta(days=7)future = now + deltaprint(future) # Через 7 днейВиртуальное окружение
Заголовок раздела «Виртуальное окружение»Команды venv
Заголовок раздела «Команды venv»# Создание виртуального окруженияpython -m venv venv
# Активация (Windows)venv\Scripts\activate
# Активация (macOS/Linux)source venv/bin/activate
# Деактивацияdeactivate
# Экспорт зависимостейpip freeze > requirements.txt
# Установка зависимостейpip install -r requirements.txt