Если раньше для подстановки переменных в строку мы писали:
"Привет, {}!".format(name)то теперь с f-строками можно проще:
name = "Андрей"
print(f"Привет, {name}!") # Привет, Андрей!
a = 5
b = 3
print(f"{a} + {b} = {a + b}") # 5 + 3 = 8
user = "Андрей"
action = "покупка"
log = f"Пользователь {user} зашел на сайт и выполнил действие: {action}"
print(log) # Пользователь Андрей зашел на сайт и выполнил действие: покупка
Чтобы использовать
f-строку, ставь f перед кавычками и указывай переменные в {}.Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥2❤🔥1🥰1
Python! #tpy1️⃣ upper() - переводит строку в верхний регистр.
"hello".upper() → "HELLO"2️⃣ lower() - переводит строку в нижний регистр.
"HELLO".lower() → "hello"3️⃣ capitalize() - делает первую букву заглавной.
"hello".capitalize() → "Hello"4️⃣ title() - каждое слово с заглавной буквы.
"hello world".title() → "Hello World"5️⃣ strip() - удаляет пробелы с обоих концов.
"hello".strip() → "hello"6️⃣ lstrip() / rstrip() - удаляет пробелы слева/справа.7️⃣ replace(old, new) - заменяет подстроку.
"abc".replace("a", "x") → "xbc"8️⃣ split(sep) - разбивает строку по разделителю.
"a,b,c".split(",") → ["a", "b", "c"]0⃣ join(list) - собирает строку из списка.
",".join(["a", "b", "c"]) → "a,b,c"🔟 startswith(str) / endswith(str) - проверяет начало/конец строки.
"hello".startswith("he") → True1️⃣ 1️⃣ find(sub) - ищет подстроку и возвращает индекс.
"hello".find("ll") → 21️⃣ 2️⃣ count(sub) - считает количество вхождений.
"hello".count("l") → 21️⃣ 3️⃣ isdigit() - проверяет, состоит ли строка из цифр.
"123".isdigit() → True1️⃣ 4️⃣ isalpha() - проверяет, только ли буквы.
"abc".isalpha() → True1️⃣ 5️⃣ isalnum() - буквы или цифры без пробелов.
"a1".isalnum() → True1️⃣ 6️⃣ islower() / isupper() - проверяет регистр.1️⃣ 7️⃣ zfill(width) - дополняет нулями слева.
"7".zfill(3) → "007"1️⃣ 8️⃣ format() - подставляет значения в строку.
"{}".format(5) → "5"1️⃣ 0⃣ f-строки (Python 3.6+) - удобный формат.
f"{5}" → "5"2️⃣ 0️⃣ in – проверка наличия подстроки.
"a" in "abc" → True
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5🔥2🤩1
Срезы (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
❤🔥2🔥2
eval() в Python #tpy📓 Многие сталкиваются с задачами, где нужно вычислить выражение, заданное в виде строки, например:
"2+3*4" или " (10 - 3) ** 2".eval()Она "преобразует" строку в код и выполняет его, возвращая результат.
expression = "2+3*4"
result = eval(expression)
print(result) # Выведет 14
expression = " (10 - 3) ** 2"
result = eval(expression)
print(result) # Выведет 49
expression = "( 2+3*4 ) * 3"
result = eval(expression)
print(result) # Выведет 42
⚠️ Важно помнить: eval() — мощный инструмент, но его использование опасно, если строка содержит неподтвержденный или вредоносный код.
На экзамене обычно не проблема, а в реальной разработке лучше избегать eval() без необходимости.✔️ В контексте ЕГЭ eval() помогает быстро выполнять вычисления из строковых выражений, что удобно при решении задачи под номером 24.
eval() — ваш быстрый помощник, но применять его нужно с осторожностью!Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3
В Python строки сравниваются лексикографически (по алфавиту), символ за символом, слева направо, пока не найдётся различие.
print("abc" < "abd") # True - 'c' < 'd'
print("apple" < "banana") # True - 'a' < 'b'
print("abc" < "abcd") # True - вторая строка длиннее при одинаковом началеprint("A" < "a") # True - заглавные буквы идут перед строчными
print("Python" < "python") # True# print("10" < 5) # ОШИБКА TypeError - нельзя сравнивать строку с числом
print("10" < "5") # True - сравнивается первый символ '1' < '5'print("ё" > "е") # True - буква 'ё' в Unicode идёт после 'е'
print("💻" > "A") # True - эмодзи имеют большие кодыprint("abc" == "abc") # True - полное совпадение
print("abc" < "abcd") # True - одинаковое начало, но вторая длиннееprint("Python".lower() == "python".lower()) # True📎 Важно: == проверяет точное равенство, а <, >, <=, >= работают по алфавитному порядку.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤🔥2👍1
range(10**9) почти не занимает памяти? #tpyrange() хранит только начальное, конечное значения и шаг. Он не создает список всех чисел сразу, а генерирует числа по мере необходимости!
range(10**9) в памяти хранится лишь небольшая информация: - старт (по умолчанию 0)
- финиш (10^9)
- шаг (по умолчанию 1)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3👍3🔥2🥰1
else после for или while в Python? #useful Блок else выполняется только если цикл завершился без использования break.
🔹 Почему это удобно?:
Например, при поиске элемента в списке:
- Если элемент найден — срабатывает break, и блок else пропускается.
- Если элемент не найден — цикл завершится нормально, и else выполнится, позволяя обработать ситуацию.
# Поиск элемента в списке
numbers = [1, 3, 5, 7, 9]
target = 4
for num in numbers:
if num == target:
print("Элемент найден:", target)
break
else:
print("Элемент не найден:", target)
- Если target есть в списке, мы его найдём и выйдем из цикла через break.
- Если target отсутствует, цикл завершится нормально, и сработает блок else, сообщая, что элемент не найден.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2💘2😍1
pass, continue и break #tpy◈ pass -- Используется, когда синтаксически нужен код, но логика пока не написана, применяется как временная заглушка.
◈ continue -- пропускает остаток текущей итерации цикла и переходит к следующей.
◈ break -- полностью завершает выполнение цикла.
for i in range(5):
if i == 2:
pass # ничего
if i == 3:
continue # пропускаем i = 3
if i == 4:
break # выходим из цикла
print(i)
# Вывод: 0 1 2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤🔥2🤝2
Большая подборка сервисов на базе искусственного интеллекта #useful
По свежей статистике - больше половины пользователей в СНГ уже так или иначе используют нейросети: кто-то делает с их помощью учёбу, кто-то генерит мемы и ничего больше..
Сервисы которые возьмут на себя рутину учёбы и работы: от домашних заданий, рефератов и презентаций до отчётов, конспектов и даже дипломных проектов👨💻
❤🔥 — да, регулярно - это часть работы/учёбы
🔥 — нет, вообще не пользуюсь
👍 — редко, больше экспериментирую
#⃣ Вся теория для ЕГЭ в одном месте
➡ Программирование на Python | itpy 💻
По свежей статистике - больше половины пользователей в СНГ уже так или иначе используют нейросети: кто-то делает с их помощью учёбу, кто-то генерит мемы и ничего больше..
Сервисы которые возьмут на себя рутину учёбы и работы: от домашних заданий, рефератов и презентаций до отчётов, конспектов и даже дипломных проектов
🔠 Claude — создание текстов и ответов, анализ информации;🔠 Perplexity AI — поиск и суммаризация информации, ответы;🔠 Gamma / Tome — генерация презентаций и отчетов;🔠 MindMap AI — создание интеллектуальных карт и идей;🔠 PDF.ai — анализ PDF, извлечение информации, ответы;🔠 ChatPDF — чат с PDF-документами, понимание текста;🔠 QuillBot — перефразирование текстов, упрощение предложений;🔠 Grammarly — проверка орфографии, грамматики, стиля;🔠 LanguageTool — многоязычная проверка орфографии;🔠 WordyBot — генерация учебных и академических текстов с ссылками;🔠 Notion AI — организация заметок, автоматизация текста;🔠 StudyflowAI — помощь с домашкой, разбор вопросов, структурирование;🔠 Explainpaper — объяснение сложных научных статей;🔠 Study24.ai — создание шпаргалок и конспектов;🔠 TutorAI / TuranAI — виртуальный репетитор, подготовка;🔠 School Assistant AI — генерация учебных материалов;🔠 Wisdolia — создание карточек для запоминания;🔠 Slides AI — автоматическая генерация презентаций;🔠 Canva Magic Studio — визуальный контент, презентации и дизайн;🔠 Scribbr — проверка уникальности и плагиата;🔠 ReText — генерация академических текстов;🔠 RoboGPT — генерация дипломных и курсовых работ;🔠 Chad AI — генерация учебных материалов, эссе;🔠 CopyMonkey — генерация текстов и отчетов;🔠 NeuroTexter — создание академических текстов;🔠 Davinchi — бесплатная генерация дипломных работ;🔠 GigaChat – формирует структурированные научные тексты;🔠 AiWriteArt – генерация и редактирование текстов;🔠 Zaochnik GPT – создание дипломов и отчетов;🔠 StudyAI — помощь с домашними заданиями;🔠 EssayBot — автоматическая генерация эссе на английском;🔠 NeuralText — генерация текстов, идей и контента для учебы и проектов;🔠 texthandler — быстрое форматирование текста;🔠 Nana Banana — продвинутый генератор и редактор изображений.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤🔥2🤩1
Иногда при решении задач ЕГЭ (например 8 номера) учащиеся подключают модули с помощью записи:
from itertools import *
⚠️ Однако это может привести к конфликту имён и ошибкам в программе!
count = 0
from itertools import *
for p in permutations('abc'):
count += 1
print(count, p)
TypeError: unsupported operand type(s) for +=: 'type' and 'int'
⚙️ Причина в том, что в модуле itertools уже существует объект с именем count, и при импорте через * он перезаписывает нашу переменную count.
В итоге переменная становится функцией, и операция += 1 вызывает ошибку.
count = 0
from itertools import permutations
for p in permutations('abc'):
count += 1
print(count, p)
1 ('a', 'b', 'c')
2 ('a', 'c', 'b')
3 ('b', 'a', 'c')
4 ('b', 'c', 'a')
5 ('c', 'a', 'b')
6 ('c', 'b', 'a')🙂 теперь конфликт имен не возникает, так как мы импортировали, только то, что нам нужно, и count - это все так же наша переменная.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤🔥2🥰1
Они очень сильно экономят место и время
def is_prime(n):
return n > 1 and all(n % i for i in range(2, int(n**0.5)+1))
def centr(x):
return min((sum(dist(p,k) for k in x), p) for p in x)[1]
Функция dist() определяется в зависимости от условия задачи
def divisors(n):
return {x for d in range(2, int(n**0.5)+1) if n%d==0 for x in (d, n//d)}
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4🥰2
Python сравнение int и float? #tpyВ Python целые числа (
int ) и числа с плавающей точкой ( float ) обычно сравниваются интуитивно -- 5 == 5.0 возвращает True. Но иногда могут возникнуть неожиданные результаты из-за особенностей представления чисел с плавающей точкой по стандарту IEEE-754.
print(10 == 10.0) # True
print(3 + 0.1 == 3.1) # True
print(0.1 + 0.2 == 0.3) # False
Причина в том, что
float хранится в двоичной форме, и не все десятичные дроби можно точно представить.Поэтому прямое сравнение иногда даёт неожиданный результат.
import math
math.isclose(0.1 + 0.2, 0.3) # True
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤩3🥰1
all() и any() -- как они работают на практике #tpyall() Возвращает True только если все элементы коллекции оцениваются как True (или если коллекция пустая).
# Пример с числами
numbers = [2, 4, 6, 8]
result = all(x % 2 == 0 for x in numbers) # Проверяем, все ли чётные
print(result) # True ✔️
numbers = [2, 4, 5, 8]
result = all(x % 2 == 0 for x in numbers)
print(result) # False ❌ (5 нечётное)
any() Возвращает True если хотя бы один элемент коллекции True.
# Пример с поиском положительных чисел
values = [-5, -2, 0, 3, -1]
result = any(x > 0 for x in values) # Есть ли хотя бы одно положительное?
print(result) # True ✔️ (3 > 0)
values = [-5, -2, -1, 0]
result = any(x > 0 for x in values)
print(result) # False ❌ (все неположительные)
-
all() -- как логическое И ( and ) для всех элементов-
any() -- как логическое ИЛИ ( or ) для всех элементов📎 Важно: обе функции работают с генераторами и не вычисляют все значения, если результат уже ясен:
-
all() остановится на первом False-
any() остановится на первом True# all() остановится на 0 (False)
all([1, 2, 0, 4, 5]) # False
# any() остановится на 3 (True)
any([0, False, 3, 0, 0]) # True
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4🫡3🔥2❤1🤩1
PEP -- что это и зачем нужно #tpyPEP (Python Enhancement Proposal) -- те документы, в которых описываются:• Новые функции языка
• Изменения стандартной библиотеки
• Концепции и соглашения сообщества
Python происходит через PEP. Любой участник сообщества может предложить новый PEP, но он проходит обсуждение перед принятием.Каждый
PEP имеет уникальный номер, который не меняется.Основные
PEP:• PEP 0 -- индекс всех предложений
• PEP 8
-- стиль написания кодаИзучение PEP помогает понимать развитие языка и писать качественный код.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3❤🔥2🔥2