Информатика | Илья Андрианов | itpy 🧑‍💻
1.05K subscribers
263 photos
20 videos
19 files
629 links
По рекламе: @ilandroxxy

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

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

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
Ребята, стало интересно... Сейчас появилась возможность пересдать один экзамен (на выбор). В любом случае, я определенно воспользовался бы этим шансом. А что вы думаете об этом?
Anonymous Poll
16%
Я уже решил, что пойду.
65%
Не знаю, зависит от результатов.
19%
Точно нет, пора отдыхать.
🔤🔤🔤🔤🔤🔤🔤🔤🔤 🖥
Жмакай кнопку ниже, всё там!

Поддержите нас донатом
💵
Если нравится контент на канале.

Можно оставить свой премиум голос ⭐️

Мы благодарны вам за любую поддержку 🙏
Please open Telegram to view this post
VIEW IN TELEGRAM
11651
Давайте отвлечёмся от экзаменов..
Что выведет этот код? 🤔

1️⃣ [1, 8, 15]
2️⃣ [8]
3️⃣ [12, 8, 22]

Информатика ЕГЭ | itpy 👨‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
10552
Информатика | Илья Андрианов | itpy 🧑‍💻
Давайте отвлечёмся от экзаменов.. Что выведет этот код? 🤔 1️⃣ [1, 8, 15] 2️⃣ [8] 3️⃣ [12, 8, 22] Информатика ЕГЭ | itpy 👨‍💻 Поддержать автора донатом 💵
📱 Генераторное выражение: эффект позднего связывания и ленивость #tpy

Друзья, сегодня разберем интересную особенность работы генераторных выражений на примере кода 🚀

Представьте, что у нас есть код:
array = [1, 8, 15]
generator = (x for x in array if array.count(x) > 0)
array = [12, 8, 22]
print(list(generator))

Кстати правильный ответ: [8]

Что здесь происходит?

Когда мы создаем генераторное выражение generator, оно строится на основе текущего состояния переменной array, содержащей список [1, 8, 15]. Интересно то, что условие if array.count(x) > 0 оценивается во время выполнения генератора, а не при его объявлении.

При вызове print(list(generator)) переменная array уже указывает на новый список [12, 8, 22]. Генератор же оценивает условие на лету, проверяя каждый элемент исходного списка на предмет наличия в новом списке.

📝 Посмотрим на шаги выполнения:
1. x = 1: 1 отсутствует в [12, 8, 22]
2. x = 8: 8 присутствует, добавляем в результат
3. x = 15: 15 отсутствует

Таким образом, генератор выбирает лишь подходящие элементы и возвращает [8].

Этот случай демонстрирует, как генераторы оценивают условия на основе текущего состояния переменных. Глубже копая в позднее связывание и ленивые операции, можно увидеть, как переменные хранят ссылки, а не конкретные значения. 🧠

Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
9542
🔗 Всем поступающим в IT вузы посвящается!

Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
16542
Пришли результаты по русскому языку и математике. Проверяйте информацию на Госуслугах или региональных сайтах💡
Please open Telegram to view this post
VIEW IN TELEGRAM
64
Вижу много запросов, связанных с подготовкой к пересдаче (на Авито, Профи).

В связи с этим у меня возник вопрос: Если вам предстоит пересдача, то какой предмет вы планируете выбрать? 🤔
Anonymous Poll
36%
Информатика👨‍💻
20%
Математика 👨‍🏫
10%
Русский 👩‍⚕️
0%
Любой другой.. 😼
34%
Не планирую, пора отдыхать 😎
📱 Итератор среза с помощью itertools.islice в Python #tpy

Hе секрет, что в Python существует множество инструментов для работы с итераторами и последовательностями.

Один из таких инструментов - метод itertools.islice, который позволяет создавать объект islice для получения среза элементов из итератора.

Вот пример использования itertools.islice:
import itertools

s = itertools.islice(range(50), 10, 20)
for val in s:
  print(val)


При выполнении этого кода мы создаем объект s, который представляет собой срез элементов от индекса 10 до индекса 20 в итерируемом объекте range(50). При итерации по объекту s будут выводиться элементы с индексами от 10 до 19 (исключительно).

Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
965
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 17521 #kege по информатике #ЕГЭ8
Автор: Основная волна 07.06.24
Уровень: Базовый


🚩 Условие задачи:
Определите количество восьмеричных пятизначных чисел, которые не начинаются с нечётных цифр, не оканчиваются цифрами 2 или 6, а также содержат не более двух цифр 7.


🚩 Теоретическая справка:
На kompege.ru появился вариант с заданиями к ЕГЭ 2024, ссылка тут.

В комментариях оставлю решение через цикл for.


👩‍💻 Код решения:
from itertools import *
cnt = 0
for per in product('01234567', repeat=5):
num = ''.join(per)
if num[0] != '0' and num[0] not in '1357':
if num[-1] not in '26' and num.count('7') <= 2:
cnt += 1
print(cnt)

# Ответ: 9135


👩‍💻 Комментарии к коду:

1⃣ from itertools import *
Импорт всех функций и классов из модуля itertools.


2⃣ cnt = 0
Инициализация переменной cnt с начальным значением 0 для подсчета подходящих чисел.


3⃣ for per in product('01234567', repeat=5):
Цикл for, который перебирает все возможные 5-значные комбинации из цифр '01234567' (с повторениями) с помощью функции product.


4⃣ num = ''.join(per)
Преобразование кортежа per в строку num, объединив все цифры.


5⃣ if num[0] != '0' and num[0] not in '1357':
Проверка условия: первая цифра числа не равна '0' и не принадлежит множеству '1357'.


6⃣ if num[-1] not in '26' and num.count('7') <= 2:
Дополнительная проверка: последняя цифра числа не принадлежит множеству '26' и количество цифр '7' в числе не превышает 2.


7⃣ cnt += 1
Увеличение счетчика cnt на 1 при выполнении всех условий.


8⃣ print(cnt)
Вывод общего количества подходящих чисел, которые соответствуют заданным условиям.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
7431
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 17522 #kege по информатике #ЕГЭ9
Автор: Основная волна 07.06.24
Уровень: Базовый


🚩 Условие задачи:
Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:
– наибольшее из четырёх чисел меньше суммы трёх других;
– среди четырёх чисел есть только одна пара равных чисел.


🚩 Теоретическая справка:
На kompege.ru появился вариант с заданиями к ЕГЭ 2024, ссылка тут.


👩‍💻 Код решения:
cnt = 0
for s in open('9.csv'):
M = sorted([int(x) for x in s.split(';')])
if M[-1] < sum(M[:3]):
if len(set(M)) == 3:
cnt += 1
print(cnt)

# Ответ: 147


👩‍💻 Комментарии к коду:

1⃣ cnt = 0
Инициализация переменной cnt с начальным значением 0 для подсчёта подходящих ситуаций.


2⃣ for s in open('9.csv'):
Цикл for, который проходит по каждой строке в файле '9.csv'.


3⃣ M = sorted([int(x) for x in s.split(';')])
Создание списка M из целочисленных значений, полученных путём разделения строки s по символу ';' и последующей сортировки этих чисел.


4⃣ if M[-1] < sum(M[:3]):
Проверка условия: если наибольшее из четырёх чисел меньше суммы трёх других чисел.


5⃣ if len(set(M)) == 3:
Проверка условия: если количество уникальных элементов в списке M равно 3, что означает, что есть только одна пара равных чисел.


6⃣ cnt += 1
Увеличение счётчика cnt на 1, если обе проверки выше выполняются.


7⃣ print(cnt)
Вывод общего количества ситуаций, которые удовлетворяют заданным условиям.


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
855
👩‍💻 Полезные функции модуля math для подготовки к ЕГЭ: изучаем sqrt, prod, ceil, floor, factorial

math - это встроенный модуль в Python, который предоставляет доступ к математическим функциям и константам. Этот модуль позволяет выполнять различные математические операции, такие как вычисление квадратных корней, тригонометрические функции, логарифмы, степени, округления чисел и многое другое.

🚩sqrt(x)
Возвращает квадратный корень числа x:

import math

result = math.sqrt(25)
print(result) # Вывод: 5.0



🚩 prod(iterable)
Возвращает произведение всех элементов итерируемого объекта:
import math

numbers = [1, 2, 3, 4, 5]
result = math.prod(numbers)
print(result) # Вывод: 120 (произведение 1 * 2 * 3 * 4 * 5)



🚩ceil(x)
Возвращает наименьшее целое число, которое больше или равно x:
import math

result = math.ceil(3.14)
print(result) # Вывод: 4



🚩floor(x)
Возвращает наибольшее целое число, которое меньше или равно x:
import math

result = math.floor(3.14)
print(result) # Вывод: 3



🚩factorial(x)
Возвращает факториал числа x:
import math

result = math.factorial(5)
print(result) # Вывод: 120 (факториал числа 5)



Кстати, вместо import math можно написать import math as m , что позволит обращаться к модулю через переменную m (или любую другую, на ваш выбор). Это удобно для сокращения кода и повышения его читаемости.

Информатика ЕГЭ | itpy 👨‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
954