Обучение Python для новичков
238 subscribers
16 photos
61 videos
295 files
251 links
Канал для тех, кто хочет научиться программировать, но не знает с чего начать. Или вы уже пробовали, но столкнулись с трудностями и забросили. Пришло время собраться с силами и начать снова!
Download Telegram
Привет, друзья! 👋 Время попрактиковаться с множествами! Давайте решим несколько задач, чтобы лучше понять, как работают множества и их операции. 📝

🔹 Задачи:

📌 У вас есть два списка товаров, купленных за два дня. Найдите все уникальные товары, купленные за эти два дня.
📌 Даны два множества студентов, посещавших два разных занятия. Найдите студентов, которые посещали оба занятия.
📌 У вас есть список чисел. Удалите все дубликаты, сохранив только уникальные значения.
📌 Найдите разность между двумя множествами чисел.
📌 Даны два множества слов. Найдите слова, которые есть только в одном из этих множеств.
📌 Создайте множество всех уникальных букв, которые встречаются в строке.
📌 Даны два множества чисел. Найдите симметрическую разность между ними.
📌 Найдите все элементы, которые есть в одном множестве, но отсутствуют в другом.
📌 Создайте пустое множество и добавьте в него несколько элементов. Проверьте, как изменяется множество после добавления дубликатов.
📌 У вас есть множество слов. Проверьте, есть ли в множестве слово "Python".
Ждем ваши решения в комментариях! 👇

#Python #Программирование #Практика
Привет, программисты! 👋 Сегодня обсудим особенности и методы работы с множествами в Python. Множества — это мощный инструмент для работы с уникальными данными и выполнения математических операций. Давайте разберем их подробнее! 🚀

#### Особенности множеств:

1. Неупорядоченность:
- Множества в Python неупорядочены. Это значит, что элементы в множестве не имеют определенного порядка, и их порядок может меняться.

   my_set = {3, 1, 4}
print(my_set) # Вывод может быть: {1, 3, 4}


2. Уникальность элементов:
- В множестве могут храниться только уникальные элементы. Если вы попытаетесь добавить элемент, который уже есть в множестве, он не добавится.

   my_set = {1, 2, 2, 3}
print(my_set) # {1, 2, 3}


3. Изменяемость:
- Множества изменяемы, что означает, что вы можете добавлять или удалять элементы после создания множества.

   my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # {1, 2, 3, 4}


4. Отсутствие индексации:
- Множества не поддерживают индексирование, как списки или строки. Вы не можете обратиться к элементу множества по индексу.

   my_set = {1, 2, 3}
# my_set[0] вызовет ошибку


5. Математические операции:
- Множества поддерживают мощные математические операции: объединение, пересечение, разность, симметрическую разность.

6. Поддержка проверки принадлежности:
- Проверка принадлежности элемента множеству (in) выполняется очень быстро.

   my_set = {1, 2, 3}
print(2 in my_set) # True


#### Методы множеств:

- add(elem) — добавляет элемент в множество.
- remove(elem) — удаляет элемент из множества, вызывает ошибку, если элемента нет.
- discard(elem) — удаляет элемент, но не вызывает ошибку, если элемента нет.
- pop() — удаляет и возвращает случайный элемент из множества.
- clear() — очищает множество.
- union(*sets) — возвращает объединение множеств.
- intersection(*sets) — возвращает пересечение множеств.
- difference(*sets) — возвращает разность множеств.

#### Задания на закрепление:

1. Очистка списка от дубликатов с помощью множества:
- У вас есть список чисел с повторяющимися элементами. Преобразуйте его в множество, чтобы удалить дубликаты.

   numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers) # {1, 2, 3, 4, 5}


2. Агрегатные функции и сортировка в множествах:
- Множества поддерживают такие функции, как len(), max(), min(), sum(). Сортировка выполняется с помощью функции sorted().

   my_set = {3, 1, 4, 2}
print(sorted(my_set)) # [1, 2, 3, 4]


#### Перебор элементов множества:

- Перебор элементов множества осуществляется с помощью цикла for.

  my_set = {1, 2, 3}
for elem in my_set:
print(elem)


#### frozenset:

frozenset — это неизменяемый аналог множества. Это множество, элементы которого нельзя изменить после создания.

- Основные отличия:
- set — изменяемое множество.
- frozenset — неизменяемое множество.

- Примеры использования `frozenset`:
- frozenset используется в тех случаях, когда требуется неизменяемость множества, например, в качестве ключей для словарей.

  my_frozenset = frozenset([1, 2, 3])
print(my_frozenset) # frozenset({1, 2, 3})


#### Когда использовать set и frozenset:

- Используйте set, когда вам нужно изменяемое множество.
- Используйте frozenset, когда требуется неизменяемое множество, например, для защиты данных от изменения.

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

Видеоурок.

#Python #Программирование #Множества
Привет, друзья! 👋 Пора применить знания о множествах на практике! 📝

🔹 Задания:

📌 Дан список чисел. Удалите из него все дубликаты, используя множества.
📌 Создайте два множества с числами и найдите их пересечение.
📌 Создайте множество из строки и посчитайте количество уникальных символов.
📌 Используйте frozenset для создания неизменяемого множества и попробуйте добавить элемент в это множество. Что произойдет?
📌 Проверьте, является ли элемент принадлежит множеству с помощью операции in.
📌 С помощью множества очистите список от дубликатов и отсортируйте его.
Ждем ваши решения в комментариях! 👇

#Python #Программирование #Практика #Множества
Как преподаватели "поддерживают форму"? Начало читайте здесь.

Все хотят учиться у практиков. И тут противоречие. Если человек практик - зачем ему преподавать, он и так работает, зарабатывает. Где же найти практиков?
Первый тип практиков. ИТ специалист, работает в крупной компании. Любит быть ментором (наставником) и совмещает основную работу с обучением других.
Плюсы таких наставников очевидны: они много знают, умеют, практикуют. Им есть что рассказать, чему научить. У них богатый практический опыт.
Минусов два.
Первый - не каждый разработчик, хороший учитель. Скорее наоборот, разработчики в большинстве интроверты, не любят общаться, не чувствуют людей, плохо объясняют.
Второй - не всегда сильная теоретическая база. Особенно у самоучек. Например, человек сделал много проектов, но не соблюдает принципы чистого кода, рефакторинга, SOLID.
Второй тип практиков. Преподаватель развивается в практике. Он не только постоянно учится, но и применяет свои знания на практике. Желательно брать реальные проекты в работу, реализовывать их.
Плюсы таких наставников. Хорошо умеют объяснять, есть время глубоко погрузиться в материал, дать фундаментальные знания.
Минусы. Практический опыт меньше и он либо в пет-проектах, либо в проектах для малого бизнеса. Человек не работает в крупной компании, не может "пощупать" их инструменты и подходы.

К какой категории отношусь я? Скорее ко второй. У меня есть опыт работы в крупной компании, но уже три года я в свободном плавании. И в работу по найму желаний возвращаться нет. Хотя до сих пор зовут. Более того, полгода назад я даже прошел собеседование и прошел процесс онбординга (адаптации). Условия были отличные, но я отказался - не хочу в найм!

Как же я планирую развиваться дальше? Буду брать проекты для малого и среднего бизнеса и реализовывать их со своими учениками. Ученики получают стажировку, деньги, реальные проекты в портфолио. Я получаю практический опыт. Более того, сейчас, мы уже реализуем такой проект, 4 человека из моих учеников уже в деле. Я планирую задействовать еще, тех, кто показал себе способными выполнять сложные задачи.

Всем, кто у меня учится сейчас, я рекомендую показать себя с лучшей стороны, "гореть" в учебе. Мне есть что вам дать, помимо простого обучения. Ну а тем, кто еще не со мной - приходите. Будем расти как профессионалы вместе!
❤‍🔥1
Привет, программисты! 👋 Сегодня поговорим о важной структуре данных в Python — словарях. Это один из самых мощных и полезных типов данных в языке. Давайте разберемся, что это такое и как их использовать. 🚀

#### 🔍 Что такое словарь?

Словарь (dictionary) — это неупорядоченная коллекция пар "ключ-значение". Ключи должны быть уникальными и неизменяемыми, а значения могут быть любыми объектами Python.

# Пример словаря:
student = {"name": "Alice", "age": 25, "grade": "A"}
print(student["name"]) # Выведет: Alice


#### 🔧 Какие задачи можно эффективно решить с помощью словарей?

Словари особенно полезны, когда нужно быстро находить значения по уникальному ключу. Например:
- Хранение и доступ к данным по уникальным идентификаторам (например, имя пользователя — ключ, данные пользователя — значение).
- Подсчет частоты элементов в списке (например, подсчет слов в тексте).
- Сопоставление и быстрый доступ к конфигурационным данным.

#### 🛠 Способы создания словарей:

1. Создание с помощью литералов:
   my_dict = {"apple": 3, "banana": 5}


2. Создание с помощью функции `dict()`:
   my_dict = dict(apple=3, banana=5)


3. Создание пустого словаря:
   empty_dict = {}


4. Создание словаря из списка кортежей:
   my_dict = dict([("apple", 3), ("banana", 5)])


5. Словарь с использованием метода `fromkeys()`:
   keys = ["apple", "banana"]
my_dict = dict.fromkeys(keys, 0) # {'apple': 0, 'banana': 0}


#### Задания для тренировки:

1. Создайте словарь, где ключами будут имена студентов, а значениями — их оценки.
2. Напишите код, который создает словарь из списка чисел, где ключами будут сами числа, а значениями — их квадраты.
3. Подсчитайте количество вхождений каждого слова в тексте и сохраните это в словаре.
4. Создайте словарь, в котором хранится количество букв в каждом слове из списка.

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

- Изменяемые типы данных: списки, словари, множества.
- Неизменяемые типы данных: строки, числа, кортежи, frozenset.

Ключи в словарях должны быть неизменяемыми, чтобы Python мог их хэшировать и быстро находить соответствующее значение.

#### 🔑 Хэширование в Python:

Хэширование — это преобразование данных в уникальное значение фиксированной длины (хэш). В Python ключи словаря хэшируются, что позволяет быстро находить их.

- Можно ли хэшировать кортеж с элементами изменяемых типов?
- Нет! Кортежи с изменяемыми типами (например, списками) нельзя хэшировать, потому что содержимое списка может измениться, что нарушит целостность хэша.

#### 🔍 Какие типы данных могут быть ключами у словарей?

Ключи словарей должны быть неизменяемыми и хэшируемыми. Примеры допустимых типов данных:
- Строки (str)
- Числа (int, float)
- Кортежи (tuple), если все его элементы также неизменяемы

Пример недопустимого ключа:
# Недопустимый ключ - список (изменяемый тип данных)
my_dict = {[1, 2]: "не работает"} # вызовет ошибку


Подробнее о словарях читайте по ссылке: Словари в Python.
Можно посмотреть видео по теме словарей.

#Python #Программирование #Словари
Привет, друзья! 👋 Время потренироваться в работе со словарями! 📝

🔹 Задания:

📌 Создайте словарь, который сопоставляет имена дней недели и их порядковые номера (например, "Понедельник" — 1).
📌 Напишите код, который создает словарь, где ключами являются слова из списка, а значениями — их длины.
📌 Создайте словарь, который содержит информацию о книгах (название — автор). Добавьте несколько книг в словарь.
📌 Проверьте, является ли ключ "banana" в словаре my_dict. Если нет, добавьте его со значением 10.
📌 Напишите код, который заменяет все значения в словаре на их квадрат.
📌 Создайте вложенный словарь, который хранит информацию о студентах (имя — {возраст, оценка}).
📌 Используйте функцию zip() для создания словаря из двух списков.
Ждем ваши решения в комментариях! 👇

#Python #Программирование #Практика #Словари
Привет, программисты! 👋 Сегодня разбираемся с важными операциями и методами для работы со словарями в Python. Это одна из самых мощных структур данных, дающая много гибкости для работы с данными. 🚀

#### 🔄 Перебор элементов словаря

В Python можно перебирать как ключи, так и значения словаря:

1. Перебор ключей:
   my_dict = {"apple": 3, "banana": 5, "orange": 2}
for key in my_dict:
print(key) # выведет ключи: apple, banana, orange


2. Перебор значений:
   for value in my_dict.values():
print(value) # выведет значения: 3, 5, 2


3. Перебор пар ключ-значение:
   for key, value in my_dict.items():
print(f"{key}: {value}") # выведет apple: 3, banana: 5, orange: 2


#### 🔍 Отличия словарей от других структур данных:

- Ключ-значение: В отличие от списков и кортежей, в словарях данные хранятся в виде пар "ключ-значение".
- Неупорядоченность: В словарях нет гарантии порядка (до версии Python 3.7), хотя начиная с Python 3.7, они сохраняют порядок добавления.
- Операции поиска и доступа: Доступ к элементу по ключу гораздо быстрее, чем доступ по индексу в списке.

#### 🛠 Методы словарей:

1. `get()` — безопасное получение значения по ключу:
   my_dict.get("apple", 0)  # Вернет 3, если ключ есть, иначе вернет 0


2. `keys()` — возвращает список всех ключей:
   my_dict.keys()  # dict_keys(['apple', 'banana', 'orange'])


3. `values()` — возвращает список всех значений:
   my_dict.values()  # dict_values([3, 5, 2])


4. `items()` — возвращает пары "ключ-значение":
   my_dict.items()  # dict_items([('apple', 3), ('banana', 5), ('orange', 2)])


5. `update()` — обновление одного словаря другим:
   my_dict.update({"apple": 4, "grape": 6})  # добавит "grape" и изменит "apple"


6. `pop()` — удаление элемента по ключу с возвратом его значения:
   my_dict.pop("banana")  # удалит и вернет значение 5


#### 📊 Агрегатные функции и сортировка в словарях:

- Найти максимальное и минимальное значение:
  max_value = max(my_dict.values())  # Найдет максимальное значение (5)
min_value = min(my_dict.values()) # Найдет минимальное значение (2)


- Сортировка словаря по ключам:
  sorted_by_key = dict(sorted(my_dict.items()))  # Сортирует по ключам


- Сортировка по значениям:
  sorted_by_value = dict(sorted(my_dict.items(), key=lambda item: item[1]))


#### 🔧 Практические примеры использования словарей:

1. Подсчет частоты элементов:
   from collections import Counter
words = ["apple", "banana", "apple", "orange", "banana", "apple"]
word_count = Counter(words) # {'apple': 3, 'banana': 2, 'orange': 1}


2. Группировка данных:
Использование словарей для группировки объектов по категориям (например, сортировка студентов по оценкам).

#### 🚀 Распаковка словарей в Python:

Иногда словари можно "распаковывать" в аргументы функций с помощью оператора **.

Пример:
def greet(name, age):
print(f"Hello, {name}! You are {age} years old.")

person = {"name": "Alice", "age": 25}
greet(**person) # Hello, Alice! You are 25 years old.


#### 🔗 Оператор объединения словарей:

С появлением Python 3.9 можно использовать оператор | для объединения словарей:
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged_dict = dict1 | dict2 # {'a': 1, 'b': 3, 'c': 4}

Ссылка на полный урок
Видео.

#Python #Программирование #Словари

Учитесь, практикуйте и развивайтесь! 🚀
👋 Пора закрепить знания о словарях с помощью практики! 📝

🔹 Задания:

📌 Создайте словарь, который содержит название городов и их население.
📌 Переберите ключи и значения созданного словаря, выведя их в формате "город: население".
📌 Найдите самый большой и самый маленький город по населению.
📌 Создайте словарь, где ключами будут слова, а значениями — их длины. Выведите этот словарь отсортированным по длине слов.
📌 Используя оператор |, объедините два словаря.
📌 Напишите функцию, которая принимает несколько параметров и распаковывает их из словаря.
📌 Создайте вложенный словарь, где будут храниться данные о студентах и их оценках по разным предметам. Выведите данные по каждому студенту.
Ждем ваши решения в комментариях! 👇

#Python #Программирование #Практика #Словари
Мини-курс по Python плюс задания.
Друзья, я наконец закончил мини-курс по Python. Он пригодится тем, кто хочет быстро научиться программировать. Тут совсем нет воды. Кратко изложена теория с примерами и даны задания.
Это база для новичков. И мой подарок всем подписчикам данной группы. Забирайте!

1. Установка Python. 📖Задания к уроку.
1.1. Обзор сред программирования.
2. Основные конструкции языка Python. 📖Задания к уроку.
3. Числа в Python и операции с ними. 📖Задания к уроку.
3.1. Функции для работы с числами в Python. Модули. math. 📖Задания к уроку.
4. Строки. 📖Задания к уроку.
4.1. Как работать с отдельными символами и фрагментами строк в Python. 📖Задания к уроку.
4.2. Функция len() и некоторые полезные методы для работы со строками в Python. 📖Задания к уроку.
4.3. Форматирование строк в Python. 📖Задания к уроку.
5. Логический тип данных и работа с логическими выражениями. 📖Задания к уроку.
5.1. Условные операторы в Python. 📖Задания к уроку.
6. Циклы в Python.
6.1. Цикл for в Python. 📖Задания к уроку.
6.2. Цикл while. 📖Задания к уроку. Усложненные задания.
7. Списки в Python. 📖Задания к уроку.
7.1. Списковые включения (генераторы списков). 📖Задания к уроку.
7.2. Индексы и срезы в списках. 📖Задания к уроку.
7.3. Изменение списков в Python. 📖Задания к уроку.
7.4. Поиск и перебор в списках. 📖Задания к уроку.
7.5. Как преобразовывать списки в строки и строки в списки. 📖Задания к уроку.
7.6. Функции для работы со списками. 📖Задания к уроку.
7.7. Методы списков. 📖Задания к уроку.
7.8 Двумерные списки. 📖Задания к уроку.
7.9 Кортежи. 📖Задания к уроку.
8. Функции. 📖Задания к уроку.
8.1. Параметры функций. 📖Задания к уроку.
8.2. Локальные и голобальные переменные. 📖Задания к уроку.
8.3. Функции как переменные. 📖Задания к уроку.
8.4. Лямбда функции. 📖Задания к уроку.
8.5. Рекурсия. 📖Задания к уроку.
8.6. Локальные функции и замыкания. 📖Задания к уроку.
8.7. Декораторы. 📖Задания к уроку.
8.8. functools. 📖Задания к уроку.
9. Множества. 📖Задания к уроку.
9.1. Особенности множеств. Методы работы с множествами. 📖Задания к уроку.
10. Словари. 📖Задания к уроку.
10.1 Операции и методы для работы со словарями. 📖Задания к уроку.
5
Обучение Python для новичков pinned «Мини-курс по Python плюс задания. Друзья, я наконец закончил мини-курс по Python. Он пригодится тем, кто хочет быстро научиться программировать. Тут совсем нет воды. Кратко изложена теория с примерами и даны задания. Это база для новичков. И мой подарок…»
Встреча_в_Телемосте_02_11_24_14_20_09_—_запись.webm
13.1 MB
Решение задания 9 на вложенные циклы. Печать последовательности
1
12
123
1234
12345
Встреча_в_Телемосте_05_11_24_15_03_27_—_запись.webm
56.9 MB
Изменяемость списков.
1. Отличие списков от строк.
2. Изменение отдельных элементов списка
3. Изменение фрагмента списка через срезы.
4. Кортежи и их отличие от списков.