Присоединяйтесь к нашему сообществу!
Информатика ЕГЭ | itpy
Программирование на Python | itpy
Информатика ОГЭ | itpy
Hey Student!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥3🐳1
Я вернулся из долгого затишья и снова готов делать для вас полезные и интересные посты, но есть нюанс: старый формат постов был слишком трудозатратным для меня. Поэтому я хочу начать делать короткие и полезные посты по языку Python
Как вы думаете, надолго ли меня хватит??
Программирование на Python | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥13🫡7👍2🎉1
Строки в Python – это один из самых важных типов данных. Они позволяют работать с текстовой информацией, и знание методов работы со строками существенно упростит решение задач на ЕГЭ.
Метод strip() удаляет пробелы (или другие символы) из начала и конца строки. Это полезно для очистки пользовательского ввода.
text = " Привет, мир! "
cleaned_text = text.strip()
print(cleaned_text) # "Привет, мир!"
Эти методы позволяют изменять регистр строки. lower() преобразует строку в нижний регистр, а upper() – в верхний.
text = "ПрIvEt"
print(text.lower()) # "привет"
print(text.upper()) # "ПРИВЕТ"
Метод replace(old, new, count) заменяет подстроку old на new в строке count раз.
text = "Я люблю Python!"
new_text = text.replace("Python", "программирование")
print(new_text) # "Я люблю программирование!"
Метод split(separator) разделяет строку на части по указанному разделителю. Если разделитель не указан, используется пробел.
text = "яблоко груша банан"
fruits = text.split() # по умолчанию разделяет по пробелам
print(fruits) # ['яблоко', 'груша', 'банан']
Метод join(iterable) соединяет элементы списка (или другого итерируемого объекта) в строку с указанным разделителем.
fruits = ['яблоко', 'груша', 'банан']
result = ', '.join(fruits)
print(result) # "яблоко, груша, банан"
Метод find(substring) ищет подстроку в строке и возвращает индекс, с которого начинается первая встреча. Если подстрока не найдена, возвращает -1.
text = "Привет, мир!"
index = text.find("мир")
print(index) # 8
Метод count(substring) возвращает количество вхождений подстроки в строку.
text = "яблоко, груша, яблоко"
count = text.count("яблоко")
print(count) # 2
Эти методы проверяют, начинается ли строка с указанной подстроки или заканчивается ли ею.
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
В 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]
.Программирование на Python | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥5❤🔥2🫡2
Потыкайте этот пример тут:
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
Программирование на Python | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍5❤🔥2🔥2
Функции 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) # Вывод: яблоко, банан, груша
Программирование на Python | itpy
Тут ответы на все вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
3❤🔥6🔥4👍2❤1
В 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
Этот способ также не требует указания имени библиотеки, однако он может сделать код менее очевидным и могут возникнуть конфликты имен с другими библиотеками/фунциями.
Программирование на Python | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥4❤2👍1
Генераторы списков (
list comprehensions
) в Python — это мощный инструмент, который позволяет создавать списки компактным и элегантным способом. В данной статье рассмотрим несколько практических примеров их использования на экзаменах ЕГЭ по информатике.Начнем с простого примера, где мы создадим список из 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)]
В этом примере мы видим, как генераторы списков позволяют сократить количество строк кода и сделать его более читаемым.
Следующий пример продемонстрирует, как с помощью генераторов списков можно фильтровать элементы:
# Все четные элементы
chet = [x for x in M if x % 2 == 0]
# Все нечетные элементы
nechet = [x for x in M if x % 2 != 0]
Такой подход позволяет быстро создавать новые списки на основе условий, что делает код более лаконичным.
С помощью генераторов списков можно также находить элементы, которые имеют копии:
# Элементы, которые имеют копии
copied = [x for x in M if M.count(x) > 1]
# Элементы, которые не имеют копий
not_copied = [x for x in M if M.count(x) == 1]
Самый простой пример использования генераторов списков это создание последовательностей чисел:
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]
Генераторы списков могут также упрощать загрузку и обработку данных из файлов:
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]
Можно использовать генераторы для обработки строк, прочитанных из файла:
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
Уровень: Базовый
Напишите программу, которая находит все уникальные элементы в списке целых чисел, то есть те элементы, которые встречаются в списке только один раз.
На вход программе подается натуральное число n, а затем n целых чисел.
Программа должна вывести все уникальные элементы, каждый на отдельной строке. Если таких элементов нет, выведите "Уникальных элементов нет".
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')
n = int(input())
Считываем с ввода количество чисел, которое пользователь хочет ввести, и преобразуем его в целое число.
M = [int(input()) for _ in range(n)]
Создаем список M, считывая n целых чисел с ввода в цикле, используя списковое выражение.
R = [x for x in M if M.count(x) == 1]
Создаем список R, содержащий только те элементы из M, которые встречаются в списке единожды (то есть уникальные).
if not R:
Проверяем, пустой ли список R (то есть есть ли уникальные элементы).
print("Уникальных элементов нет")
Если список R пуст, выводим сообщение о том, что уникальных элементов нет.
else:
В противном случае, если уникальные элементы присутствуют.
print(*R, sep='\n')
Выводим все уникальные элементы из R, разделяя их символом новой строки.
Делитесь своим вариантами решения в комментариях
Информатика ЕГЭ | itpy
Программирование на Python | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤🔥2👍1
Это строка, содержащая числовые символы, из которых мы будем находить сумму:
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
👍3🥰2❤🔥1
Метод
.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]
Программирование на Python | itpy
Наш второй канал по подготовке к ЕГЭ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5❤3👍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
cnt = 0
- Инициализируется переменная cnt для подсчета количества чисел, удовлетворяющих условиям задачи.
for n in range(100, 1000):
- Цикл for перебирает все трехзначные числа от 100 до 999 включительно.
# if str(n).count('0') == 0:
- Закомментированная строка изначально проверяла, что в числе n нет нулей (аналог).
if '0' not in str(n):
- Проверяется, что число n не содержит цифру '0'.
if all(n % int(x) == 0 for x in str(n)):
- Проверяется, что число n делится на каждую из своих цифр без остатка.
new_n = int(str(n)[::-1])
- Переменная new_n получает значение числа n с цифрами в обратном порядке.
if all(new_n % int(x) == 0 for x in str(new_n)):
- Проверяется, что число new_n также делится на каждую из своих цифр без остатка.
cnt += 1
- Увеличивается счетчик cnt на 1, если оба условия делимости выполняются.
print(cnt)
- Выводится общее количество чисел, удовлетворяющих всем условиям.
Программирование на Python | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤🔥2👍1