Информатика ЕГЭ | Илья Андрианов | itpy 🧑‍💻
1.1K subscribers
274 photos
22 videos
19 files
662 links
По рекламе: @ilandroxxy

Шпаргалки: clck.ru/3FwqWt
📚 Наши курсы: clck.ru/3FwqYb

Разборы: clck.ru/3Fwqay
💬 Чатик: clck.ru/3FwqZa

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
📎Объединение итерируемых объектов с помощью 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
3👍11❤‍🔥2🔥2
📎Что такое 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
❤‍🔥123🔥3👍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
6❤‍🔥44🔥2
🚀 Почему нельзя использовать is для сравнения строк и чисел в Python? #tpy

💻 is - это оператор идентичности, он проверяет, ссылаются ли переменные на один и тот же объект в памяти. А == - оператор равенства, сравнивает значения.

🔍 Для небольших чисел и коротких строк Python часто использует кэш, поэтому is может иногда возвращать True.
Но для больших чисел или длинных строк это не гарантировано - объекты могут быть разными.


Пример с кодом:
a = 256
b = 256
print(a is b) # True (кэш)

x = "hello"
y = "hello"
print(x is y) # True (кэш)

a = 1000
b = 1000
print(a is b) # False (разные объекты)


⚠️ Используйте == для сравнения значений, is - только чтобы проверить, ссылаются ли переменные на один объект!

#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥63🔥3
📎 Что такое файл .env, и зачем он нужен? #tpy

Если вы когда-либо работали с проектами на Python, Node.js или других языках, то, скорее всего, сталкивались с файлами .env. Но что они из себя представляют?

Файл .env - это секретный шкафчик для хранения переменных окружения!
В нем хранятся важные настройки: ключи API, пароли, настройки базы данных и другие конфиденциальные данные.


🔒 Почему это удобно?
- Безопасность: секретные данные не хранятся прямо в коде, их легко исключить из системы контроля версий.
- Гибкость: можно легко менять настройки между разными окружениями - тестовым, продакшеном и локальной разработкой.
- Удобство: все важные переменные сосредоточены в одном месте, их легко найти и обновить.


🚀 .env - это безопасный способ хранения конфиденциальной информации, если он используется локально и не попадает в публичные источники.
⚠️ Ведь его публичное размещение - серьёзная уязвимость!


#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
24❤‍🔥2🔥2
📂 Как открывать файлы в Python на ЕГЭ? #tpy
Примеры кодов для задач 9, 17, 24, 26, 27 из ЕГЭ:


0⃣
for M in open('9.txt'):
M = [int(i) for i in M.split()]
print(M)

▶️ Читаем файл построчно, каждую строку разбиваем на числа и сразу печатаем.


1⃣7⃣
M = [int(i) for i in open('17.txt')]
print(M)

▶️ Читаем все строки файла и превращаем в список чисел.


2⃣4⃣
s = open('24.txt').readline()

Считываем только первую строку файла.


2⃣6⃣
ans = []
for M in open('26.txt'):
M = [int(i) for i in M.split()]
ans.append(M)

Сохраняем каждую строку как список чисел, а потом собираем всё в общий список.


2⃣7⃣
f = open('27.А.txt').readlines()[1:]
for M in f:
M = [float(i.replace(',','.')) for i in M.split()]
x, y = M[0], M[1]
print(x, y)

▶️ Пропускаем первую строку, заменяем запятые на точки и превращаем в числа с плавающей точкой.


#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍64🔥4❤‍🔥2
🚀 Типы данных в Python, которые считаются структурами данных #tpy

🔍- Это те типы, которые позволяют хранить и организовывать коллекции элементов.

👩‍💻 Основные структуры данных в Python:
📎 list - это изменяемый упорядоченный список. Можно добавлять, удалять, менять элементы. Например:
fruits = ['яблоко', 'банан', 'апельсин'] 📎

📎 tuple - неизменяемая последовательность. Отлично подходит, когда нужно зафиксировать набор данных:
coordinates = (10, 20) 📎

📎 set - множество уникальных элементов. Быстро искать, удалять дубликаты:
unique_numbers = {1, 2, 3} 📎

📎 dict - словарь, отображение ключей на значения. Очень удобно для хранения пар "ключ-значение":
person = {'имя': 'Анна', 'возраст': 25} 📎

❄️ frozenset - неизменяемое множество, его нельзя менять после создания. Используется там, где нужен "жёсткий" набор данных. frozenset([1, 2, 3, 4]) ➡️ frozenset({1, 2, 3, 4})

🔼🔽 deque - двусторонняя очередь из модуля collections. Быстро добавлять и удалять элементы с обоих концов:
from collections import deque ⚙️ d = deque() - инициализировать элементами из любого итерируемого объекта (список, кортеж и т. д.).


Технологии телеграмма не стоят на месте, поэтому обращаю ваше внимание, что мы часто используем инструмент "цитата". Кликайте на цитату выше, чтобы открыть текст для чтения 👆

#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤‍🔥4🔥3
🚀 Что такое zip() в Python? #tpy

🪄 Это встроенная функция, которая позволяет объединить несколько итерируемых объектов (например, списки или кортежи) в один, создавая последовательность кортежей, где каждый из них содержит элементы, расположенные на одинаковых позициях.

↗️ если проще, то:
Она берет по одному элементу из каждого итерируемого объекта и создает кортеж из них.


💻 Пример с кодом:
names = ['Анна', 'Борис']
scores = [85, 90]

result = list(zip(names, scores))
print(result)


👩‍💻 Вывод:
[('Анна', 85), ('Борис', 90)]


📎 Особенности:
- Можно объединять любое количество итерируемых объектов.
- Если длины объектов отличаются, zip() остановится на минимальной длине.

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

#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥33🔥2
📎 А вы знали, что в Python можно посчитать Евклидово расстояние между двумя точками всего в одну строку?) #tpy

👩‍💻 Для этого всего то нужно воспользоваться функцией dist, которая входит в стандартную библиотеку math.

В контексте 27 задачи ЕГЭ, особенно полезная вещь!!)


💻 Пример с кодом:
import math

point1 = (x1, y1)
point2 = (x2, y2)

distance = math.dist(point1, point2)
print(distance)


🔥 Преимущества:
- Простая и удобная в использовании.
- Работает для точек в 2D, 3D и более измерениях.

💡 Обратите внимание:
⚠️ math.dist() доступна только в Python 3.8 и новее.


#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥3🔥2
📎 Краткий список тем, которые точно понадобятся на экзамене!) #tpy

1️⃣ Основы синтаксиса
- переменные, операторы, функции, базовые типы данных

2️⃣ Работа с данными и числами
- арифметика, логика, побитовые операции, приведение типов

3️⃣ Условные конструкции
- if, elif, else, вложенные условия, тернарный оператор

4️⃣ Циклы
- for, while, вложенные циклы, break, continue, pass, else

5️⃣ Строки
- операции, методы, форматирование (
f'-строки, format(), %), срезы

6️⃣ Списки и кортежи
- методы, вложенные списки, особенности кортежей

7️⃣ Словари и множества
- отличия от списков, методы, практика

8️⃣ Функции
- объявление, вызов, return

0⃣ Работа с файлами
- чтение, запись, практика

🔟 Генераторы и встроенные функции
- map(), filter(), zip(), enumerate()

1️⃣1️⃣ Модули для ЕГЭ
- itertools, math, random, ipaddress, fnmatch и др.

*⃣ Необязательно, но достаточно полезно!
- Обработка исключений, декораторы, алгоритмы (DBSCAN, K-means, Евклид), lambda-функции


#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥42🔥2
🚀 Почему range(10**9) почти не занимает памяти? #tpy

Многие думают, что создание очень большого диапазона - это много памяти. Но в Python всё иначе! 👩‍💻

🔍 range() хранит только начальное, конечное значения и шаг.
Он не создает список всех чисел сразу, а генерирует числа по мере необходимости!

💻 При вызове range(10**9) в памяти хранится лишь небольшая информация:
- старт (по умолчанию 0)
- финиш (10^9)
- шаг (по умолчанию 1)

А это ведь совсем немного данных!

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

🚘 Умение работать со строками пригодится вам при решении задач под номерами - 12, 24

🆘 # (... может каких то еще, вроде ток эти две )
🆘

📱 Топ-20 методов, которые помогут быть очень полезны:

1️⃣ upper() - переводит строку в верхний регистр.
"hello".upper() → "HELLO"

2️⃣ lower() - переводит строку в нижний регистр.
"HELLO".lower() → "hello"

3️⃣ capitalize() - делает первую букву заглавной.
"hello".capitalize() → "Hello"

4️⃣ title() - каждое слово с заглавной буквы.
"hello world".title() → "Hello World"

5️⃣ strip() - удаляет пробелы с обоих концов.
"hello".strip() → "hello"

6️⃣ lstrip() / rstrip() - удаляет пробелы слева/справа.

7️⃣ replace(old, new) - заменяет подстроку.
"abc".replace("a", "x") → "xbc"

8️⃣ split(sep) - разбивает строку по разделителю.
"a,b,c".split(",") → ["a", "b", "c"]

0⃣ join(list) - собирает строку из списка.
",".join(["a", "b", "c"]) → "a,b,c"

🔟 startswith(str) / endswith(str) - проверяет начало/конец строки.
"hello".startswith("he") → True

1️⃣1️⃣ find(sub) - ищет подстроку и возвращает индекс.
"hello".find("ll") → 2

1️⃣2️⃣ count(sub) - считает количество вхождений.
"hello".count("l") → 2

1️⃣3️⃣ isdigit() - проверяет, состоит ли строка из цифр.
"123".isdigit() → True

1️⃣4️⃣ isalpha() - проверяет, только ли буквы.
"abc".isalpha() → True

1️⃣5️⃣ isalnum() - буквы или цифры без пробелов.
"a1".isalnum() → True

1️⃣6️⃣ islower() / isupper() - проверяет регистр.

1️⃣7️⃣ zfill(width) - дополняет нулями слева.
"7".zfill(3) → "007"

1️⃣8️⃣ format() - подставляет значения в строку.
"{}".format(5) → "5"

1️⃣0⃣ f-строки (Python 3.6+) - удобный формат.
f"{5}" → "5"

2️⃣0️⃣ in – проверка наличия подстроки.
"a" in "abc" → True


#⃣ Вся теория для ЕГЭ в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5🔥1
📎 Метод.index() в Python #tpy

Вы когда-нибудь сталкивались с задачей - найти позицию элемента в списке или строке? Тогда метод .index() - то что вам нужно)

🔍 Что делает .index()?

Он возвращает индекс первого вхождения указанного элемента в последовательность (список, строку, кортеж).

Пример:
fruits = ['киви', 'банан', 'груша', 'банан', 'виноград']
pos = fruits.index('банан')
print(pos) # Выведет: 1


- .index() ищет 'банан' и возвращает его первую позицию - 1 (учитывая, что нумерация с 0).

⚠️ Важно: если элемента в последовательности нет - .index() вызовет ошибку ValueError.
Чтобы избежать этого, можно воспользоваться оператором in для проверки, на наличие элемента.

🔥 Совет:
Для поиска всех вхождений элемента — используйте цикл или генератор, а .index() отлично подходит для быстрого определения первой позиции.



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