🎉 Поздравляем! 🎉
Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.
PythonLib
Питон для всех
Ты — начинающий блогер. Ты написал свою первую большую статью и хочешь убедиться, что не забыл упомянуть в ней главное ключевое слово для поисковых систем (например, "Python"). Чтобы не перечитывать весь текст глазами, ты решил написать небольшую программу-помощника.
Твоя программа должна запрашивать у тебя полный текст статьи, а затем — ключевое слово, которое нужно найти. После проверки программа должна выдать простой ответ: найдено слово в тексте или нет.
Задача:
Напиши программу, которая принимает на вход две строки: основной текст и подстроку для поиска. Программа должна определить, содержится ли подстрока в основном тексте.
Основной текст для анализа (строка)
Ключевое слово для поиска (строка)
Результат поиска (строка)
Привет, мир! Это моя первая программа.
программа
Слово найдено
Строка в Python — это упорядоченная последовательность символов. Для создания строки её необходимо заключить в одинарные ('...'), двойные ("...") или даже тройные кавычки ("""...""" или '''...'''), которые особенно полезны для многострочных текстов.
Ключевая особенность строк в Python — их неизменяемость (immutability). Это означает, что после создания строки вы не можете изменить её отдельные символы. Любая операция, которая "изменяет" строку, на самом деле создает новую.
string1 = "Hello, World!"
string2 = 'Python is fun'
# Пример многострочной строки
multiline_string = """Это строка,
которая занимает
несколько строк кода."""
Каждый символ в строке имеет свой уникальный номер, или индекс. Индексация позволяет нам получить доступ к любому отдельному символу.
Важно помнить: Индексация в Python всегда начинается с 0, а не с 1. Попытка обратиться к несуществующему индексу вызовет ошибку IndexError.
w = "Python"
print(w[0]) # Вывод: P
print(w[1]) # Вывод: y
print(w[2]) # Вывод: t
print(w[3]) # Вывод: h
print(w[4]) # Вывод: o (а не 0, как в исходном примере)
Также существует отрицательная индексация, которая очень удобна для доступа к символам с конца строки, где -1 — это последний символ, -2 — предпоследний и так далее.
print(w[-1]) # Вывод: n (последний символ)
print(w[-2]) # Вывод: o (предпоследний символ)
Срезы — это мощный инструмент для извлечения части строки (подстроки). Они позволяют получить не один символ, а целый диапазон.
Общий синтаксис: строка[начало : конец : шаг]
начало : индекс, с которого начинается срез (этот символ включается в результат).конец : индекс, на котором срез заканчивается (этот символ не включается в результат).шаг : определяет, с каким интервалом извлекать символы (по умолчанию равен 1).Извлечение подстроки
string = "Hello, World!"
substring = string[0:5] # Символы с 0 по 4 включительно
print(substring) # Вывод: Hello
Отсутствие начального или конечного индекса Если опустить начальный индекс, срез начнется с самого начала строки. Если опустить конечный — продолжится до самого конца.
string = "Hello, World!"
substring1 = string[:5] # С начала до индекса 5 (не включительно)
substring2 = string[7:] # С индекса 7 и до конца строки
print(substring1) # Вывод: Hello
print(substring2) # Вывод: World!
Использование шага Шаг позволяет "перепрыгивать" через символы. Например, шаг 2 берет каждый второй символ.
string = "Hello, World!"
substring = string[::2] # Каждый второй символ от начала до конца
print(substring) # Вывод: Hlo ol!
Отрицательные индексы в срезах Их можно комбинировать для получения частей строки с конца.
string = "Hello, World!"
substring = string[-6:-1] # Начинаем с 6-го символа с конца и идем до 1-го с конца
print(substring) # Вывод: World
Полезный трюк: переворот строки Самый простой и популярный способ перевернуть строку — это использовать срез с шагом -1.
string = "Hello, World!"
reversed_string = string[::-1]
print(reversed_string) # Вывод: !dlroW ,olleH
Сложение (конкатенация) выполняется с помощью оператора +. Он "склеивает" строки в одну новую.
str1 = "Hello"
str2 = "World"
result = str1 + ", " + str2 + "!"
print(result) # Вывод: Hello, World!
Важный совет: Нельзя складывать строку с числом напрямую. Чтобы это сделать, число нужно сначала преобразовать в строку с помощью функции str().
# print("Age: " + 25) # Вызовет TypeError
print("Age: " + str(25)) # Правильно! Вывод: Age: 25
Умножение выполняется с помощью оператора *, который повторяет строку заданное количество раз. Это удобно для создания разделителей или форматирования.
string = "Go"
result = string * 3
print(result) # Вывод: GoGoGo
print("-" * 20) # Вывод: --------------------
Длина строки Встроенная функция len() возвращает количество символов в строке.
my_string = "Hello"
print(len(my_string)) # Выведет: 5
Проверка на вхождение подстроки Операторы in и not in позволяют проверить, содержится ли одна строка внутри другой. Результатом будет True или False.
Помните: эта проверка чувствительна к регистру! 'd' и 'D' — это разные символы.
name = "Daniil"
password = "Qwerty2000!"
print('D' in name) # Выведет: True
print('d' in name) # Выведет: False
print('3' not in password) # Выведет: True
Строку можно перебрать в цикле for. Есть два основных способа, и выбор зависит от задачи.
Способ 1: Простой перебор (более "питоничный") Этот способ используется, когда вам нужны только сами символы строки. Он проще и читабельнее.
a = "1516 the best"
for char in a: # Переменная char последовательно принимает значение каждого символа
if char in "1234567890":
print(char)
Способ 2: Перебор по индексам Этот способ нужен, когда вам важен не только сам символ, но и его позиция (индекс).
a = "1516 the best"
for i in range(len(a)): # i будет принимать значения от 0 до len(a)-1
if a[i] in "1234567890":
print(f"Найден символ '{a[i]}' на позиции {i}")
Мы рассмотрели базовые, но очень важные операции:
+) и повторение (*) для создания новых строк.Это основа, на которой строится вся работа с текстом в Python. Чтобы двигаться дальше, изучите методы строк. Это встроенные функции, которые позволяют делать со строками еще больше полезных вещей, например:
.lower() / .upper() — привести всю строку к нижнему или верхнему регистру..strip() — убрать пробелы и переносы строк в начале и в конце..replace('старое', 'новое') — заменить все вхождения одной подстроки на другую..split() — разбить строку на список по разделителю (например, по пробелу)..startswith('префикс') / .endswith('суффикс') — проверить, начинается или заканчивается ли строка на определенную последовательность символов.# Получаем основной текст от пользователя
main_text = input()
# Получаем слово, которое нужно найти
keyword = input()
# Инициализируем флаг, который покажет, найдено ли слово.
# Изначально считаем, что слово не найдено (False).
is_found = False
# Проверяем, не длиннее ли искомое слово, чем сам текст.
# Если длиннее, то его там точно нет, и цикл запускать бессмысленно.
if len(keyword) <= len(main_text):
# Запускаем цикл, который перебирает все возможные начальные позиции для нашего слова в тексте.
# Он идет от 0 до (длина текста - длина слова + 1).
# +1 нужен, чтобы проверить и самый последний возможный фрагмент.
for i in range(len(main_text) - len(keyword) + 1):
# Внутри цикла мы "вырезаем" из основного текста фрагмент (слайс)
# такой же длины, как и наше ключевое слово, начиная с позиции i.
fragment = main_text[i : i + len(keyword)]
# Сравниваем вырезанный фрагмент с ключевым словом.
if fragment == keyword:
# Если они совпали, меняем значение флага на True (слово найдено).
is_found = True
# И сразу же выходим из цикла, так как дальнейший поиск не имеет смысла.
break
# После завершения цикла проверяем значение нашего флага.
if is_found:
# Если флаг равен True, значит, слово было найдено.
print("Слово найдено")
else:
# Если флаг остался False, значит, цикл прошел до конца, но совпадений не было.
print("Слово не найдено")
🎉 Поздравляем! 🎉
Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.
AD
Реклама
Запускаем ваш код...