Forwarded from Test ОГЭ | itpy 👨💻
Множества — это неупорядоченные коллекции уникальных элементов. Они полезны для хранения элементов без дублирования и для выполнения операций над множествами, таких как объединение, пересечение и разность. Давайте рассмотрим основы множеств в Python.
# Создание пустого множества
my_set = set()
# Создание множества с элементами
my_set = {1, 2, 3, 4, 5}
# Пример множества со строками
fruits = {"apple", "banana", "cherry"}
# Добавление элемента в множество
my_set.add(6)
print(my_set) # {1, 2, 3, 4, 5, 6}
# Удаление элемента из множества
my_set.remove(3)
print(my_set) # {1, 2, 4, 5, 6}
# Проверка наличия элемента в множестве
print(4 in my_set) # True
print(10 in my_set) # False
Множества в Python — мощный инструмент для работы с уникальными данными и выполнения различных операций над ними.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
Множества в Python поддерживают множество операций, таких как объединение, пересечение, разность и симметрическая разность. Давайте рассмотрим их подробнее.
Объединение возвращает множество, содержащее все элементы обоих множеств.
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)
print(union_set) # {1, 2, 3, 4, 5}
Пересечение возвращает множество, содержащее только общие элементы обоих множеств.
intersection_set = set1.intersection(set2)
print(intersection_set) # {3}
Разность возвращает множество, содержащее элементы, которые есть в первом множестве, но отсутствуют во втором.
difference_set = set1.difference(set2)
print(difference_set) # {1, 2}
Симметрическая разность возвращает множество, содержащее элементы, которые присутствуют в одном из множеств, но не в обоих.
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set) # {1, 2, 4, 5}
Эти операции помогают эффективно работать с множествами и управлять уникальными данными.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
Пару слов об авторе канала, давайте знакомиться!
#kege #yandex
#reshu #statgrad
#polyakov
Информатика ЕГЭ | itpy
Программирование на Python | itpy
Информатика ОГЭ | itpy
Hey Student!
Please open Telegram to view this post
VIEW IN TELEGRAM
4 5 5 4❤2
reversed()
#tpyНе забудь сохранить и отправить другу
Информатика ЕГЭ | itpy
Второй канал про теорию Python
Please open Telegram to view this post
VIEW IN TELEGRAM
3 7 6 3
Кстати, статью с полезными библиотеками для ЕГЭ я уже публиковал. Оставлю ссылку на нее:
– Список полезных библиотек для успешной сдачи ЕГЭ по информатике.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
2 8 5 3 1
This media is not supported in your browser
VIEW IN TELEGRAM
Потыкайте этот пример тут:
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]
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
3 9 5 4
Функции split() и join() в Python являются мощными инструментами для работы со строками. split() позволяет разбивать строки на части, а join() — объединять их обратно. Поговорим о них подробнее👇
Функция
split()
используется для разделения строки на части, создавая список. По умолчанию строка разбивается по пробелам, но вы также можете указать другой разделитель.string.split(separator, maxsplit)
separator (необязательный) — строка-разделитель.
maxsplit (необязательный) — количество разделений, которое нужно выполнить.
Пример 1: Разделение по пробелам
text = "Привет, мир! Как дела?"
words = text.split() # Разделяем строку по пробелам
print(words) # Вывод: ['Привет,', 'мир!', 'Как', 'дела?']
Пример 2: Разделение по заданному разделителю
data = "яблоко;банан;груша"
fruits = data.split(';') # Разделяем строку по символу ";"
print(fruits) # Вывод: ['яблоко', 'банан', 'груша']
Функция
join()
объединяет элементы списка в строку, используя заданный разделитель.separator.join(iterable)
separator — строка, которая будет использоваться в качестве разделителя.
iterable — любой объект, поддерживающий итерацию (как правило, это список или кортеж).
Пример 1: Объединение списка слов
words = ['Привет,', 'мир!', 'Как', 'дела?']
sentence = ' '.join(words) # Объединяем слова с пробелом
print(sentence) # Вывод: Привет, мир! Как дела?
Пример 2: Объединение списка с заданным разделителем
fruits = ['яблоко', 'банан', 'груша']
result = ', '.join(fruits) # Объединяем фрукты через запятую и пробел
print(result) # Вывод: яблоко, банан, груша
Азим вкатывается в IT | itpy 💻
Тут ответы на все вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
3 9 5 3
Forwarded from Программирование на Python | itpy 💻
В Python существует несколько удобных способов подключения библиотек и модулей, что делает код более гибким и удобным для чтения. Давайте рассмотрим основные из них.
Самый базовый способ — это просто импортировать библиотеку с помощью команды import. Например, мы можем подключить стандартную библиотеку math, чтобы использовать ее функции:
import math # Импортируем библиотеку math
print(math.sqrt(16)) # Вывод: 4.0
Этот метод требует, чтобы мы каждый раз указывали название библиотеки перед использованием ее функций, что может быть неудобно в больших проектах.
Чтобы сделать код более кратким и читаемым, можно использовать псевдонимы. Это достигается с помощью ключевого слова as. Вот как это делается:
import math as m # Импортируем библиотеку math с псевдонимом m
print(m.sqrt(16)) # Вывод: 4.0
Теперь мы можем обращаться к функциям библиотеки math через m, что упрощает написание кода.
Если вам нужны только несколько функции из библиотеки, вы можете импортировать их напрямую. Это не только делает код более аккуратным, но и может немного оптимизировать использование памяти:
from math import sqrt, pow, gcd # Импортируем только нужные функции
print(sqrt(16)) # Вывод: 4.0
Таким образом, вы избегаете повторного указания названия библиотеки.
Если вам нужно использовать все функции из библиотеки, вы можете импортировать их с помощью *:
from math import * # Импортируем все функции из библиотеки math
print(sqrt(16)) # Вывод: 4.0
Этот способ также не требует указания имени библиотеки, однако он может сделать код менее очевидным и могут возникнуть конфликты имен с другими библиотеками/фунциями.
Азим вкатывается в IT | itpy 💻
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
3❤🔥10👍5🔥3
Это строка, содержащая числовые символы, из которых мы будем находить сумму:
s = '12345'
summa1 = 0
for x in s:
summa1 += int(x)
print(summa1) # 15
В этом варианте мы используем цикл
for
, чтобы пройти по каждому символу строки s
. Каждый символ преобразуем в число с помощью int(x)
и добавляем его к общей сумме summa1
.summa2 = 0
for i in range(0, 10):
summa2 += s.count(str(i)) * i
print(summa2) # 15
Здесь мы использовали метод
count
для подсчета количества вхождений каждой цифры от 0 до 9 в строке s
. Умножаем количество вхождений на само число и добавляем к summa2
.summa3 = sum(map(int, s))
print(summa3) # 15
Этот способ применяет функцию map, чтобы преобразовать каждый символ строки s в число. Используя sum, мы находим сумму всех чисел. Это краткий и эффективный способ.
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
Forwarded from Программирование на Python | itpy 💻
Метод
.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()
изменяет порядок элементов в списке на обратный. Пример: 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()
возвращает количество вхождений заданного элемента в список. Пример:my_list = [1, 2, 2, 3, 4, 2]
print(my_list.count(2)) # Вывод: 3
Метод .
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()
возвращает индекс первого вхождения заданного элемента в списке. Пример:my_list = [1, 2, 3, 2, 4]
print(my_list.index(2)) # Вывод: 1
Метод
.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]
Азим вкатывается в IT | itpy 💻
Наш второй канал по подготовке к ЕГЭ
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Если у вас нет полного понимания того, как работает функция enumerate в Python, то давайте разберемся вместе. Метод enumerate() добавляет счетчик к элементам итерируемого объекта и возвращает объект типа enumerate. Этот объект содержит пары значений: индекс элемента и сам элемент из исходного списка.
Одним из главных преимуществ использования метода enumerate является возможность преобразования объектов типа enumerate в список или кортеж с помощью методов
list()
и tuple()
соответственно. Это облегчает работу с индексами элементов списка и упрощает процесс перебора элементов в цикле.Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7 3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Обработка исключений играет важную роль в программировании, так как ошибки могут привести к непредсказуемым последствиям и прерыванию работы скрипта.
Одним из способов обработки исключений в Python является конструкция try-except. Она позволяет выполнить определенный код в блоке try, и если во время его выполнения возникает ошибка, перехватить и обработать эту ошибку в блоке except.
Пример использования:
try:
# уязвимая функция
except Exception as e:
print(f"Произошла ошибка: {e}")
# код обработки ошибки
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤🔥2 2
Forwarded from Программирование на Python | itpy 💻
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.
Азим вкатывается в IT | itpy 💻
Наш второй канал по подготовке к ЕГЭ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7 3 3
Forwarded from Программирование на Python | itpy 💻
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
❤🔥33🔥10👍7 6
Forwarded from Программирование на Python | itpy 💻
Регулярные выражения — мощный инструмент для поиска и анализа текстовых данных. В заданиях ЕГЭ по информатике (задание 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
4❤7🔥3👍2
Forwarded from Программирование на Python | itpy 💻
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
❤🔥9 3 2
Ответ:
В Python блок else после цикла for или while выполняется только в том случае, если цикл завершился нормально, то есть без использования break.
➡Программирование на Python | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤🔥10👍4🔥3 2
string
в Python #tpyПри работе со строками часто возникает задача: определить, к какой категории символов относится тот или иной символ — цифра ли это, буква, знак пунктуации и т.д.
✅ Помимо методов
isdigit()
, isalpha()
, использования Unicode (ord()) и регулярных выражений, Python предлагает более удобный способ — строковые константы встроенного модуля string
.📚 Примеры полезных констант:
import string
print(string.digits)
# Цифры: 0123456789
print(string.ascii_letters)
# Все английские буквы: abc...XYZ
print(string.ascii_lowercase)
# Только строчные: abc...
print(string.ascii_uppercase)
# Только заглавные: ABC...
print(string.punctuation)
# Знаки препинания: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
🔣 Нужно фильтровать или валидировать ввод🔣 Писать генераторы случайных паролей🔣 Проверять состав строки без использования регулярных выражений
s = "Hello123!"
letters_only = [ch for ch in s if ch in string.ascii_letters]
print(letters_only) # ['H', 'e', 'l', 'l', 'o']
Кроме вышеупомянутых, модуль string содержит и другие полезные объекты, включая
string.whitespace
, string.printable
и даже шаблонные классы для форматирования.docs.python.org/3/library/string.html
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8 4🔥3
Это строка, содержащая числовые символы, из которых мы будем находить сумму:
s = '12345'
summa1 = 0
for x in s:
summa1 += int(x)
print(summa1) # 15
В этом варианте мы используем цикл
for
, чтобы пройти по каждому символу строки s
. Каждый символ преобразуем в число с помощью int(x)
и добавляем его к общей сумме summa1
.summa2 = 0
for i in range(0, 10):
summa2 += s.count(str(i)) * i
print(summa2) # 15
Здесь мы использовали метод
count
для подсчета количества вхождений каждой цифры от 0 до 9 в строке s
. Умножаем количество вхождений на само число и добавляем к summa2
.summa3 = sum(map(int, s))
print(summa3) # 15
Этот способ применяет функцию map, чтобы преобразовать каждый символ строки s в число. Используя sum, мы находим сумму всех чисел. Это краткий и эффективный способ.
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
присутствуют нечисловые символы.Please open Telegram to view this post
VIEW IN TELEGRAM
4❤🔥9 4🤯3
Срезы (slices) - это мощный инструмент в Python, позволяющий взять часть списка или строки, указав, что именно тебе нужно.
Общий вид срезов в Python:
A[начало:конец:шаг]
начало
— индекс, С КОТОРОГО начинаем (включается).конец
— индекс, ДО КОТОРОГО берём (не включается).шаг
— через сколько берём элементы (по умолчанию 1).s = "информатика"
print(s[0:5]) # 'инфор' (с 0 по 4 индекс)
print(s[::-1]) # 'акитамрофни' (разворот строки)
print(s[2:7]) # 'форма' (с 2 по 6 индекс)
print(s[:4]) # 'инфо' (с начала до 3 индекса)
print(s[-4:]) # 'тика' (последние 4 буквы)
print(s[::2]) # 'ифрмата' (каждая вторая буква)
nums = [4, 8, 15, 16, 23, 42]
print(nums[1:4]) # [8, 15, 16] (с 1 по 3 индекс)
print(nums[-3:]) # [16, 23, 42] (последние 3 элемента)
print(nums[:3]) # [4, 8, 15] (первые 3 элемента)
print(nums[::-1]) # [42, 23, 16, 15, 8, 4] (разворот списка)
print(nums[::2]) # [4, 15, 23] (каждый второй элемент)
а также 13, 14, 17 и других номерах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤🔥5🔥4 2