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

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

💬 Ссылка на чат: t.me/analyst_chat_itpy
Download Telegram
🐍 Все методы строк в Python, которые понадобятся на ЕГЭ #tpy 

Строки в Python – это один из самых важных типов данных. Они позволяют работать с текстовой информацией, и знание методов работы со строками существенно упростит решение задач на ЕГЭ.

1⃣ .strip()
Метод strip() удаляет пробелы (или другие символы) из начала и конца строки. Это полезно для очистки пользовательского ввода.
text = "  Привет, мир!  "
cleaned_text = text.strip()
print(cleaned_text) # "Привет, мир!"



2⃣ .lower() и .upper()
Эти методы позволяют изменять регистр строки. lower() преобразует строку в нижний регистр, а upper() – в верхний.
text = "ПрIvEt"
print(text.lower()) # "привет"
print(text.upper()) # "ПРИВЕТ"



3⃣ .replace()
Метод replace(old, new, count) заменяет подстроку old на new в строке count раз.
text = "Я люблю Python!"
new_text = text.replace("Python", "программирование")
print(new_text) # "Я люблю программирование!"



4⃣ .split()
Метод split(separator) разделяет строку на части по указанному разделителю. Если разделитель не указан, используется пробел.
text = "яблоко груша банан"
fruits = text.split() # по умолчанию разделяет по пробелам
print(fruits) # ['яблоко', 'груша', 'банан']



5⃣ .join()
Метод join(iterable) соединяет элементы списка (или другого итерируемого объекта) в строку с указанным разделителем.
fruits = ['яблоко', 'груша', 'банан']
result = ', '.join(fruits)
print(result) # "яблоко, груша, банан"



6⃣ .find()
Метод find(substring) ищет подстроку в строке и возвращает индекс, с которого начинается первая встреча. Если подстрока не найдена, возвращает -1.
text = "Привет, мир!"
index = text.find("мир")
print(index) # 8



7⃣ .count()
Метод count(substring) возвращает количество вхождений подстроки в строку.
text = "яблоко, груша, яблоко"
count = text.count("яблоко")
print(count) # 2



8⃣ .startswith() и .endswith()
Эти методы проверяют, начинается ли строка с указанной подстроки или заканчивается ли ею.
text = "Привет, мир!"
print(text.startswith("Привет")) # True
print(text.endswith("мир!"))   # True


Практикуйтесь в использовании этих методов, чтобы запомнить синтаксис и логику работы с ними. Удачи в подготовке!

Программирование на Python | itpy 💻
Please open Telegram to view this post
VIEW IN TELEGRAM
2🎉6🔥2👏2🆒2
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Генераторы списков (списочные выражения) для ЕГЭ #tpy

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

# Создание списка квадратов четных чисел от 0 до 9
even_squares = [x**2 for x in range(10) if x % 2 == 0]

# Вывод результатов
print(even_squares)

В этом примере if x % 2 == 0 добавляет в список только квадраты четных чисел, создавая список [0, 4, 16, 36, 64].


🚩 Более подробную информацию про генераторы списков вы можете изучить в нашей статье на Notion


Программирование на Python | itpy 💻
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥5❤‍🔥2🫡2
👩‍💻 Шпаргалка по генераторам списков #tpy

Потыкайте этот пример тут:
numbers = [3, 4, 2, 7, 2, 3, 8, 3, 1, 9]
A = [x**2 for x in numbers if x % 2 == 0]
print(A) # [16, 4, 4, 64]

B = [x**2 if x % 2 == 0 else x ** 3 for x in numbers]
print(B) # [27, 16, 4, 343, 4, 27, 64, 27, 1, 729]


Программирование на Python | itpy 💻
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤‍🔥4🔥3
Media is too big
VIEW IN TELEGRAM
🐍 4 сайта, которые помогут тебе стать программистом #useful

1⃣ Harvard CS50
2⃣ LeetCode
3⃣ CodeWars
4⃣ Wargames

📱 Источник видео: Свят404

Программирование на Python | itpy 💻
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍5❤‍🔥2🔥2
📱 Давайте рассмотрим две полезные функции в Python: split() и join() #tpy
Функции split() и join() в Python являются мощными инструментами для работы со строками. split() позволяет разбивать строки на части, а join() — объединять их обратно. Поговорим о них подробнее 👇



🚩 Функция split()
Функция split() используется для разделения строки на части, создавая список. По умолчанию строка разбивается по пробелам, но вы также можете указать другой разделитель.
string.split(separator, maxsplit)

separator (необязательный) — строка-разделитель.
maxsplit (необязательный) — количество разделений, которое нужно выполнить.


Пример 1: Разделение по пробелам
text = "Привет, мир! Как дела?"
words = text.split() # Разделяем строку по пробелам
print(words) # Вывод: ['Привет,', 'мир!', 'Как', 'дела?']


Пример 2: Разделение по заданному разделителю
data = "яблоко;банан;груша"
fruits = data.split(';') # Разделяем строку по символу ";"
print(fruits) # Вывод: ['яблоко', 'банан', 'груша']



🚩 Функция join()
Функция join() объединяет элементы списка в строку, используя заданный разделитель.
separator.join(iterable)

separator — строка, которая будет использоваться в качестве разделителя.
iterable — любой объект, поддерживающий итерацию (как правило, это список или кортеж).


Пример 1: Объединение списка слов
words = ['Привет,', 'мир!', 'Как', 'дела?']
sentence = ' '.join(words) # Объединяем слова с пробелом
print(sentence) # Вывод: Привет, мир! Как дела?


Пример 2: Объединение списка с заданным разделителем
fruits = ['яблоко', 'банан', 'груша']
result = ', '.join(fruits) # Объединяем фрукты через запятую и пробел
print(result) # Вывод: яблоко, банан, груша



Программирование на Python | itpy 💻
Тут ответы на все вопросы
🖥
Please open Telegram to view this post
VIEW IN TELEGRAM
3❤‍🔥6🔥4👍21
📱 Способы подключения библиотек в Python #tpy

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


1⃣ Импортирование библиотеки целиком:
Самый базовый способ — это просто импортировать библиотеку с помощью команды import. Например, мы можем подключить стандартную библиотеку math, чтобы использовать ее функции:

import math  # Импортируем библиотеку math
print(math.sqrt(16)) # Вывод: 4.0

Этот метод требует, чтобы мы каждый раз указывали название библиотеки перед использованием ее функций, что может быть неудобно в больших проектах.



2⃣ Псевдонимы для библиотек:
Чтобы сделать код более кратким и читаемым, можно использовать псевдонимы. Это достигается с помощью ключевого слова as. Вот как это делается:

import math as m  # Импортируем библиотеку math с псевдонимом m
print(m.sqrt(16)) # Вывод: 4.0

Теперь мы можем обращаться к функциям библиотеки math через m, что упрощает написание кода.



3⃣ Импортирование конкретных функций:
Если вам нужны только несколько функции из библиотеки, вы можете импортировать их напрямую. Это не только делает код более аккуратным, но и может немного оптимизировать использование памяти:

from math import sqrt, pow, gcd  # Импортируем только нужные функции
print(sqrt(16)) # Вывод: 4.0

Таким образом, вы избегаете повторного указания названия библиотеки.



4⃣ Импортирование всех функций:
Если вам нужно использовать все функции из библиотеки, вы можете импортировать их с помощью *:

from math import *  # Импортируем все функции из библиотеки math
print(sqrt(16)) # Вывод: 4.0

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



Программирование на Python | itpy 💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥42👍1
📱 Примеры полезных генераторов списков в Python #tpy

Генераторы списков (list comprehensions) в Python — это мощный инструмент, который позволяет создавать списки компактным и элегантным способом. В данной статье рассмотрим несколько практических примеров их использования на экзаменах ЕГЭ по информатике.


1⃣ Генерация случайных чисел
Начнем с простого примера, где мы создадим список из 10 случайных чисел:
from random import randint

# Старый способ создания списка
M = []
for i in range(10):
M.append(randint(0, 100))


# Способ создания списка через генератор:
M = [randint(0, 100) for i in range(10)]

В этом примере мы видим, как генераторы списков позволяют сократить количество строк кода и сделать его более читаемым.


2⃣ Фильтрация четных и нечетных чисел
Следующий пример продемонстрирует, как с помощью генераторов списков можно фильтровать элементы:
# Все четные элементы
chet = [x for x in M if x % 2 == 0]

# Все нечетные элементы
nechet = [x for x in M if x % 2 != 0]

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


3⃣ Поиск элементов с дубликатами
С помощью генераторов списков можно также находить элементы, которые имеют копии:
# Элементы, которые имеют копии
copied = [x for x in M if M.count(x) > 1]

# Элементы, которые не имеют копий
not_copied = [x for x in M if M.count(x) == 1]



4⃣ Генерация последовательностей
Самый простой пример использования генераторов списков это создание последовательностей чисел:
M = [x for x in range(10)]
print(M) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

M = [x ** 2 for x in range(10)]
print(M) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

M = [x ** 2 for x in range(10) if x % 2 == 0]
print(M) # [0, 4, 16, 36, 64]



5⃣ Чтение данных из файла
Генераторы списков могут также упрощать загрузку и обработку данных из файлов:
M = [int(x) for x in open('17.txt')]

# Находим трехзначные числа с последней цифрой 3
D = [x for x in M if abs(x) % 10 == 3 and len(str(abs(x))) == 3]



6⃣ Обработка строк из файла
Можно использовать генераторы для обработки строк, прочитанных из файла:
for s in open('9.txt'):
M = [int(x) for x in s.split()]



Программирование на Python | itpy 💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4🔥3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
😼 Разбор Python задачки на списки #list
Уровень: Базовый


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


🚩 Формат входных данных:
На вход программе подается натуральное число n, а затем n целых чисел.


🚩 Формат выходных данных:
Программа должна вывести все уникальные элементы, каждый на отдельной строке. Если таких элементов нет, выведите "Уникальных элементов нет".


🚩 Пример Input/Output данных:
Sample Input:
5
3
3
2
1
4

Sample Output:
2
1
4


👩‍💻 Код решения:
n = int(input())
M = [int(input()) for _ in range(n)]

R = [x for x in M if M.count(x) == 1]

if not R:
print("Уникальных элементов нет")
else:
print(*R, sep='\n')



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

1⃣ n = int(input())
Считываем с ввода количество чисел, которое пользователь хочет ввести, и преобразуем его в целое число.


2⃣ M = [int(input()) for _ in range(n)]
Создаем список M, считывая n целых чисел с ввода в цикле, используя списковое выражение.


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


4⃣ if not R:
Проверяем, пустой ли список R (то есть есть ли уникальные элементы).


5⃣ print("Уникальных элементов нет")
Если список R пуст, выводим сообщение о том, что уникальных элементов нет.


6⃣ else:
В противном случае, если уникальные элементы присутствуют.


7⃣ print(*R, sep='\n')
Выводим все уникальные элементы из R, разделяя их символом новой строки.


Делитесь своим вариантами решения в комментариях 👇

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

Это строка, содержащая числовые символы, из которых мы будем находить сумму:
s = '12345'



1⃣ Вариант 1:
summa1 = 0
for x in s:
summa1 += int(x)
print(summa1) # 15

В этом варианте мы используем цикл for, чтобы пройти по каждому символу строки s. Каждый символ преобразуем в число с помощью int(x) и добавляем его к общей сумме summa1.


2⃣ Вариант 2:
summa2 = 0
for i in range(0, 10):
summa2 += s.count(str(i)) * i
print(summa2) # 15

Здесь мы использовали метод count для подсчета количества вхождений каждой цифры от 0 до 9 в строке s. Умножаем количество вхождений на само число и добавляем к summa2.


3⃣ Вариант 3:
summa3 = sum(map(int, s))
print(summa3) # 15

Этот способ применяет функцию map, чтобы преобразовать каждый символ строки s в число. Используя sum, мы находим сумму всех чисел. Это краткий и эффективный способ.


4⃣ Вариант 4:
summa4 = sum([int(x) for x in s])
print(summa4) # 15

Здесь используется генератор списка для создания нового списка, где каждый элемент — это числовое значение символа из s. Затем с помощью sum находим сумму элементов списка.

Альтернативно, в этой версии можно добавить проверку if, чтобы убедиться, что символы являются цифрами:
summa4 = sum([int(x) for x in s if x.isdigit()])

Это делает код более безопасным на случай, если в строке s присутствуют нечисловые символы.


⤵️ Поделитесь этим постом с друзьями, чтобы все узнали о этих простых способах подсчета суммы чисел в строке💪💪

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


🚩 .APPEND()

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


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



🚩 .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]
print(my_list.count(2)) # Вывод: 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]
print(my_list.index(2)) # Вывод: 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]



Программирование на Python | itpy 💻
Наш второй канал по подготовке к ЕГЭ 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥53👍2
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Нашел интересную задачку от ИИ Яндекса с из сборника по подготовке к ЕГЭ
Автор: Яндекс учебник
Уровень: Средний


🚩 Условие задачи:
Существуют числа, обладающие свойствами:

1. Число делится на все свои цифры;
2. Число, полученное из данного числа записью цифр в обратном порядке, тоже делится на все свои цифры.

Примером такого числа является 216. Сколько существует трёхзначных чисел, без нулей в записи, обладающих этими свойствами?


🚩 Теоретическая справка:
Считаю такую задачу весьма интересной для практики программирования, да тут нет ничего похожего с задачами ФИПИ, но практика дает нам много ценного опыта.


👩‍💻 Код решения:
cnt = 0
for n in range(100, 1000):
# if str(n).count('0') == 0:
if '0' not in str(n):
if all(n % int(x) == 0 for x in str(n)):
new_n = int(str(n)[::-1])
if all(new_n % int(x) == 0 for x in str(new_n)):
cnt += 1
print(cnt)

# Ответ: 16


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

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


2⃣ for n in range(100, 1000):
- Цикл for перебирает все трехзначные числа от 100 до 999 включительно.


3⃣ # if str(n).count('0') == 0:
- Закомментированная строка изначально проверяла, что в числе n нет нулей (аналог).


4⃣ if '0' not in str(n):
- Проверяется, что число n не содержит цифру '0'.


5⃣ if all(n % int(x) == 0 for x in str(n)):
- Проверяется, что число n делится на каждую из своих цифр без остатка.


6⃣ new_n = int(str(n)[::-1])
- Переменная new_n получает значение числа n с цифрами в обратном порядке.


7⃣ if all(new_n % int(x) == 0 for x in str(new_n)):
- Проверяется, что число new_n также делится на каждую из своих цифр без остатка.


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


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


Программирование на Python | itpy 💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤‍🔥2👍1
📱 Как легко переводить числа между различными системами счисления: двоичной, восьмеричной и шестнадцатеричной.

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