Информатика | Илья Андрианов | itpy 🧑‍💻
1.04K 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
🫡 Дорогие подписчики и друзья!
Отличные новости: мы внесли изменения в систему навигации на нашем канале. Теперь каждая новая задача будет обозначаться уникальным хэштегом для вашего удобства. Вы можете сортировать задачи по номерам (типам) и по площадке публикации, например:
#reshu - Решу ЕГЭ,
#kege - kompege.ru,
#yandex - нейросеть Яндекса

#useful Просто воспользуйтесь функцией поиска на канале, чтобы легко найти интересующую вас статью или разбор задачи 🌡
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍5🔥43❤‍🔥2
🖥 Все методы списков в Python, которые понадобятся на ЕГЭ #tpy


🚩 .APPEND()

Метод .append() используется для добавления элемента в конец списка. Пример:
my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # Вывод: [1, 2, 3, 4]


Можно реализовать через конкатенацию (склеивание) списков:
my_list = [1, 2, 3]
my_list += [4]
print(my_list) # Вывод: [1, 2, 3, 4]



🚩 .REVERSE()

Метод .reverse() изменяет порядок элементов в списке на обратный. Пример:
my_list = [1, 2, 3, 4]
my_list.reverse()
print(my_list) # Вывод: [4, 3, 2, 1]


Можно записать по другому через срез:
my_list = [1, 2, 3, 4]
my_list = my_list[::-1]
print(my_list) # Вывод: [4, 3, 2, 1]



🚩 .COUNT()

Метод .count() возвращает количество вхождений заданного элемента в список. Пример:
my_list = [1, 2, 2, 3, 4, 2]
count_of_twos = my_list.count(2)
print(count_of_twos) # Вывод: 3



🚩 .REMOVE()

Метод .remove() удаляет первое вхождение указанного элемента из списка. Пример:
my_list = [1, 2, 3, 2, 4]
my_list.remove(2) # первая найденная двойка
print(my_list) # Вывод: [1, 3, 2, 4]


Можно удалить элемент через его индекс используя del:
my_list = [1, 2, 3, 2, 4]
del my_list[1] # индекс удаляемого элемента
print(my_list) # Вывод: [1, 3, 2, 4]



🚩 .INDEX()

Метод .index() возвращает индекс первого вхождения заданного элемента в списке. Пример:
my_list = [1, 2, 3, 2, 4]
index_of_two = my_list.index(2)
print(index_of_two) # Вывод: 1



🚩 .SORT()

Метод .sort() сортирует элементы списка по возрастанию (по умолчанию) или в обратном порядке, если передан аргумент reverse=True. Пример:
my_list = [4, 1, 3, 2]
my_list.sort()
print(my_list) # Вывод: [1, 2, 3, 4]

my_list.sort(reverse=True)
print(my_list) # Вывод: [4, 3, 2, 1]


Скажу честно я не любитель этого метода, считаю, что удобнее будет использовать функцию sorted():
my_list = [4, 1, 3, 2]
my_list = sorted(my_list)
print(my_list) # Вывод: [1, 2, 3, 4]

my_list = sorted(my_list, reverse=True)
print(my_list) # Вывод: [4, 3, 2, 1]


Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
12❤‍🔥6433
👩‍💻 Рисование и управление экраном в Turtle: down(), up(), dot(), screensize(), tracer(), done() #tpy

🚩 Функция down() опускает перо черепахи, позволяя ей рисовать на экране.
import turtle as t
t.down()
t.forward(100)
t.done()


🚩 Функция up() поднимает перо черепахи, останавливая рисование.
import turtle as t
t.down()
t.forward(100)
t.up()
t.forward(50)
t.done()


🚩 Функция dot(size, color) рисует точку заданного размера (size) и цвета (color) в текущей позиции черепахи.
import turtle as t
t.dot(10, "red")
t.done()


🚩 Функция screensize(width, height) устанавливает размеры экрана в пикселях. Это определяет размер доступной области для рисования.
import turtle as t
t.screensize(800, 600)
t.done()


🚩 Функция tracer(n, delay) управляет скоростью отрисовки черепахи. n задает количество шагов отрисовки, а delay - задержку между шагами.
import turtle as t
t.tracer(3, 100)
t.done()


🚩 Функция done() ожидает закрытия окна черепахи перед окончанием программы.
import turtle as t
t.done()


Эти функции помогают управлять рисованием и настройками экрана при работе с библиотекой Turtle в Python.

Информатика ЕГЭ | itpy
👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👏886
🔤🔤🔤🔤 🔤🔤🔤🔤🔤🔤🔤🔤🔤
Пару слов об авторе канала, давайте знакомиться!

#⃣ Полный список разборов в одном месте
#⃣ Шпаргалки по всем номерам ЕГЭ
#⃣ Вся теория для ЕГЭ в одном месте

📱 Теория: #tpy
📺 Видео: #view
💡 Полезное: #useful
🫰 Шпаргалки: #шпора
👨‍🏫 Про универы: #university

📚 Сборники:
#kege #yandex
#reshu #statgrad
#polyakov

📱 Наш YouTube канал
📱 Читайте ДЗЕН канал
📱 Наши Telegram каналы:

🚩 Подготовка к экзамену ЕГЭ:
Информатика ЕГЭ | itpy 👨‍💻

🚩 Здесь выкладываю теорию Python:
Программирование на Python | itpy 💻

🚩 Подготовка к экзамену ОГЭ:
Информатика ОГЭ | itpy 👨‍🏫

🚩 Честные обзоры на IT университеты:
Hey Student! 🎓


🔤🔤 🔤🔤🔤🔤🔤🔤🔤
😶 Автор канала: @ilandroxxy
Please open Telegram to view this post
VIEW IN TELEGRAM
45542
🚩 Разбор этого номера #yandex по информатике #ЕГЭ9
Автор: Калинин А.
Уровень: Средний


🚩 Условие задачи:
Определите количество строк таблицы, для которых одновременно выполняются следующие условия:

1. Удвоенный квадрат минимального из чисел, содержащихся в строке, больше, чем произведение двух других чисел, ни одно из которых не равно максимальному числу
2. В строке содержится хотя бы два одинаковых числа


🚩 Теоретическая справка:
Особенное внимание уделите условию: "ни одно из которых не равно максимальному числу"


👩‍💻 Код решения:
cnt = 0
for s in open('files/9.csv'):
M = sorted([int(x) for x in s.split(',')])

if len(set(M)) < 4:
if (2 * M[0] ** 2) > (M[1] * M[2]):
if M[1] != max(M) and M[2] != max(M):
print(M)
cnt += 1
print(cnt)

# Ответ: 43


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

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


2⃣ for s in open('files/9.csv'):
Открываем файл '9.csv' для чтения и начинаем цикл по каждой строке файла.


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


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


5⃣ if (2 * M[0] ** 2) > (M[1] * M[2]):
Проверяем, выполняется ли неравенство: двойной квадрат первого элемента больше произведения второго и третьего элементов.


6⃣ if M[1] != max(M) and M[2] != max(M):
Проверяем, не является ли максимальный элемент списка среди второго или третьего элементов.


7⃣ print(M)
Если все условия выполнены, выводим список M.


8⃣ cnt += 1
Увеличиваем счётчик cnt на 1, так как мы нашли подходящий список.


0⃣ print(cnt)
По завершении цикла выводим общее количество подходящих списков, хранящихся в cnt.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73❤‍🔥21
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера #yandex по информатике #ЕГЭ5
Автор: Кабанов А
Уровень: Средний


🚩 Условие задачи:
Автомат обрабатывает натуральное число N (1≤N≤255) по следующему алгоритму:

1. Строится восьмибитная двоичная запись числа N.
2. Удаляются средние четыре цифры.
3. Полученное число переводится в десятичную запись и выводится на экран.

Каково наименьшее число, большее 130, которое после обработки автоматом даёт результат 10?


🚩 Теоретическая справка:
Интересная задачка из-за своего "прикольного" среза, ну и метод .zfill(8) не оставит равнодушными!)


👩‍💻 Код решения:
for n in range(130+1, 255+1):
s = f'{n:b}'.zfill(8)
s = s[:2] + s[-2:]
r = int(s, 2)
if r == 10:
print(n)
break

# Ответ: 134


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

1⃣ for n in range(130+1, 255+1):
- Начинаем цикл с числами от 131 до 255 (включительно).


2⃣ s = f'{n:b}'.zfill(8)
- Преобразуем число n в двоичную строку и дополняем её нулями слева до 8 символов.


3⃣ s = s[:2] + s[-2:]
- Извлекаем первые две и последние две цифры двоичной строки и объединяем их.


4⃣ r = int(s, 2)
- Преобразуем получившуюся строку обратно в десятичное число.


5⃣ if r == 10:
- Проверяем, равен ли результат 10.


6⃣ print(n)
- Если условие выполнено, выводим значение n.


7⃣ break
- Завершаем выполнение цикла после нахождения первого подходящего числа.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥541
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор этого номера #yandex по информатике #ЕГЭ8
Автор: Яндекс учебник
Уровень: Простая


🚩 Условие задачи:
Артём составляет пятибуквенные слова из букв своего имени. Он ввёл два правила: не повторять буквы в одном слове и не ставить гласные первыми и последними одновременно.

Сколько таких слов может составить Артём?


🚩 Теоретическая справка:
Обратите внимание на этот if, интересная штука и не самая очевидная.


👩‍💻 Код решения:
from itertools import *
cnt = 0
for p in permutations('Артём'.upper()):
word = ''.join(p)
if not(word[0] in 'АЁ' and word[-1] in 'АЁ'):
cnt += 1
print(cnt)

# Ответ: 108


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

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


2⃣ cnt = 0
- Инициализируется переменная cnt, которая будет использоваться для подсчета количества подходящих перестановок.


3⃣ for p in permutations('Артём'.upper()):
- Запускается цикл for, который проходит по всем возможным перестановкам заглавных букв слова "Артём".


4⃣ word = ''.join(p)
- Перестановка p преобразуется в строку и сохраняется в переменной word.


5⃣ if not(word[0] in 'АЁ' and word[-1] in 'АЁ'):
- Проверяется, начинается ли слово с буквы из множества 'АЁ' и заканчивается ли также на букву из того же множества; если это не так, выполняется следующий шаг.


6⃣ cnt += 1
- Увеличивается счетчик cnt на 1, если условие в предыдущей строке истинно.


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


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9🔥43🤔1
🚩 Разбор номера #yandex по информатике #ЕГЭ8
Автор: Джобс Е.
Уровень: Средний


🚩 Условие задачи:
Катя составляет 5-буквенные слова из букв слова АПРЕЛЬ и упорядочивает их в обратном алфавитном порядке.

Вот начало списка:
1. ЬЬЬЬЬ
2. ЬЬЬЬР
3. ЬЬЬЬП
4. ЬЬЬЬЛ
5. ЬЬЬЬЕ
6. ЬЬЬЬА
7. ЬЬЬРЬ

Сколько слов, оканчивающихся на Ь, запишет Катя, если заполнит список до 387 позиции?



👩‍💻 Код решения:
from itertools import *
n = 0
cnt = 0
for p in product(sorted('АПРЕЛЬ', reverse=True), repeat=5):
word = ''.join(p)
n += 1

if word[-1] == 'Ь':
cnt += 1
print(word)

if n >= 387:
break

print(cnt)

# Ответ: 65


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

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


2⃣ n = 0
- Инициализируется переменная n для подсчета количества сгенерированных комбинаций.


3⃣ cnt = 0
- Инициализируется переменная cnt для подсчета слов, заканчивающихся на букву 'Ь'.


4⃣ for p in product(sorted('АПРЕЛЬ', reverse=True), repeat=5):
- Запускается цикл for, который создает все возможные кортежи длиной 5 из букв слова 'АПРЕЛЬ', отсортированных в обратном порядке.


5⃣ word = ''.join(p)
- Кортеж p преобразуется в строку word.


6⃣ n += 1
- Увеличивается счетчик n на 1, чтобы отслеживать количество проверенных слов.


7⃣ if word[-1] == 'Ь':
- Проверяется, заканчивается ли слово word на букву 'Ь'.


8⃣ cnt += 1
- Увеличивается счетчик cnt, если слово заканчивается на 'Ь'.


0⃣ print(word)
- Выводится слово, если оно заканчивается на 'Ь'.


1⃣0⃣ if n >= 387:
- Проверяется, достигло ли количество проверенных слов значения 387.


1⃣1⃣ break
- Завершается цикл, если количество проверенных слов достигает 387.


1⃣2⃣ print(cnt)
- Выводится общее число слов, заканчивающихся на 'Ь'.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Наша Stepik подборкой задач 😼
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9🔥31🫡11
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор этого номера #yandex по информатике #ЕГЭ8
Автор: Яндекс Учебник
Уровень: Средний


🚩 Условие задачи:
Определите количество пятизначных чисел в 14-ричной системе счисления, в записи которых цифры из набора ABCD не стоят рядом с нечётными цифрами из набора: 13579.


🚩 Теоретическая справка:
Обратите внимание! Что условия, которые требуют замены элементов строки через num = num.replace(x, 'A') необходимо ставить в самом конце программы! Чтобы не повредить все предыдущие условия задач подобного типа.


👩‍💻 Код решения:
from itertools import *
cnt = 0
for p in product('0123456789ABCD', repeat=5):
num = ''.join(p)
if num[0] != '0':
for x in 'ABCD':
num = num.replace(x, 'A')
for x in '13579':
num = num.replace(x, '1')
if '1A' not in num and 'A1' not in num:
cnt += 1
print(cnt)

# Ответ: 217888


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

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


2⃣ cnt = 0
Инициализируем переменную cnt для подсчета количества допустимых комбинаций.


3⃣ for p in product('0123456789ABCD', repeat=5):
Используем функцию product для генерации всех возможных комбинаций длиной 5 из символов '0123456789ABCD'.


4⃣ num = ''.join(p)
Объединяем текущую комбинацию p в строку num.


5⃣ if num[0] != '0':
Проверяем, чтобы первая цифра num не была '0', чтобы избежать некорректных чисел.


6⃣ for x in 'ABCD':
Запускаем цикл, чтобы заменить все символы 'A', 'B', 'C' и 'D' на 'A'.


7⃣ num = num.replace(x, 'A')
Заменяем текущий символ x на 'A' в строке num.


8⃣ for x in '13579':
Запускаем цикл, чтобы заменить все нечетные цифры '1', '3', '5', '7' и '9' на '1'.


0⃣ num = num.replace(x, '1')
Заменяем текущий символ x на '1' в строке num.


🔟 if '1A' not in num and 'A1' not in num:
Проверяем, чтобы строка num не содержала подстроки '1A' или 'A1'.


1⃣1⃣ cnt += 1
Если предыдущая проверка прошла успешно, увеличиваем счетчик cnt на 1.


1⃣2⃣ print(cnt)
Выводим значение cnt, что соответствует количеству допустимых комбинаций.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍3🔥3
🚩🚩 Разбор этого номера #yandex по информатике #ЕГЭ17
Автор: Яндекс Учебник
Уровень: Средний

🚩 Условие задачи:
Определите количество пар элементов последовательности, сумма которых превосходит каждую из сумм соседних пар, при этом все три суммы являются положительными.

В ответе запишите количество найденных пар чисел, затем минимальное из произведений элементов таких пар.

В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Под соседними парами подразумеваются четыре идущих подряд элемента последовательности.


🚩 Теоретическая справка:
Интересный пример, так как нам приходится рассматривать не только пару/тройку символов, как в основных задачах, но сразу 6-ку символов!


👩‍💻 Код решения:
M = [int(s) for s in open('files/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


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

1⃣ M = [int(s) for s in open('files/17.txt')]
- Открывает файл 'files/17.txt', читает его и преобразует каждую строку в целое число, создавая список M.


2⃣ R = []
- Создает пустой список R для хранения результатов, которые удовлетворяют условиям.


3⃣ for i in range(len(M)-5):
- Запускает цикл по элементам списка M, при этом гарантируется, что для каждой итерации хватит шести элементов.


4⃣ x, y, z, w, r, t = M[i:i+6]
- Извлекает шесть подряд идущих элементов из списка M, начиная с позиции i, и присваивает их переменным x, y, z, w, r и t.


5⃣ if (z + w) > (x + y) and (z + w) > (r + t):
- Проверяет, что сумма z и w больше суммы x и y, а также больше суммы r и t.


6⃣ if z + w > 0 and x + y > 0 and r + t > 0:
- Дополнительно проверяет, что каждая из сумм z + w, x + y и r + t больше нуля.


7⃣ R.append(z * w)
- Если условия выполнены, добавляет произведение z и w в список R.


8⃣ print(len(R), min(R))
- Выводит количество элементов в списке R и минимальное значение из этого списка.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍5🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор этого номера #yandex по информатике #ЕГЭ24
Автор: Шастин Л
Уровень: Средний


🚩 Условие задачи:
Текстовый файл состоит из символов A, C, D, F и O.
Определите максимальное количество идущих подряд символов, среди которых не более 5 пар вида согласная + гласная в прилагаемом файле.


🚩 Теоретическая справка:
Чуть более сложная версия прошлой задачи.


👩‍💻 Код решения:
s = open('0. files/24.txt').readline()
s = s.replace('C', 'D').replace('F', 'D')
s = s.replace('O', 'A')
s = s.split('DA')
maxi = 0
for i in range(len(s)-5):
r = 'A' + 'DA'.join(s[i:i+6]) + 'D'
maxi = max(maxi, len(r))
print(maxi)

Ответ: 27


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

1⃣ s = open('24.txt').readline()
Открываем файл '0. files/24.txt' и читаем первую строку.


2⃣ s = s.replace('C', 'D').replace('F', 'D')
Заменяем символы 'C' и 'F' на 'D' во всей строке.


3⃣ s = s.replace('O', 'A')
Заменяем символ 'O' на 'A' во всей строке.


4⃣ s = s.split('DA')
Разделяем строку на подстроки по разделителю 'DA' и сохраняем результат в список.


5⃣ maxi = 0
Инициализируем переменную maxi для хранения максимальной длины найденной строки.


6⃣ for i in range(len(s)-5):
Запускаем цикл по индексам списка s от 0 до длины списка минус 5.


7⃣ r = 'A' + 'DA'.join(si:i+6) + 'D'
Формируем новую строку r, соединяя элементы списка s от текущего индекса i до i+5 с добавлением 'A' в начале и 'D' в конце.


8⃣ maxi = max(maxi, len(r))
Обновляем значение maxi, если длина текущей строки r больше предыдущего значения maxi.


0⃣ print(maxi)
Выводим максимальную длину строки, соответствующую условиям задачи.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Второй канал про теорию Python 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥9541
🚩 Разбор номера #yandex по информатике #ЕГЭ9
Автор: Рогов.А
Уровень:
Сложный

🚩 Условие задачи:
В файле электронной таблицы в каждой строке содержатся шесть натуральных чисел. Определите количество строк таблицы, для которых выполнены оба условия:

в строке хотя бы одно число повторяется дважды (ровно 2 раза);
каждое из повторяющихся дважды (ровно 2 раза) чисел превышает каждое неповторяющееся.


🚩 Теоретическая справка:
Опасная задача потому что автор учитывает ситуацию, когда список uncopied пустой, что может вызывать ошибку при использовании функции max().


👩‍💻 Код решения:
cnt = 0
for s in open('0. files/9.csv'):
M = sorted([int(x) for x in s.split(',')])
copied = [x for x in M if M.count(x) == 2]
uncopied = [x for x in M if M.count(x) == 1]
if len(copied) > 0:
if len(uncopied) == 0:
maxi = 0
else:
maxi = max(uncopied)
if min(copied) > maxi:
cnt += 1
print(cnt)

Ответ: 665


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

1⃣ cnt = 0
- Создаём переменную-счётчик cnt и инициализируем её нулём.
- Будет хранить количество строк, удовлетворяющих условию.


2⃣ for s in open('0. files/9.csv'):
- Открываем файл '0. files/9.csv' для чтения.
- Циклом for перебираем каждую строку s из файла.


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


4⃣ copied = [x for x in M if M.count(x) == 2]
- Создаём список copied с помощью генератора списка.
- Включаем в него элементы x из M, которые встречаются ровно 2 раза (M.count(x) == 2).
- Это будут числа-дубликаты в текущей строке.


5⃣ uncopied = [x for x in M if M.count(x) == 1]
- Аналогично создаём список uncopied.
- Включаем элементы, которые встречаются только 1 раз (M.count(x) == 1).
- Это уникальные числа в текущей строке.


6⃣ if len(copied) > 0:
- Проверяем, есть ли в строке дубликаты (длина списка copied больше 0).
- Если нет, то пропускаем дальнейшие проверки для этой строки.


7⃣ if len(uncopied) == 0:
- Проверяем, есть ли в строке уникальные числа.
- Если уникальных чисел нет (uncopied пуст):


8⃣ maxi = 0
- Устанавливаем maxi (максимальное уникальное число) в 0,
- так как сравнивать будем с минимальным дубликатом.


0⃣ else:
- Если в строке есть уникальные числа:


🔟 maxi = max(uncopied)
- Находим максимальное число среди уникальных и сохраняем в maxi.


1⃣1⃣ if min(copied) > maxi:
- Проверяем условие: минимальное число из дубликатов больше maxi.
- Если условие выполняется:


1⃣2⃣ cnt += 1
- Увеличиваем счётчик подходящих строк на 1.


1⃣3⃣ print(cnt)
- После обработки всех строк выводим итоговое значение счётчика cnt.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥7❤‍🔥442
🚩 Разбор номера #yandex по информатике #ЕГЭ9
Автор: ФИПИ
Уровень: Средний


🚩 Условие задачи:
Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:

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


👩‍💻 Код решения:
cnt = 0
for s in open('0. files/9.csv'):
M = [int(x) for x in s.split(';')]
copied = [x for x in M if M.count(x) == 3]
uncopied = [x for x in M if M.count(x) == 1]
if len(copied) == 3 and len(uncopied) == 3:
if (copied[0] ** 2) * 3 > (sum([x**2 for x in uncopied])):
cnt += 1
print(cnt)

Ответ: 245


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

1⃣ cnt = 0
# Инициализируем счетчик, который будет подсчитывать количество строк с нужными условиями


2⃣ for s in open('0. files/9.csv'):
# Открываем файл и построчно считываем его содержимое в переменную s


3⃣ M = [int(x) for x in s.split(';')]
# Разделяем строку по символу ';', преобразуем элементы в целые числа и создаем список M


4⃣ copied = [x for x in M if M.count(x) == 3]
# Создаем список copied из элементов, которые встречаются в M ровно 3 раза (повторяющиеся элементы)


5⃣ uncopied = [x for x in M if M.count(x) == 1]
# Создаем список uncopied из элементов, которые встречаются в M ровно 1 раз (уникальные элементы)


6⃣ if len(copied) == 3 and len(uncopied) == 3:
# Проверяем, что у нас ровно 3 повторяющихся элемента и 3 уникальных элемента


7⃣ if (copied[0] ** 2) * 3 > (sum([x**2 for x in uncopied])):
# Проверяем условие: квадрат первого повторяющегося элемента, умноженный на 3, больше суммы квадратов всех уникальных элементов


8⃣ cnt += 1
# Если оба условия выполняются, увеличиваем счетчик на 1


0⃣ print(cnt)
# Выводим итоговое значение счетчика


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥3👍2
🚩 Разбор номера задачи #yandex по информатике #ЕГЭ9
Автор: Yandex учебник
Уровень: Базовый


🚩 Условие задачи:
Определите количество строк таблицы, для чисел которых выполнены оба условия:

- в строке есть ровно одно число, которое повторяется дважды, а остальные числа различны;
- максимальное число строки повторяется столько же раз, сколько и минимальное.


👩‍💻 Код решения:
cnt = 0
for s in open('0. files/9.csv'):
M = [int(x) for x in s.split(';')]
copied2 = [x for x in M if M.count(x) == 2]
uncopied = [x for x in M if M.count(x) == 1]
if len(copied2) == 2 and len(uncopied) == 5:
if M.count(max(M)) == M.count(min(M)):
cnt += 1
print(cnt)

Ответ: 349

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

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


2⃣ for s in open('0. files/9.csv'):
Построчно читаем файл '0. files/9.csv'; каждая строка — это строка s.


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


4⃣ copied2 = [x for x in M if M.count(x) == 2]
Создаём список чисел, которые встречаются ровно дважды.


5⃣ uncopied = [x for x in M if M.count(x) == 1]
Создаём список чисел, которые встречаются только один раз.


6⃣ if len(copied2) == 2 and len(uncopied) == 5:
Проверяем, что два различных числа встречаются по два раза, а пять других — по одному разу.


7⃣ if M.count(max(M)) == M.count(min(M)):
Проверяем, что максимальное и минимальное значения в строке встречаются одинаковое количество раз.


8⃣ cnt += 1
Если оба условия выполнены, увеличиваем счётчик подходящих строк на 1.


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


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5🔥41