enumerate()
в Python и почему это удобно? #tpyenumerate()
в Python - позволяет одновременно проходить по итерируемому объекту и получать индекс каждого элемента - очень удобно и читаемо.- Не нужно самостоятельно создавать счетчик
- Упрощает код при необходимости знать позицию элемента
- Особенно полезна при обработке списков, кортежей, строк и других итерируемых структур
fruits = ['яблоко', 'банан', 'киви']
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
0: яблоко
1: банан
2: киви
Теперь мы можем работать с циклами ещё удобнее!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥11🔥3❤1
Автор: Яндекс Учебник
Уровень: Базовый
В файле содержится последовательность целых чисел, каждое из которых находится в диапазоне от -20000 до
20 000. Определите количество пар элементов последовательности, сумма которых превосходит каждую из сумм соседних пар, при этом все три суммы являются положительными.
В ответе запишите количество найденных пар чисел, затем минимальное из произведений элементов таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Под соседними парами подразумеваются четыре идущих подряд элемента последовательности.
Например, в последовательности 1 2 3 4 5 6 у пары (3, 4) соседние пары (1, 2) и (5, 6).
M = [int(s) for s in open('17.txt')]
R = []
for i in range(len(M)-5):
x, y, z, w, r, t = M[i:i+6]
if (z + w) > (x + y) and (z + w) > (r + t):
if z + w > 0 and x + y > 0 and r + t > 0:
R.append(z * w)
print(len(R), min(R))
Ответ: 610 -123157359
M = [int(s) for s in open('17.txt')]
- Читаем файл 17.txt, преобразуем каждую строку в целое число и сохраняем в список M.
R = []
- Создаем пустой список R для хранения результатов.
for i in range(len(M)-5):
- Цикл по индексам списка M с шагом 1, останавливаясь за 5 элементов до конца (чтобы хватило элементов для среза).
x, y, z, w, r, t = M[i:i+6]
- Берем срез из 6 последовательных элементов и распаковываем их в переменные x, y, z, w, r, t.
if (z + w) > (x + y) and (z + w) > (r + t):
- Проверяем, что сумма третьего и четвертого элементов (`z + w`) больше суммы:
- первых двух элементов (`x + y`)
- последних двух элементов (`r + t`)
if z + w > 0 and x + y > 0 and r + t > 0:
- Дополнительная проверка, что все три суммы положительные.
R.append(z * w)
- Если оба условия выполнены, добавляем произведение z * w в список R.
print(len(R), min(R))
- Выводим количество найденных подходящих комбинаций и минимальное значение среди произведений z * w.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👍1🔥1
🚩 Подписаться на нашу папку с полезными телеграм-каналами📁
🚩 В комментариях под постом на канале Курбик в мёде поставить:➕
Итоги подведем 9 сентября в 18:00 на канале Курбик в мёде
Please open Telegram to view this post
VIEW IN TELEGRAM
3❤6❤🔥2👍2
a = [0, 1, 2]
b = a
b += [3, 4]
c = (0, 1, 2)
d = c
d += (3, 4)
print(a, c)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3 2🔥1
Автор: Яндекс Учебник
Уровень: Простой
ПОКА нашлось (44) ИЛИ нашлось (9299) ИЛИ нашлось (49)
заменить (49, 944)
заменить (44, 2)
заменить (9299, 4)
На вход приведённой выше программе поступает строка, которая начинается с цифры «4», а затем содержит n цифр «9» (3<n<1 000).
Определите, сколько различных строк может получиться в результате её работы.
my_set = set()
for n in range(4, 1000):
s = '4' + '9' * n
while '44' in s or '9299' in s or '49' in s:
s = s.replace('49', '944', 1)
s = s.replace('44', '2', 1)
s = s.replace('9299', '4', 1)
my_set.add(s)
print(len(my_set))
Ответ: 3
my_set = set()
- Создание пустого множества my_set для хранения уникальных строк
for n in range(4, 1000):
- Цикл по значениям n от 4 до 999 включительно
s = '4' + '9' * n
- Создание строки, состоящей из цифры '4' и n цифр '9' (например, при n=4: '49999')
while '44' in s or '9299' in s or '49' in s:
- Цикл выполняется, пока в строке есть хотя бы одна из подстрок: '44', '9299' или '49'
s = s.replace('49', '944', 1)
- Замена первой найденной подстроки '49' на '944'
s = s.replace('44', '2', 1)
- Замена первой найденной подстроки '44' на '2'
s = s.replace('9299', '4', 1)
- Замена первой найденной подстроки '9299' на '4'
my_set.add(s)
- Добавление полученной строки в множество (автоматически исключает дубликаты)
print(len(my_set))
- Вывод количества уникальных строк в множестве
Please open Telegram to view this post
VIEW IN TELEGRAM
2 5❤🔥4🔥2
def create_counter():
count = 0 # Внутреннее состояние
def counter():
nonlocal count
count += 1
print("Текущий счет:", count)
return counter
my_counter = create_counter()
my_counter() # Текущий счет: 1
my_counter() # Текущий счет: 2
Каждый вызов my_counter() увеличивает внутренний счетчик, который "запомнен" внутри функции. Это и есть замыкание!
- Хранить состояние между вызовами
- Создавать "приватные" переменные
- Сделать код более модульным и безопасным
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤🔥4❤1