This media is not supported in your browser
VIEW IN TELEGRAM
При подготовке к ЕГЭ по информатике важно уметь работать с различными системами счисления для таких номеров как 5 и 14. Сегодня разберем универсальную функцию на Python, которая позволяет перевести число из десятичной системы счисления в любую другую (от 2 до 36).
1. Импортируем необходимые символы:
from string import *
Здесь используются модули digits и ascii_uppercase, чтобы задать доступные символы для различных систем счисления.
2. Образуем строку alphabet:
alphabet = digits + ascii_uppercase
Эта строка содержит все символы, используемые в системах счисления: цифры от 0 до 9 и заглавные английские буквы от A до Z.
3. Основная функция convert:
def convert(n, b):
r = ''
while n > 0:
r += alphabet[n % b]
n //= b
return r[::-1]
Функция convert принимает два параметра: число n в десятичной системе и основание b, в которое его нужно перевести. Внутри цикла проводится деление числа n на основание b с остатком, который используется для получения соответствующего символа из alphabet. Собранные символы переворачиваются в обратном порядке для получения правильного представления числа в новой системе.
4. Примеры использования:
n = 15552
print(convert(n, 2)) # Перевод в двоичную систему
print(convert(n, 8)) # Перевод в восьмеричную систему
print(convert(n, 16)) # Перевод в шестнадцатеричную систему
print(convert(n, 3)) # Перевод в троичную систему
Эти примеры показывают, как использовать функцию для перевода числа 15552 в различные системы счисления.
Более короткий вариант написания этой функции оставлю в комментариях к этому посту, не стесняйтесь ставить реакции на этот пост
Информатика ЕГЭ | itpy
Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5🔥3👍2👨💻1
Почему метод
list.sort()
в Python возвращает значение None
вместо отсортированного списка? Ответ:
Если вам необходим новый отсортированный список, рекомендуется использовать функцию sorted(). Она возвращает отсортированный список, не изменяя оригинал.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👏3❤🔥2🔥1
Регулярные выражения — мощный инструмент для поиска и анализа текстовых данных. В заданиях ЕГЭ по информатике (задание 24) они часто используются для поиска числовых последовательностей по определённому шаблону. Разберём основные приёмы на примерах из реальных задач.
Общая структура большинство решений строится по следующему шаблону:
from re import *
s = open('24.txt').readline()
# num — шаблон отдельного числа
# reg — шаблон всей последовательности
reg = rf'{num}([+*]{num})*'
matches = [x.group() for x in finditer(reg, s)]
maxi = max(len(x) for x in matches)
print(maxi)
Пример 1: Поиск последовательностей чисел от 7, 8, 9, 0 (№ 20813 #kege)
num = r'([789][0789]*|[0])'
reg = rf'{num}([-*]{num})*'
Пример 2: Работа с буквами и диапазоном 1–6 (№ 18619 #kege)
s = s.replace('A', ' ').replace('C', ' ').replace('D', ' ')
num1 = r'[B]([1-6][1-6]*)'
num2 = r'([1-6][1-6]*)'
reg = rf'{num1}([-*]{num2})*'
Пример 3: Подсчёт количества чисел (№ 18285 #kege)
num = r'([1-9][0-9]*)'
reg = rf'{num}([+*]{num})*'
Пример 4: Сумма выражений (№ 18147 #kege)
num = r'([789]+)'
reg = rf'{num}([+]{num})+'
Определение чисел:
r'([1-9][0-9]*)' - натуральные числа (без ведущих нулей)
r'([0-9]+)' - любые целые числа
r'([789][0789]*)' - числа, начинающиеся с 7,8 или 9
Операции между числами:
([+*]{num})* - повторяющиеся операции + или *
([-+*]{num})* - операции -, + или *
Специальные условия:
Окончание на определенные цифры: [05]
Начало с определенных букв: [AFD]
Регулярные выражения - это мощный инструмент, который требует практики. Разбирая подобные задачи, вы лучше поймете их синтаксис и возможности.
Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤🔥3👍2🔥1
all()
и any()
в Python: просто о полезном #tpyВ задачах ЕГЭ (например, в номере 25) часто нужно проверять условия для всех или хотя бы одного элемента из набора. Python предлагает элегантные решения — встроенные функции
all()
и any()
.all()
— Проверка простого числаdef is_prime(x):
if x <= 1:
return False
return all(x % i != 0 for i in range(2, x))
print(is_prime(7)) # Вывод: True
(x % i != 0 for i in range(2, x))
создает последовательность логических значений: True
, если x
не делится на i
, и False
, если делится.all()
возвращает True
, только если все значения в последовательности — истинны.is_prime(7)
вернет True
, так как 7 не делится ни на одно число от 2 до 6 — то есть, это простое число.any()
— Поиск хотя бы одного делителяdef has_divisor(x):
return any(x % i == 0 for i in range(2, x))
print(has_divisor(9)) # Вывод: True
any()
вернет True
, если хотя бы одно значение в последовательности — истина.has_divisor(9)
возвращает True, потому что 9 делится на 3.💡 Кратко:
all()
— возвращает True, если все элементы истинны.any()
— возвращает True, если хотя бы один элемент истинен.Please open Telegram to view this post
VIEW IN TELEGRAM
❤2❤🔥2👍2🔥2
Давненько не было викторин!
Что выведет этот код?
Что выведет этот код?
Anonymous Quiz
7%
['B', 'C', 'D', 'A']
36%
['A', 'B', 'C', 'D']
49%
['A', 'BCD']
7%
['BCD', 'A']
🙏6❤3🔥3🤩2
Пару слов об авторе канала, давайте знакомиться!
Информатика ЕГЭ | itpy
Программирование на Python | itpy
Информатика ОГЭ | itpy
Hey Student!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3🎉2🫡2