Серия «Шпаргалки»

7

101 игра на python. Шпаргалки. Структуры данныx python


1. Списки (Lists)

  • Определение: Списки в Python – это упорядоченные, изменяемые коллекции элементов. Это значит, что ты можешь добавлять, удалять и изменять элементы в списке, и порядок элементов имеет значение.

  • Представление: Списки создаются с помощью квадратных скобок [], а элементы разделяются запятыми.

  • Особенности:

    • Могут содержать элементы разных типов данных (числа, строки, булевы значения, другие списки и т.д.).

    • Поддерживают индексацию (доступ к элементу по его позиции, начиная с 0).

    • Изменяемые (mutable).

  • Примеры:


2. Словари (Dictionaries)

  • Определение: Словари в Python – это неупорядоченные коллекции элементов, где каждый элемент состоит из пары "ключ-значение".

  • Представление: Словари создаются с помощью фигурных скобок {}, а пары "ключ-значение" разделяются двоеточием :.

    my_dict = {"name": "John", "age": 30, "city": "New York"}

  • Особенности:

    • Ключи должны быть уникальными и неизменяемыми (обычно строки или числа), а значения могут быть любого типа.

    • Доступ к значениям осуществляется по ключу.

    • Изменяемые (mutable).

    • Неупорядоченные (порядок может не сохранятся)

  • Примеры:

3. Кортежи (Tuples)

  • Определение: Кортежи в Python – это упорядоченные, неизменяемые коллекции элементов.

  • Представление: Кортежи создаются с помощью круглых скобок (), а элементы разделяются запятыми.

    my_tuple = (1, 2, 3, "apple", "banana", True)

  • Особенности:

    • Аналогичны спискам, но являются неизменяемыми (immutable), то есть нельзя изменить элементы после создания кортежа.

    • Могут содержать элементы разных типов данных.

    • Поддерживают индексацию.

    • Используются для представления неизменяемых последовательностей.

  • Примеры:

    # Создание кортежа my_tuple = (1, 2, 3, "apple", "banana") print(f"Создание кортежа: {my_tuple}") # Доступ по индексу print(f"Элемент по индексу 2: {my_tuple[2]}") # Нельзя изменить элемент # my_tuple[0] = 0 # Это вызовет ошибку: TypeError: 'tuple' object does not support item assignment # Нельзя добавить элемент # my_tuple.append(4) # Это вызовет ошибку: AttributeError: 'tuple' object has no attribute 'append' # Нельзя удалить элемент # del my_tuple[0] # Это вызовет ошибку: TypeError: 'tuple' object doesn't support item deletion

4. SimpleNamespace

  • Определение: SimpleNamespace из модуля types - это простой класс, позволяющий создавать объекты, у которых атрибуты (свойства) можно задавать как при создании, так и потом.

  • Представление: Для создания объекта SimpleNamespace нужно импортировать его из types и передать в него именованные аргументы (или не передать их):

    from types import SimpleNamespace my_namespace = SimpleNamespace(name="John", age=30, city="New York")

  • Особенности:

    • Позволяет создавать объекты с динамическими атрибутами (похоже на словарь).

    • Удобен для создания простых объектов для хранения данных.

    • Атрибуты доступны через точку, как у обычных объектов: my_namespace.name

    • В отличие от словарей, порядок атрибутов сохраняется.

    • Поля можно менять, но нельзя добавлять новые поля

  • Примеры:

    from types import SimpleNamespace # Создание SimpleNamespace my_namespace = SimpleNamespace(name="John", age=30, city="New York") print(f"Создание SimpleNamespace: {my_namespace}") # Доступ к атрибуту print(f"Атрибут 'name': {my_namespace.name}") # Изменение атрибута my_namespace.age = 31 print(f"Изменение атрибута: {my_namespace}") # Нельзя добавить новый атрибут # my_namespace.occupation = "engineer" # Это вызовет ошибку: AttributeError: 'SimpleNamespace' object has no attribute 'occupation' # Нельзя удалить атрибут # del my_namespace.age # Это вызовет ошибку: AttributeError: age # Добавление через setattr setattr(my_namespace, "occupation", "engineer") print(f"Добавление атрибута: {my_namespace}") # Удаление через delattr delattr(my_namespace, "city") print(f"Удаление атрибута: {my_namespace}")

5. Другие структуры данных в Python:

  • Множества (Sets):

    • Неупорядоченные коллекции уникальных элементов.

    • Представление: {1, 2, 3, "apple"}

    • Изменяемые.

  • Строки (Strings):

    • Последовательность символов.

    • Представление: "hello", 'world'

    • Неизменяемые (immutable).

    • Поддерживают индексацию и многие другие операции.

  • Байтовые массивы (Bytearrays):

    • Изменяемая последовательность байтов.

    • Представление: bytearray(b"hello")

    • Используются для работы с двоичными данными.

  • Диапазоны (Ranges):

    • Последовательность целых чисел.

    • Представление: range(10), range(1, 10, 2)

    • Неизменяемые.

    • Используются для генерации последовательностей.

  • Frozen sets (неизменяемые множества)

    • Неизменяемая версия множеств (sets).

    • Представление frozenset([1, 2, 3])

UPD:

КОД ПЕРЕЕХАЛ ПО ЭТОМУ АДРЕСУ

Показать полностью 3
7

101 игра нa python. Шпаргалка. Переменные в Python: что, как и зачем нужны

Статья из серии 101 игра на python. В серии я публикую разбор кода учебного репозитория для делающих первые шаги в разработке на python и просто любителей хорошего кода. В репозитории находится сборник программ игр, написанных лёгким языком, по которым ты можешь изучать код.

Переменные — это именованные контейнеры для хранения данных в памяти компьютера. Они позволяют обращаться к данным по имени, вместо того чтобы использовать их непосредственно.

Здесь `x` и `y` — переменные. `x` хранит число 10, а `y` — строку 'Привет, мир!'.

Как работают переменные в Python?

1. Динамическая типизация

В Python не нужно указывать тип переменной при её создании — это делается автоматически.

2. Ссылочная модель хранения данных

Переменные в Python — это ссылки на объекты в памяти. Например:

Правила именования переменных

1.Обязательные правила

- Имя переменной может состоять из букв, цифр и символа `_`, но не может начинаться с цифры.

✅ Примеры: `my_var`, `_data`, `var123`

❌ Неправильно: `123var`, `my-var`

- Имя переменной чувствительно к регистру.

Пример: `age` и `Age` — это разные переменные.

2. Рекомендации для имён переменных:

- Используй имена, которые отражают суть данных.

❌ Плохо: `a = 100`, `b = 'Имя'`

✅ Хорошо: `salary = 100`, `username = 'Имя'`

- Для многословных имён используй стиль snake_case:

Пример: `user_age`, `total_cost`.

3. Зарезервированные слова

Нельзя использовать ключевые слова Python (например, `if`, `for`, `while`) в качестве имён переменных. Чтобы увидеть список ключевых слов, выполни:

Особенности хранения типов данных

1. Типы данных Python

2. Изменяемые и неизменяемые типы

- Изменяемые: `list`, `dict`, `set`.

- Неизменяемые `int`, `float`, `str`, `tuple`.

3. Функция `type` для проверки типа

1. Используй осмысленные имена переменных, чтобы твой код был понятным.

2. Помни, что Python не требует объявления типа переменной, но будь внимателен, чтобы не путаться с типами данных.

3. Изучи встроенные функции работы с переменными, такие как `type()`, `id()` и модули, такие как `sys`, чтобы лучше понимать, как Python управляет памятью.

UPD:

КОД ПЕРЕЕХАЛ ПО ЭТОМУ АДРЕСУ

Показать полностью 7
13

101 игра на python. Шпаргалка. Строки в python


Статья из сборника 101 игра на python. В сборнике я публикую разбор кода учебного репозитория для делающих первые шаги в разработке на python и просто любителей хорошего кода. В репозитории находится сборник программ игр, написанных лёгким языком, по которым ты можешь изучать код.


В Python строки являются одним из самых важных и часто используемых типов данных. Вот краткий обзор различных типов строк и их особенностей:

Обычные строки

Обычная строка создается с помощью одинарных `'` или двойных кавычек `"`.

Они одинаковы, но важно быть последовательным в использовании одного стиля.

---

Многострочные строки

Многострочные строки заключаются в тройные кавычки `'''` или `"""`. Они позволяют писать текст на нескольких строках.

f-строки (форматированные строки)

f-строки (или форматированные строки) используются для вставки значений переменных и выражений прямо внутрь строки. Перед началом строки добавляется символ `f`.

Преимущество f-строк в том, что они просты и читаемы.

В новых версиях Python (начиная с 3.8) появилась удобная возможность использовать выражение вида `f'{name=}'` в f-строках. Эта конструкция выводит не только значение переменной, но и её имя, что особенно полезно для отладки.

r-строки (сырые строки)

Вr-строки (raw strings) создаются добавлением символа `r` перед строкой. Они используются для работы с символами, которые обычно интерпретируются как специальные, например, символы переноса строки (`\n`) или табуляции (`\t`).

Без `r` эта строка была бы интерпретирована с заменой `\n` на перенос строки.

u-строки (Unicode строки)

u-строки были важны в Python 2 для работы с Unicode, но в Python 3 строки по умолчанию являются Unicode, поэтому добавление `u` уже необязательно.

b-строки (байтовые строки)

Байтовые строки используются для работы с бинарными данными. Такие строки начинаются с `b`. Они не поддерживают Unicode-символы, только байты.

Строки с экранированием

Чтобы включить специальные символы в строку, используются экранирующие последовательности с обратным слэшем (`\`).

Комбинация f-строк и r-строк

Можно комбинировать типы строк. Например, f-строки и сырые строки:

Выбор типа строки зависит от задачи:

- Для обычного текста — `'` или `"`.

- Для многострочного текста — `'''` или `"""`.

- Для подстановки значений — `f`.

- Для путей или регулярных выражений — `r`.

- Для бинарных данных — `b`.

UPD:

КОД ПЕРЕЕХАЛ ПО ЭТОМУ АДРЕСУ

Показать полностью 8
11

Шапргалка. Функции в python


Это дополнительный материал для изучающих python по репозиторию 101 игра на python, в котором находятся код игр для быстрого освоения программирования. Серия постов о проекте здесь


Содержание

1.Объявление функции
2. Параметры функции
- Виды параметров
3.Возврат значения
4. Локальные и глобальные переменные
5. Вложенные функции
6. Рекурсия
7. Обработка исключений
8. Пример использования


1.Объявление функции

Функция объявляется с помощью ключевого слова `def`, за которым следует имя функции, список параметров в круглых скобках и двоеточие. Тело функции пишется с отступом.

`a: int` и `b: int` — параметры функции с аннотациями типов.
-> int — аннотация типа возвращаемого значения.


2. Параметры функции

Функции могут принимать параметры, которые представляют собой входные данные. Они указываются в скобках после имени функции.

Пример с одним параметром:

Виды параметров:
1. Обязательные параметры — должны быть переданы при вызове функции.
2. Необязательные параметры — могут иметь значения по умолчанию.


3. Возврат значения

Функция может возвращать значение с помощью ключевого слова `return`. Если `return` не используется, функция по умолчанию возвращает `None`.

Пример:


4. Локальные и глобальные переменные

- Локальная переменная — это переменная, которая существует только внутри функции. Она создается и уничтожается при каждом вызове функции.
- Глобальная переменная— это переменная, которая доступна во всем коде, включая функции.

Пример использования глобальной переменной:

Если внутри функции нужно изменить глобальную переменную, необходимо использовать ключевое слово `global`:


5. Вложенные функции

В Python функции могут быть вложенными, то есть одна функция может быть определена внутри другой. Вложенная функция может обращаться к переменным внешней функции.

Пример:


6. Рекурсия

Рекурсия — это когда функция вызывает саму себя. Это полезно для задач, которые можно разбить на более мелкие аналогичные задачи (например, факториал).

Пример рекурсии:


7. Обработка исключений с `try` и `except`

Python предоставляет механизм обработки ошибок с помощью блоков `try` и `except`. Код, который может вызвать ошибку, помещается в блок `try`, а ошибки обрабатываются в блоке `except`.

Пример обработки ошибок:

Здесь:
- Блок `try` пытается выполнить операцию деления.
- Блок `except ZeroDivisionError` перехватывает ошибку деления на ноль.
- Блок `except Exception as e` ловит другие исключения и выводит сообщение об ошибке.


8. Пример использования функций:

9. Метод и функция — в чем разница?

Разница между методом и функцией заключается в контексте, в котором они используются:

  1. Метод:

    • Это функция, которая принадлежит определенному объекту или классу.

    • Метод вызывается через экземпляр класса или сам класс, что позволяет ему работать с данными этого объекта.

    • Методы используют self (в случае классов Python) для доступа к данным объекта.

    Пример:

  1. Функция:

    • Это независимый блок кода, который не связан с объектами или классами.

    • Функция вызывается напрямую, и она может работать с любыми переданными ей параметрами.

    Пример:

Основное различие:

  • Метод привязан к классу или объекту, а функция — это независимая единица кода, которая выполняет задачу и не зависит от объектов.

UPD:

КОД ПЕРЕЕХАЛ ПО ЭТОМУ АДРЕСУ

Показать полностью 12
Отличная работа, все прочитано!