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

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

💬 Ссылка на чат: t.iss.one/analyst_chat_itpy
Download Telegram
📱 Как легко переводить числа между различными системами счисления: двоичной, восьмеричной и шестнадцатеричной.

2⃣ Двоичная система:
- В Python можно использовать функцию bin(), чтобы получить двоичное представление числа.

- Например, bin(125) возвращает строку '0b1111101', где префикс 0b указывает на двоичную систему.

- Чтобы избавиться от префикса, используйте срез: bin(125)[2:], что даст '1111101'.

- Также можно использовать форматирование строк: f'{125:b}', что также выдаст '1111101'.

- Для обратного преобразования строки в число используйте int('1111101', 2), получив исходное 125.

n = 125
print(bin(n)) # 0b1111101
print(f'{n:b}') # 1111101
print(bin(n)[2:]) # 1111101
print(int('1111101', 2)) # 125



8⃣ Восьмеричная система:
- Используйте функцию oct(), чтобы получить восьмеричное представление.

- oct(125) возвращает '0o175', где 0o обозначает восьмеричную систему.

- Чтобы убрать префикс, используйте срез: oct(125)[2:] даст '175', или форматирование: f'{125:o}', что тоже даст '175'.

- Обратно можно преобразовать с помощью int('175', 8), снова получая 125.

n = 125
print(oct(n)) # 0o175
print(f'{n:o}') # 175
print(oct(n)[2:]) # 175
print(int('175', 8)) # 125



1⃣6⃣ Шестнадцатеричная система:
- Преобразуйте число в шестнадцатеричное, используя hex().

- hex(125) возвращает '0x7d', где 0x указывает на шестнадцатеричную систему.

- Удалите префикс срезом: hex(125)[2:] даст '7d'.

- Используйте f'{125:x}' для малого регистра или f'{125:X}' для большого регистра, чтобы получить '7d' или '7D' соответственно.

- Преобразуйте обратно с помощью int('7d', 16), получив 125.

n = 125
print(hex(n)) # 0x7d
print(f'{n:x}') # 7d
print(f'{n:X}') # 7D
print(hex(n)[2:]) # 7d
print(int('7d', 16)) # 125



Не забудь поделиться этой шпаргалкой с друзьями 😼

Программирование на Python | itpy 💻
Наш второй канал по подготовке к ЕГЭ 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥2👍1
👩‍💻 Мастерим срезы в Python: Изучаем эффективное использование срезов в списках и строках #tpy

🚩 Извлечение подсписка:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
subset = my_list[2:5]
print(subset) # Вывод: [3, 4, 5]

Здесь мы извлекаем подсписок, начиная с индекса 2 и заканчивая индексом 5 (не включая). Это полезно, когда нам нужна определенная часть списка.

🚩 Извлечение каждого второго элемента:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
subset = my_list[1::2]
print(subset) # Вывод: [2, 4, 6, 8, 10]

В этом примере мы извлекаем каждый второй элемент, начиная с индекса 1, то есть все нечетные ИНДЕКСЫ.

🚩 Извлечение обратного порядка списка:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
reverse_list = my_list[::-1]
print(reverse_list) # Вывод: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

Использование среза с отрицательным шагом позволяет нам легко создать список в обратном порядке.

🚩 Извлечение подстроки:
my_string = "Hello, World!"
substring = my_string[7:12]
print(substring) # Вывод: "World"

В данном случае, мы извлекаем подстроку, начиная с индекса 7 и заканчивая индексом 12 (не включая). Это полезно для работы с текстовыми данными.

🚩 Извлечение каждого второго символа:
my_string = "Hello, World!"
substring = my_string[::2]
print(substring) # Вывод: "Hlo ol!"

Использование среза с шагом 2 помогает нам извлекать каждый второй символ из строки.

🚩 Извлечение обратного порядка строки:
my_string = "Hello, World!"
reverse_string = my_string[::-1]
print(reverse_string) # Вывод: "!dlroW ,olleH"

Также, как и в случае с списками, срез с отрицательным шагом позволяет легко получить строку в обратном порядке.

Использование срезов делает код более эффективным и читаемым. Практикуйтесь в их применении, и вы обнаружите, насколько они улучшают ваши навыки работы с данными в Python.

Программирование на Python | itpy 💻
Наш второй канал по подготовке к ЕГЭ 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4🥰3👾3
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Универсальная функция перевода числа из 10-ой системы счисления в b-ую #tpy

При подготовке к ЕГЭ по информатике важно уметь работать с различными системами счисления для таких номеров как 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
📱 Новая рубрика Вопрос/Ответ #useful

Почему метод list.sort() в Python возвращает значение None вместо отсортированного списка?

Ответ: Метод list.sort() изменяет оригинальный список напрямую и возвращает None, чтобы подчеркнуть, что никакой новый список не был создан. Это помогает избежать путаницы между модификацией объекта и созданием его копии.

Если вам необходим новый отсортированный список, рекомендуется использовать функцию sorted(). Она возвращает отсортированный список, не изменяя оригинал.


Информатика ЕГЭ |чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👏3❤‍🔥2🔥1
📱 Разбор регулярных выражений в Python на примере заданий из ЕГЭ по информатике #tpy

Регулярные выражения — мощный инструмент для поиска и анализа текстовых данных. В заданиях ЕГЭ по информатике (задание 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})*'

🔣num — число, начинающееся с 7, 8 или 9 и продолжающееся цифрами 0, 7, 8, 9, либо одиночный ноль.
🔣reg — последовательность таких чисел, разделённых символами - или *.


Пример 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})*'

🔣Заменяются лишние символы на пробелы.
🔣Затем ищутся последовательности, начинающиеся с B, за которой идут цифры от 1 до 6, и операторы - или *.


Пример 3: Подсчёт количества чисел (№ 18285 #kege)
num = r'([1-9][0-9]*)'
reg = rf'{num}([+*]{num})*'

🔣Сначала находятся выражения вида a+b+c.
🔣Затем + и * заменяются на пробелы, и с помощью split() считается количество чисел в выражении.

Пример 4: Сумма выражений (№ 18147 #kege)
num = r'([789]+)'
reg = rf'{num}([+]{num})+'

🔣Ищутся выражения с числами из цифр 7, 8 и 9, соединённые знаком +.
🔣Затем по условию задания с помощью функции eval() находится максимальное значение такого выражения.


🚩 Общие шаблоны для задач ЕГЭ

Определение чисел:
r'([1-9][0-9]*)' - натуральные числа (без ведущих нулей)

r'([0-9]+)' - любые целые числа

r'([789][0789]*)' - числа, начинающиеся с 7,8 или 9


Операции между числами:
([+*]{num})* - повторяющиеся операции + или *

([-+*]{num})* - операции -, + или *


Специальные условия:
Окончание на определенные цифры: [05]

Начало с определенных букв: [AFD]


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

#⃣ Вся теория для ЕГЭ в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Второй канал про теорию 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


📌 Объяснение:

🔣Генератор проверяет, делится ли x хотя бы на одно число в диапазоне.

🔣any() вернет True, если хотя бы одно значение в последовательности — истина.

🔣В примере has_divisor(9) возвращает True, потому что 9 делится на 3.



💡 Кратко:

🔣all() — возвращает True, если все элементы истинны.

🔣any() — возвращает True, если хотя бы один элемент истинен.

🔣Обе функции работают с итерируемыми объектами (списки, генераторы и т. д.) и часто используются в проверках условий.

#⃣ Вся теория для ЕГЭ в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
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']
🙏63🔥3🤩2