Обучение 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 #Программирование #Практика #Множества
Привет, программисты! 👋 Сегодня поговорим о важной структуре данных в 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 #Программирование #Практика #Словари
🌐 Веб-разработка: что это и почему тебе стоит это знать?

Знаешь, кто создаёт тот интернет, которым ты пользуешься каждый день? 🤔

Веб-разработчики — люди, которые буквально «оживляют» интернет! Именно благодаря их работе:

Ты заказываешь пиццу в приложении
Общаешься с друзьями в ВК и Telegram
Покупаешь кроссовки на Wildberries или Ozon
Смотришь сериалы на Netflix и слушаешь музыку в Spotify

Без веб-разработки этого всего просто не было бы!

Сегодня без сайта или приложения сложно представить не только развлечения, но и бизнес, образование и даже госуслуги. Веб-разработка стала профессией №1 в мире, а Python — один из лучших способов легко и быстро в неё войти! 🐍🚀

Хочешь узнать больше и попробовать себя в роли веб-разработчика? Тогда скорее читай нашу новую статью:
👉 [Основы веб-разработки на Python](https://victor-komlev.ru/web-development-python/)

Начнём твоё погружение в мир IT прямо сейчас! 🔥

#python #вебразработка #программирование #айти #войтивайти
🔥 Почему веб-разработчики стали так популярны?

Ответ проще, чем кажется! Сегодня всё вокруг нас уходит в интернет:

- 📦 Бизнес: магазин без сайта уже не магазин, а ларёк у дома.
- 🎓 Образование стало онлайн: уроки, курсы, вебинары.
- 🎬 Фильмы, музыка, игры — всё через приложения и сайты.
- 💬 Даже просто общение с друзьями переехало в интернет.

Компании, предприниматели и даже госструктуры нуждаются в людях, которые умеют создавать и поддерживать сайты и приложения. Именно поэтому веб-разработчики — это новые рок-звёзды современного мира! 🚀

В чём бонус для тебя?

Можно работать удалённо, хоть с пляжа на Бали!
Зарплата растёт вместе с навыками и опытом.
Ты можешь найти работу практически в любой стране мира.

Хотите подробнее разобраться, почему веб-разработка на Python — это огонь?

Читайте здесь: [Основы веб разработки на Python](https://victor-komlev.ru/web-development-python/)

#вебразработка #python #карьеравайти #IT #удалёнка #программирование
🐯 Фронтенд, бэкенд и база данных: простым языком о «зверях» веб-разработки

Сайт — это как ресторан. Представь:

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

Например, открыл YouTube? Всё, что видишь — это фронтенд.

👨‍🍳 Бэкенд — кухня ресторана. Там кипит работа: готовятся блюда, проверяются заказы и решаются задачи, невидимые для гостей. Бэкенд сайта — это сервер, который обрабатывает данные, проверяет пароли и отвечает за логику работы сайта.

Например, авторизация на ВК — это работа бэкенда.

📦 База данных — кладовая ресторана. Тут хранятся все продукты, рецепты и информация, необходимая для работы кухни. В ней хранятся логины, комментарии, лайки и любые другие данные сайта.

Отправил сообщение другу? Оно уже лежит в базе данных.

Теперь ты знаешь, кто есть кто в веб-разработке! Хочешь узнать больше и даже создать свой первый сайт? Переходи по ссылке:

👉 [Основы веб разработки на Python](https://victor-komlev.ru/web-development-python/)

#вебразработка #python #frontend #backend #айти #программирование
🐍 Почему Python — идеальный язык для старта в веб-разработке?

Если хочешь легко и быстро зайти в IT, Python — твой лучший друг! Вот почему:

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

На Java нужно написать вот такое:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Привет, мир!");
}
}


А на Python всё гораздо проще:
print("Привет, мир!")


Разница очевидна, правда?

Универсальность
На Python пишут не только сайты, но и телеграм-ботов, игры, программы для анализа данных и даже искусственный интеллект!
Один язык — сотни возможностей.

Огромное сообщество
Новичку легко найти ответы на любые вопросы и готовые решения любых задач.

Высокая востребованность
Работа с Python — это твой пропуск в мир IT, высоких зарплат и удалёнки.

Хочешь попробовать прямо сейчас? Тогда скорей читай нашу статью и узнай, как сделать свой первый сайт на Python:

👉 [Основы веб-разработки на Python](https://victor-komlev.ru/web-development-python/)

#python #вебразработка #карьеравайти #программирование #начниспитон
🚀 Django, Flask или FastAPI: что выбрать новичку?

Хочешь создать свой первый сайт на Python, но запутался в этих названиях? Давай просто и быстро разберёмся:

🟢 Django — это крутой набор LEGO!
Подходит, если ты хочешь сразу много возможностей: авторизация, админка, база данных — всё уже встроено.
📌 Идеален для амбициозных новичков, которые хотят создать что-то большое (например, соцсеть или магазин).

🔵 Flask — это набор карандашей и лист бумаги.
Здесь нет ничего лишнего, ты сам решаешь, что и как будет работать.
📌 Подойдёт, если хочешь быстро начать, легко разобраться и написать свой первый сайт буквально за час.

🟣 FastAPI — это скоростной болид среди фреймворков.
Если тебе интересно создавать современные приложения и API, которые работают быстро и эффективно, FastAPI — то, что нужно.
📌 Идеален для небольших и быстрых проектов или мобильных приложений.

Что выбрать новичку? Мой совет — начинай с Flask! Он максимально простой и гибкий, а потом можешь легко перейти на Django или FastAPI. 🔥

Подробнее о плюсах и минусах каждого фреймворка читай в нашей статье:

👉 [Основы веб-разработки на Python](https://victor-komlev.ru/web-development-python/)

#python #django #flask #fastapi #вебразработка #программирование #начниспитон
🚀 Настрой рабочее место веб-разработчика за 10 минут!

Хочешь стать Python-разработчиком? Тогда давай быстро и просто подготовим твой комп для работы:

🐍 1. Устанавливаем Python
Идёшь на [python.org](https://python.org), скачиваешь и устанавливаешь. Не забудь поставить галочку «Add Python to PATH».

💻 2. Устанавливаем редактор VSCode
Скачиваешь его [отсюда](https://code.visualstudio.com), устанавливаешь, открываешь и добавляешь расширение для Python (Python extension).

📦 3. Создаём виртуальную среду
Открываешь VSCode, создаёшь папку проекта, затем нажимаешь:
Ctrl+Shift+P → Python: Create Environment → venv → выбираешь версию Python

🎯 4. Устанавливаем Git
Скачиваешь с [git-scm.com](https://git-scm.com), устанавливаешь и настраиваешь своё имя и почту командой в терминале:
git config --global user.name "Твоё имя"
git config --global user.email "твояпочта@example.com"


🚩 5. Публикуем первый проект на GitHub
Создаёшь репозиторий прямо из VSCode:
- Нажимаешь на значок Source Control (ветка слева)
- Создаёшь репозиторий, делаешь коммит и публикуешь проект на GitHub (для этого установи расширение GitHub).

🔥 6. Устанавливаем веб-фреймворк
В терминале (или прямо в VSCode):
pip install flask

(Или Django, или FastAPI — смотря что выберешь!)

Всё! Рабочее место готово. Теперь ты можешь создавать свои первые веб-приложения на Python!

Хочешь подробную инструкцию? Вот она 👇
[Основы веб-разработки на Python](https://victor-komlev.ru/web-development-python/)

#python #вебразработка #настройка #git #github #VSCode #программирование
🌐 Что такое HTTP простыми словами и зачем тебе это знать?

Когда ты вводишь адрес сайта (например, vk.com), твой браузер буквально начинает диалог с сервером, где лежит сайт. И общаются они на специальном языке — HTTP.

Это выглядит примерно так:

💬 Браузер: «Эй, сервер, дай-ка мне главную страницу VK!»
📡 Сервер: «Конечно! Вот твоя страница с постами, фотками и лайками».

HTTP — это правила (протокол), по которым браузеры и серверы обмениваются информацией в интернете.

Зачем это знать веб-разработчику?

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

Хочешь узнать, как тестировать HTTP-запросы и почувствовать себя настоящим разработчиком?

Читай подробнее тут 👉 [Основы веб-разработки на Python](https://victor-komlev.ru/web-development-python/)

Теперь HTTP точно не будет для тебя загадкой! 😉

#http #вебразработка #python #программирование #начниспитон #айти
🛠 Делаем первые HTTP-запросы за 5 минут: curl, Postman и requests

Веб-разработчик постоянно общается с серверами. Как? С помощью запросов! Вот три супер-простых способа попробовать это прямо сейчас:

### 1️⃣ curl (прямо в терминале)

GET-запрос за секунду:

curl https://jsonplaceholder.typicode.com/posts/1


POST-запрос (добавляем данные):

curl -X POST -H "Content-Type: application/json" -d "{\"title\":\"Привет\",\"body\":\"Это мой пост\"}" https://jsonplaceholder.typicode.com/posts


### 2️⃣ Postman (для тех, кто любит удобный интерфейс)

- Скачай и открой [Postman](https://www.postman.com/).
- Вставь адрес, выбери тип запробуй GET или POST, жми Send и радуйся результату прямо на экране!

### 3️⃣ requests (запросы на Python)

Установи библиотеку в VSCode:

pip install requests


Создай файл test.py и вставь туда код:

import requests

# GET-запрос
response = requests.get("https://jsonplaceholder.typicode.com/posts/1")
print(response.json())

# POST-запрос
data = {"title": "Привет!", "body": "Это пост через Python"}
response = requests.post("https://jsonplaceholder.typicode.com/posts", json=data)
print(response.json())


Запускай и смотри, как работает магия Python! 🚀

Готов попробовать это на практике? Подробности и больше примеров здесь:

👉 [Основы веб-разработки на Python](https://victor-komlev.ru/web-development-python/)

#http #curl #postman #python #requests #вебразработка #айти #начниспитон
🧐 Мини-опрос: проверь себя за 2 минуты!

Готов быстро проверить свои знания и закрепить важные термины веб-разработки? Поехали:

1️⃣ Что такое DNS?
(Подсказка: как браузер находит сайт?)

2️⃣ Чем отличается HTTP от HTTPS?
(Подсказка: какая версия безопаснее и почему?)

3️⃣ Для чего нужен хостинг?
(Подсказка: где «живёт» сайт?)

4️⃣ Что такое домен? Приведи пример.
(Подсказка: что вводишь в адресную строку?)

5️⃣ Что хранится в базе данных сайта?
(Подсказка: где комментарии и лайки?)

6️⃣ Чем отличается фронтенд от бэкенда?
(Подсказка: кухня и зал ресторана)

7️⃣ Что такое виртуальная среда (venv)?
(Подсказка: изолированное окружение для Python)

8️⃣ Что делают Git и GitHub?
(Подсказка: как следить за изменениями в коде?)

Получилось ответить без подсказок? 🔥

Если сомневаешься в ответах или хочешь узнать больше, заглядывай сюда:
👉 [Основы веб-разработки на Python](https://victor-komlev.ru/web-development-python/)

Пиши в комментариях, на сколько вопросов ответил без ошибок! 💬👇

#опрос #вебразработка #python #dns #http #git #github #SSL #начниспитон #айти