Цикл for — это основной инструмент для перебора элементов в последовательностях (списках, кортежах, строках и др.) и выполнения блока кода для каждого элемента. В Python цикл for отличается от традиционных циклов других языков программирования, где используется счётчик и условие. В Python он более гибкий и часто используется для итерации по коллекциям.
for элемент in последовательность:
тело цикла
В этом цикле переменная элемент
(у программистов принято называть ее i) последовательно принимает значения из указанной последовательности. Как только все элементы пройдены, цикл завершается.my_list = [1, 2, 3, 4, 5]
for number in my_list:
print(number)
Этот цикл перебирает каждый элемент списка и выводит его.
Важно понимать, что каждый элемент будет выведен на новую строку потому что print имеет значение '\n' (перенос на новую строку) по умолчаниюИтерация по строкам и другим коллекциям
Пример итерации по строке:
for char in "Python":
print(char)
Этот цикл выведет каждый символ (на новой строке) слова "Python".
Использование функции range()
Пример:
for i in range(5):
print(i)
Этот цикл выведет числа от 0 до 4. Важно помнить, что range() включает начальное значение (по умолчанию 0), но исключает конечное.
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3 1
👨💻2
Оператор break в Python используется для досрочного завершения цикла, когда больше не имеет смысла продолжать его выполнение. При срабатывании break цикл сразу прерывается, и управление передаётся коду, который следует после цикла.
При выполнении break Python немедленно завершает текущий цикл, вне зависимости от оставшихся итераций. Это позволяет прерывать выполнение цикла по определённым условиям, например, когда найден нужный элемент.
for i in range(10):
if i == 5:
break # Прерываем цикл, когда i равно 5
print(i)
Этот цикл завершится, когда переменная i станет равна 5, и больше не выполнит оставшиеся итерации (6–9).
1) Поиск элемента: если цикл ищет элемент в списке, и после его нахождения можно прекратить работу.
2) Прерывание бесконечных циклов: в циклах while True оператор break часто используется для выхода из бесконечного цикла по какому-то условию.
while True:
user_input = input("Введите 'exit' для выхода: ")
if user_input == 'exit':
break
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
Функция sum() в Python упрощает суммирование чисел в итерируемых объектах, таких как списки или кортежи. Это быстрый способ сложить элементы без использования циклов.
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total) # 15
#PyTips
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻2 1
Что выведет данный код?
Anonymous Quiz
11%
5
22%
Код вызовет ошибку
67%
Цикл никогда не закончится
0%
0
👨💻1
Continue используется для пропуска текущей итерации цикла и перехода к следующей. В отличие от break, который полностью завершает цикл, continue лишь завершает текущую итерацию, позволяя циклу продолжать работу.
Как работает continue?
Пример: пропуск чётных чисел в цикле.
for i in range(10):
if i % 2 == 0:
continue # Пропускаем чётные числа
print(i)
Этот код выводит только нечётные числа: 1, 3, 5, 7, 9.
1) Фильтрация данных. continue позволяет пропускать нежелательные элементы, например, при работе с файлами, строками или списками.
2) Упрощение кода. continue позволяет упростить логические условия, избегая дополнительных проверок или вложенности.
3) Оптимизация. В сложных вычислениях можно использовать continue для пропуска лишних шагов и ускорения выполнения.
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻1
В Python операторы % и // служат для работы с целочисленными операциями.
Оператор % — Остаток от деления
print(10 % 3) # Результат: 1 (остаток от деления 10 на 3)
Оператор // — Целочисленное деление
print(10 // 3) # Результат: 3 (целиком делим 10 на 3)
% часто используется для работы с цикличными значениями или проверок.
if number % 2 == 0:
print("Чётное")
// полезен, когда важен только целый результат деления, без дробной части.
Вычисление количества целых частей:
pages = total_items // items_per_page
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3 2
Что выведет данный код?
Anonymous Quiz
15%
1, 2, 0, 3
15%
3.1, 30%, 3.0, 20%
8%
Код вызовет ошибку
62%
2, 1, 3, 0
Вложенные циклы — это циклы внутри других циклов. Это мощный инструмент для работы с многомерными данными, таблицами, матрицами или сложными структурами.
Когда внешний цикл начинает итерацию, внутренний цикл выполняется полностью для каждого значения внешнего цикла. Например, если внешний цикл проходит по строкам, внутренний может обрабатывать элементы в каждой строке.
for i in range(3): # Внешний цикл
for j in range(2): # Внутренний цикл
print(f"i={i}, j={j}")
Вывод:
i=0, j=0
i=0, j=1
i=1, j=0
i=1, j=1
i=2, j=0
i=2, j=1
В этом примере внешний цикл проходит по числам от 0 до 2, а внутренний — по числам от 0 до 1 для каждого значения внешнего цикла.
Вложенные циклы можно использовать для генерации таблиц, например, таблицы умножения:
for i in range(1, 6): # Внешний цикл
for j in range(1, 6): # Внутренний цикл
print(i * j, end="\t") # Выводим произведение, \t - табуляция (четыре пробела)
print() # Переход на новую строку
Вывод:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
Здесь каждый цикл перемножает числа от 1 до 5, что создает таблицу умножения.
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻2 1
Что выведет данный код?
Anonymous Quiz
7%
12, 10, 22, 20
47%
10, 11, 20, 22
27%
20, 10
20%
10, 11, 22, 20
👨💻4
Всем привет! 👋
Длительное время канал лежал мертвым грузом, но я решил его реанимировать. Попробую делиться полезной информацией на собственном примере. Сейчас я пишу небольшой проект с интересным стеком и подумал, что будет круто поэтапно разбирать весь процесс: от выбора инструментов до решения проблем в ходе разработки🧑💻
Что я пишу? Решил попробовать реализовать дейтинг-бота с ии плюшками, мини-апкой и оптимальными алгоритмами. Получается полный набор джентльмена: бот, фронт, бек, общие сервисы, CI/CD, контейнеризация и еще море интереснейших технологий🎩
Начнем с основы бота - фреймворка. Первые проекты я писал на TeleBot - в целом, функционала "из коробки" вполне хватало для небольших линейных ботов, но когда я решил написать что-то серьезное, я выбрал инструмент на голову выше - Aiogram. Он асинхронный (в целом, это уже железобетонный аргумент в его пользу), имеет крайне гибкую систему фильтров, встроенные роутеры (как в FastApi), менеджер состояний, мидлверы - в общем, буквально младенец против ядерной бомбы🤯
Как вам такой формат? Делитесь мыслями💻
🐍 PyCode
Длительное время канал лежал мертвым грузом, но я решил его реанимировать. Попробую делиться полезной информацией на собственном примере. Сейчас я пишу небольшой проект с интересным стеком и подумал, что будет круто поэтапно разбирать весь процесс: от выбора инструментов до решения проблем в ходе разработки
Что я пишу? Решил попробовать реализовать дейтинг-бота с ии плюшками, мини-апкой и оптимальными алгоритмами. Получается полный набор джентльмена: бот, фронт, бек, общие сервисы, CI/CD, контейнеризация и еще море интереснейших технологий
Начнем с основы бота - фреймворка. Первые проекты я писал на TeleBot - в целом, функционала "из коробки" вполне хватало для небольших линейных ботов, но когда я решил написать что-то серьезное, я выбрал инструмент на голову выше - Aiogram. Он асинхронный (в целом, это уже железобетонный аргумент в его пользу), имеет крайне гибкую систему фильтров, встроенные роутеры (как в FastApi), менеджер состояний, мидлверы - в общем, буквально младенец против ядерной бомбы
Как вам такой формат? Делитесь мыслями
Please open Telegram to view this post
VIEW IN TELEGRAM
Изоляция зависимостей
Что это и зачем нужно?📖
Допустим, вы только скачали Python и решили написать проект на джанго. Пишете в терминале💡
Раньше для меня стандартом была дефолтная утилита в питоне venv, простой командой
Так что же не так? В принципе, для маленьких проектов этого функционала вполне хватало, но все изменилось, когда я познакомился с poetry😍
Poetry - мегаудобный инструмент для управления зависимостями, и вот почему
1. С Poetry больше не надо при добавлении новой либы вручную вписывать её название и версию в requirement.txt
2. poetry позволяет разделить либы по группам - настоящая имба
3. При инициализации проекта на новом устройстве или сервере достаточно просто написать в консоли
Poetry полностью автоматизирует рутинные процессы настройки венвы и избавляет от головной боли с версиями. Для модульных проектов это мастхэв🍒
🐍 PyCode
Что это и зачем нужно?
Допустим, вы только скачали Python и решили написать проект на джанго. Пишете в терминале
pip install django. Затем захотели создать бота - докинули aiogram, для базы данных накатили sqlalchemy. В итоге ваш глобальный питон забивается солянкой из самых разных библиотек, именно для того, чтобы проекты не мешали друг другу, придумали виртуальное окружение Раньше для меня стандартом была дефолтная утилита в питоне venv, простой командой
python -m venv venv она создает в корне проекта изолированную версию питона.Так что же не так? В принципе, для маленьких проектов этого функционала вполне хватало, но все изменилось, когда я познакомился с poetry
Poetry - мегаудобный инструмент для управления зависимостями, и вот почему
1. С Poetry больше не надо при добавлении новой либы вручную вписывать её название и версию в requirement.txt
2. poetry позволяет разделить либы по группам - настоящая имба
3. При инициализации проекта на новом устройстве или сервере достаточно просто написать в консоли
poetry installPoetry полностью автоматизирует рутинные процессы настройки венвы и избавляет от головной боли с версиями. Для модульных проектов это мастхэв
Please open Telegram to view this post
VIEW IN TELEGRAM