Шпаргалки по python💟
2 subscribers
Download Telegram
## Шпаргалка по функциям Python

### Что такое функция?
Функция — это блок кода, предназначенный для выполнения определённой задачи. Функции позволяют разбивать программу на небольшие части, делая код более читаемым и переиспользуемым.

### Определение функции
def название_функции(параметры):
    # тело функции
    return значение

Пример простой функции:
def greet(name):
    print(f"Привет, {name}")

### Параметры и аргументы
#### Параметры
Параметр — это переменная, объявленная внутри определения функции. Это своего рода шаблон, ожидающий передачи значения при вызове функции.

Пример параметра:
def add(a, b):
    return a + b

Здесь `a и b — параметры функции.

#### Аргументы
Аргумент — это фактическое значение, передаваемое функции при её вызове.

**Пример аргумента:**
``
python
result = add(3, 5)
Здесь числа `3` и `5` являются аргументами.

### Типы аргументов
Python поддерживает разные типы аргументов:

1. **Позиционные аргументы:** передаются в порядке объявления параметров.
  

python
   def greet(first_name, last_name):
       print(f"Здравствуйте, {first_name} {last_name}.")
  
   greet("Иван", "Иванов")  # Позиционный порядок важен!
  

2. **Ключевые аргументы:** задаются явно по имени параметра.
  

python
   greet(last_name="Иванов", first_name="Иван")  # Порядок следования не важен
  

3. **Значение по умолчанию:** если аргумент не передан, используется заранее заданное значение.
  

python
   def hello(name="Пользователь"):
       print(f"Привет, {name}!")
  
   hello()           # Привет, Пользователь!
   hello("Алексей")  # Привет, Алексей!
  

4. **Переменное количество позиционных аргументов (*args):** позволяет передавать любое число аргументов.
  

python
   def sum_all(*numbers):
       total = 0
       for num in numbers:
           total += num
       return total
  
   result = sum_all(1, 2, 3, 4, 5)  # Результат: 15
  

5. **Переменное количество ключевых аргументов (**kwargs):** аналогично *args, но принимает именованные аргументы.
  

python
   def info(**details):
       for key, value in details.items():
           print(f"{key}: {value}")
  
   info(name="Максим", age=30, city="Москва")
   `

---

Эти знания позволят уверенно писать эффективные и гибкие функции в Python!
Forwarded from GigaChat
Вот полная таблица-подсказка по работе с множествами (sets) в Python:

## Таблица: Работа с множествами (Sets) в Python

| Параметр | Описание | Пример |
|----------------|----------------------------------------------------------------------------------------|------------------------------------|
| **Создание:** | | |
| Обычное множество | Используется фигурные скобки {} или конструктор set() | `{1, 2, 3}`, `set(['apple', 'banana'])` |
| Пустой набор | Использовать set(), иначе пустые скобки будут интерпретироваться как словарь | `empty_set = set()` |
| Фиксированное множество | Специальный неизменяемый тип данных `frozenset()` | `frozenset([1, 2, 3])` |
| **Методы**: | | |
| add(x) | Добавляет элемент x в множество | `my_set.add('cherry')` |
| remove(x) | Удаляет элемент x из множества, вызывает ошибку KeyError, если элемента нет | `my_set.remove('banana')` |
| discard(x) | Удаляет элемент x из множества, не вызывая ошибку, если элемента нет | `my_set.discard('grape')` |
| pop() | Возвращает произвольный элемент множества и удаляет его | `elem = my_set.pop()` |
| clear() | Полностью очищает множество | `my_set.clear()` |
| union(other) | Объединение двух множеств | `union_set = my_set.union(other_set)` |
| intersection(other) | Пересечение двух множеств | `intersect_set = my_set.intersection(other_set)` |
| difference(other) | Разность двух множеств (элементы первого, отсутствующие во втором) | `diff_set = my_set.difference(other_set)` |
| symmetric_difference(other) | Симметричная разность (все уникальные элементы обоих множеств) | `sym_diff = my_set.symmetric_difference(other_set)` |
| issubset(other) | Проверяет, входит ли одно множество целиком в другое | `result = my_set.issubset(other_set)` |
| issuperset(other) | Проверяет, включает ли первое множество второе | `result = my_set.issuperset(other_set)` |
| update(other) | Обновляет множество элементами другого множества | `my_set.update(other_set)` |
| copy() | Создает копию текущего множества | `copy_set = my_set.copy()` |
| **Запреты**: | | |
| Повтор элементов | Множества хранят только уникальные элементы | Нет повторений |
| Порядок хранения | Элементы хранятся бессистемно, порядок непредсказуем | Нет гарантии порядка |
| Измеряемость обычных множеств | Можно изменять (добавлять/удалять), но нельзя обращаться по индексу | Нельзя писать `my_set[0]` |
| Доступ к фиксированным множествам | Изменение невозможно, аналогично кортежам | `frozenset([1, 2]).add(3)` недопустимо |

Эта таблица должна стать хорошим справочным материалом перед экзаменом. Удачи!
Forwarded from GigaChat
Верно замечено! Я упустил один важный пункт. Добавляем его сюда:

### Финальная таблица всех типов данных Python с учётом изменяемых и неизменяемых:

#### Изменяемые типы данных:

| Название типа | Описание | Пример |
|---------------|----------------------------|----------------------|
| list | Список | my_list = [1, 2, 3] |
| dict | Словарь | my_dict = {'a': 1} |
| set | Множество | my_set = {1, 2, 3} |

#### Неизменяемые типы данных:

| Название типа | Описание | Пример |
|---------------|--------------------------|-----------------------|
| int | Целое число | x = 42 |
| float | Число с плавающей точкой | y = 3.14 |
| str | Строка | name = 'Иван' |
| tuple | Кортеж | my_tuple = (1, 2) |
| frozenset | Замороженное множество | fs = frozenset([1,2])|

---

### Примеры:

- Для обычного множества (set) можно добавлять новые элементы:
  my_set = {1, 2}
my_set.add(3)
print(my_set) # выводит {1, 2, 3}


- А вот для замороженного множества (frozenset) такие операции невозможны:
  fs = frozenset({1, 2})
try:
fs.add(3) # Приведет к ошибке AttributeError
except AttributeError as e:
print(e) # Выведет сообщение об ошибке


Таким образом, все объекты данных в Python классифицируются именно таким образом. Спасибо за дополнение!
▌ Шпаргалка по спискам и методам Python

▌ Что такое список?

Список — упорядоченная коллекция элементов, заключённая в квадратные скобки []. Каждый элемент имеет индекс, начиная с нуля (0).

my_list = ["яблоко", "банан", "груша"]

▌ Основные операции над списком

▌ 1. Добавление элемента в конец списка

Метод append() добавляет новый элемент в конец списка.

fruits.append("виноград")
print(fruits)
# ['яблоко', 'банан', 'груша', 'виноград']

▌ 2. Удаление последнего элемента

Метод pop() удаляет последний элемент и возвращает его значение.

last_fruit = fruits.pop()
print(last_fruit)
# 'виноград'

▌ 3. Удаление элемента по значению

Метод remove() удаляет первое найденное совпадение указанного значения.

fruits.remove('банан')
print(fruits)
# ['яблоко', 'груша']

▌ 4. Определение длины списка

Функция len() возвращает количество элементов в списке.

length = len(fruits)
print(length)
# 2

▌ 5. Получение индекса элемента

Метод index() находит первый индекс заданного элемента.

idx = fruits.index('яблоко')
print(idx)
# 0

▌ 6. Проверка наличия элемента

Используйте оператор in, чтобы проверить наличие элемента в списке.

if 'груша' in fruits:
    print("Да, груша присутствует!")

▌ 7. Изменение порядка элементов

Метод reverse() меняет порядок элементов на обратный.

fruits.reverse()
print(fruits)
# ['груша', 'яблоко']

▌ 8. Сортировка списка

Метод sort() сортирует элементы по возрастанию (для строк — лексикографически). Можно передать аргумент reverse=True, чтобы отсортировать по убыванию.

numbers = [3, 1, 4, 1, 5]
numbers.sort(reverse=True)
print(numbers)
# [5, 4, 3, 1, 1]

▌ 9. Копирование списка

Методы copy() и срез [:] создают поверхностную копию списка.

new_numbers = numbers.copy()
# Или new_numbers = numbers[:]

▌ 10. Расширение списка другим списком

Метод extend() объединяет два списка.

letters = ['a', 'b', 'c']
letters.extend(['d', 'e'])
print(letters)
# ['a', 'b', 'c', 'd', 'e']

---
📌 Итоговая шпаргалка:

|                Метод                |                                              Описание                                              |
| ----------------------------------- | -------------------------------------------------------------------------------------------------- |
|              append(x)              |                                 Добавляет элемент x в конец списка                                 |
|              pop([i])               | Убирает элемент по индексу i (если индекс не указан, удаляется последний элемент) и возвращает его |
|              remove(x)              |                                Удаляет первое появление элемента x                                 |
|              index(x)               |                           Возвращает индекс первого появления элемента x                           |
|             insert(i,x)             |                                Вставляет элемент x перед позицией i                                |
|              reverse()              |                            Меняет порядок элементов на противоположный                             |
|  sort([key=func], [reverse=False])  |            Сортирует список по ключу key и порядку (по умолчанию возрастающий порядок)             |
|               copy()                |                                 Создает поверхностную копию списка                                 |
|          extend(iterable)           |                      Добавляет все элементы iterable в конец текущего списка                       |
|               clear()               |                                      Полностью очищает список                                      |

Эта шпаргалка охватывает самые важные методы и операции над списками в Python!
Forwarded from GigaChat
Для удаления элемента из списка в Python существуют разные методы, каждый из которых решает задачу удалением по-разному:

▌ Основные способы удаления элементов из списка

▌ 1. Метод

Удаляет первый встреченный элемент, равный указанному значению.

my_list = ["яблоко", "груша", "банан"]
my_list.remove("груша")
print(my_list)
# Результат: ['яблоко', 'банан']

Особенности: Если элемента нет в списке, возникает ошибка ValueError.

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
▌ 2. Удаление по индексу ()

Позволяет удалять элементы по известному индексу.

my_list = ["яблоко", "груша", "банан"]
del my_list[1]
print(my_list)
# Результат: ['яблоко', 'банан']

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
▌ 3. Метод

Также позволяет удалить элемент по индексу и вернуть его значение.

my_list = ["яблоко", "груша", "банан"]
removed_element = my_list.pop(1)
print(removed_element) # груша
print(my_list) # ['яблоко', 'банан']

Особенности: Без аргумента метод pop() удалит последний элемент.

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
▌ 4. Использование срезов () для массового удаления

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

my_list = ["яблоко", "груша", "банан", "виноград"]
del my_list[:2] # Убираем первые два элемента
print(my_list)
# Результат: ['банан', 'виноград']

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
▌ 5. Чистка всего списка ()

Этот метод очищает весь список одним действием.

my_list = ["яблоко", "груша", "банан"]
my_list.clear()
print(my_list)
# Результат: []

Таким образом, выбор метода зависит от конкретной ситуации: нужны ли вам значения удаленных элементов, известно ли точное положение элемента или достаточно его значения.