Программирование на Python | itpy 💻
511 subscribers
5 photos
2 videos
29 links
Азим вкатывается в IT – это блог, в котором я рассказываю о Python и айти не только в рамках подготовки к ЕГЭ, но и за ее пределами.

Автор канала: @ilandroxxy
Канал по подготовке к ЕГЭ: t.me/informatika_kege_itpy

💬 Ссылка на чат: t.me/analyst_chat_itpy
Download Telegram
👩‍💻 Повторяем срезы в Python #tpy

Срезы (slices) - это мощный инструмент в Python, позволяющий взять часть списка или строки, указав, что именно тебе нужно.

Общий вид срезов в Python:
A[начало:конец:шаг]


🚩 начало — индекс, С КОТОРОГО начинаем (включается).
🚩 конец — индекс, ДО КОТОРОГО берём (не включается).
🚩 шаг — через сколько берём элементы (по умолчанию 1).

🚩Пример со строкой:
s = "информатика"

print(s[0:5]) # 'инфор' (с 0 по 4 индекс)
print(s[::-1]) # 'акитамрофни' (разворот строки)
print(s[2:7]) # 'форма' (с 2 по 6 индекс)
print(s[:4]) # 'инфо' (с начала до 3 индекса)
print(s[-4:]) # 'тика' (последние 4 буквы)
print(s[::2]) # 'ифрмата' (каждая вторая буква)


🚩Пример со списком:
nums = [4, 8, 15, 16, 23, 42]

print(nums[1:4]) # [8, 15, 16] (с 1 по 3 индекс)
print(nums[-3:]) # [16, 23, 42] (последние 3 элемента)
print(nums[:3]) # [4, 8, 15] (первые 3 элемента)
print(nums[::-1]) # [42, 23, 16, 15, 8, 4] (разворот списка)
print(nums[::2]) # [4, 15, 23] (каждый второй элемент)


🚩Как запомнить?
🟠 ЛЕВАЯ граница включается, ПРАВАЯ не включается.
🟠 Откуда : докуда : шаг.
🟠 шаг = -1 — идёшь в обратную сторону.
🟠Работает с списками, строками, кортежами

📙Где встречаются срезы на ЕГЭ/ОГЭ по информатике:
🚩 Номер 5 — работа с массивами (списки, строки).
🚩 Номер 8 — работа с текстовыми данными.
🚩 Номер 9 — анализ и обработка данных, перебор подстрок.
а также 13, 14, 17 и других номерах

#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4🔥3
🚩 Почему нельзя напрямую сравнивать два float в Python? #tpy

Ответ: Сравнение через == может вернуть False, даже если числа выглядят равными. Вместо этого нужно использовать math.isclose(a, b), которая сравнивает два числа с учётом допустимого отклонения (rel_tol и abs_tol) и гарантирует корректное сравнение.


Почему так происходит:

🔣Двоичное представление.
Число 0.1 в двоичном виде - бесконечная дробь. В памяти оно хранится как ближайшее представимое значение, а не как точная десятичная дробь.


🔣Накопление ошибок.
При выполнении операций (+, -, *, /) эти малые погрешности складываются.


🔣Прямое сравнение.
Оператор == проверяет полное совпадение битов результата, поэтому даже «крошечная» разница даст False.



👩‍💻 Пример кода:
import math

# Два выражения, которые математически равны
a = 0.1 + 0.2
b = 0.3

# Прямое сравнение
print("a =", a) # a = 0.30000000000000004
print("b =", b) # b = 0.3
print("a == b ->", a == b) # False!

# Сравнение с учётом допуска погрешности
# По умолчанию rel_tol=1e-09, abs_tol=0.0
print("math.isclose(a, b) ->", math.isclose(a, b)) # True


#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43❤‍🔥3👍1
👩‍💻 Использования f-строк в python #tpy

Если раньше для подстановки переменных в строку мы писали:
"Привет, {}!".format(name)

то теперь с f-строками можно проще:
name = "Андрей"
print(f"Привет, {name}!") # Привет, Андрей!



🚩 Почему f-строки удобны:
🕓 Код становится короче.
🕓 Сразу видно, какие переменные подставляются.
🕓 Можно вставлять даже выражения:
a = 5
b = 3
print(f"{a} + {b} = {a + b}") # 5 + 3 = 8


👩‍💻 Пример:
user = "Андрей"
action = "покупка"

log = f"Пользователь {user} зашел на сайт и выполнил действие: {action}"
print(log) # Пользователь Андрей зашел на сайт и выполнил действие: покупка


💡 Запомни:
Чтобы использовать f-строку, ставь f перед кавычками и указывай переменные в {}.

#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥32👍2
📱 Конструкция eval() в Python #tpy

📓 Многие сталкиваются с задачами, где нужно вычислить выражение, заданное в виде строки, например: "2+3*4" или " (10 - 3) ** 2".

🚩 В таких случаях помогает функция eval()
Она "преобразует" строку в код и выполняет его, возвращая результат.

Примеры использования:
expression = "2+3*4" 
result = eval(expression)
print(result) # Выведет 14

expression = " (10 - 3) ** 2" 
result = eval(expression)
print(result) # Выведет 49

expression = "( 2+3*4 ) * 3"  
result = eval(expression)
print(result) # Выведет 42


⚠️ Важно помнить: eval() — мощный инструмент, но его использование опасно, если строка содержит неподтвержденный или вредоносный код.

На экзамене обычно не проблема, а в реальной разработке лучше избегать eval() без необходимости.

✔️В контексте ЕГЭ eval() помогает быстро выполнять вычисления из строковых выражений, что удобно при решении задачи под номером 24.



🚀 Примечание: eval() — ваш быстрый помощник, но применять его нужно с осторожностью!


#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥11🔥1
🚀 Можно ли использовать else после for или while в Python? #useful

✔️ Да, это валидная и очень полезная конструкция!
Блок else выполняется только если цикл завершился без использования break.



🔹 Почему это удобно?:
Например, при поиске элемента в списке:
- Если элемент найден — срабатывает break, и блок else пропускается.
- Если элемент не найден — цикл завершится нормально, и else выполнится, позволяя обработать ситуацию.


📱 Пример с кодом:
# Поиск элемента в списке
numbers = [1, 3, 5, 7, 9]
target = 4

for num in numbers:
if num == target:
print("Элемент найден:", target)
break
else:
print("Элемент не найден:", target)


👩‍💻 В этом примере:
- Если target есть в списке, мы его найдём и выйдем из цикла через break.
- Если target отсутствует, цикл завершится нормально, и сработает блок else, сообщая, что элемент не найден.


#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥11🔥1
📎Объединение итерируемых объектов с помощью itertools.chain #tpy

Когда у тебя есть несколько списков, кортежей или других итерируемых объектов, и нужно пройти по ним, будто это один большой список — itertools.chain делает это просто и эффективно, без создания дополнительных промежуточных структур.

↗️ Почему это круто?
itertools.chain позволяет объединять итерируемые объекты "на лету", экономя память и ускоряя обработку больших наборов данных. Особенно полезно, когда работаешь с объемными файлами или потоками данных.


Пример использования:
import itertools

list1 = [1, 2, 3]
list2 = ('a', 'b', 'c')
list3 = range(10, 13)

# Объединяем без создания новых списков
for item in itertools.chain(list1, list2, list3):
print(item, end=' ')


🪄Вывод:
1 2 3 a b c 10 11 12


Теперь ты можешь обходить все эти коллекции как один поток, не тратя лишнюю память 🚀

#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2🔥1
📎Что такое enumerate() в Python и почему это удобно? #tpy

🪄 Функция enumerate() в Python - позволяет одновременно проходить по итерируемому объекту и получать индекс каждого элемента - очень удобно и читаемо.

↗️ Почему это полезно?
- Не нужно самостоятельно создавать счетчик
- Упрощает код при необходимости знать позицию элемента
- Особенно полезна при обработке списков, кортежей, строк и других итерируемых структур

Пример использования:

fruits = ['яблоко', 'банан', 'киви']

for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")


Вывод:
0: яблоко
1: банан
2: киви


Теперь мы можем работать с циклами ещё удобнее! 🚀

#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍1🔥1
📱 Что такое замыкание в Python? #useful

🧠 Объявление: функция внутри функции, которая запоминает переменные из внешней области


Пример: создание счетчика
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() увеличивает внутренний счетчик, который "запомнен" внутри функции. Это и есть замыкание!


🔍 Зачем это нужно?
- Хранить состояние между вызовами
- Создавать "приватные" переменные
- Сделать код более модульным и безопасным


#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
👩‍💻 Генераторы списков в Python #tpy

Это обычный способ создания списков через цикл for, но более лаконичный и читаемый.

🟣Обычный способ:
res = []
for i in range(10):
if i % 2 == 0:
res.append(i ** 2)
print(res) # [0, 4, 16, 36, 64]


🟣Через генератором списков:
res = [i ** 2 for i in range(10) if i % 2 == 0]
print(res) # [0, 4, 16, 36, 64]



📌 Синтаксис:
[выражение for переменная in последовательность if условие]


💬 Читается как:
«Добавь выражение в список для каждого элемента, если выполняется условие»



🚩 Примеры для ЕГЭ:

🟣Все нечётные числа от 1 до 20:
[x for x in range(1, 21) if x % 2 != 0]


🟣Строки в верхнем регистре:
[s.upper() for s in ['питон', 'егэ', 'код']]


🟣Цифры от 0 до 9, кроме 3 и 7:
[x for x in range(10) if x not in (3, 7)]



💭 Когда использовать?

🕓для компактного создания списков
🕓когда нужна фильтрация (if)
🕓при преобразовании значений

💡 Важно: генераторы не заменяют циклы везде. Но для быстрого и чистого кода они очень полезны.


#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1