Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 25 августа 2025 12:15

На вход подаётся текст (строка произвольной длины). Выведите сколько раз в этом тексте встречается имя Иван. Требования: Учитываются только точные совпадения слова "Иван" (без учета регистра, но без учета частей слов, например, "Иванов" не считается). Имя "Иван" может встречаться в любом месте текста и в любом регистре: "Иван", "иван", "ИВАН" и т.п. Знаки препинания, стоящие рядом, не мешают определению слова. Проверка вашей программы осуществляется с использованием наших тестовых данных, поэтому вывод в консоли может отличаться от введённых вами значений. ​Проверяется: Использование метода .lower() — программа должна преобразовать текст к нижнему регистру. Использование метода .count() — программа должна подсчитывать количество вхождений. Соответствие ответа правильному.

Ответ нейросети

25 августа 2025 12:15

Задача понятна. Ниже даю подробное решение с объяснениями и рабочий пример кода на Python, который удовлетворяет требованиям: применяется .lower() и .count(), учитываются только отдельные слова "иван" (без учета регистра), слова типа "иванов" не считаются, знаки препинания не мешают.

Цель: понять решение задачи пошагово и увидеть рабочий код.

Пояснение к подходу

  • Сначала переводим входной текст к нижнему регистру: s = text.lower().
  • Затем превращаем все символы, которые не являются русскими буквами (а-я и буква ё), в пробелы. Это отделяет слова и заставляет знаки препинания служить разделителями слов.
  • Добавляем по одному пробелу слева и справа, чтобы удобно считать слово "иван" как часть подстроки с пробелами вокруг: " иван ".
  • Подсчитываем количество вхождений подстроки " иван " с помощью метода .count().
    • Это обеспечивает ровное соответствие слову целиком и игнорирует части слов (например, Иванов).

Решение шаг за шагом

  1. Привести текст к нижнему регистру.
  2. Преобразовать все не русские буквы в пробелы (оставить только а-я и ё).
  3. Добавить пробелы в начале и в конце строки.
  4. Посчитать количество вхождений подстроки " иван ".
  5. Вывести результат.

Код (Python 3)

import sys

def count_ivan(text: str) -> int: # 1) привести к нижнему регистру s = text.lower() # 2) оставить только русские буквы (а-я, ё), остальные заменить пробелами cleaned_chars = [] for ch in s: if ('а' <= ch <= 'я') or ch == 'ё': cleaned_chars.append(ch) else: cleaned_chars.append(' ') cleaned = ''.join(cleaned_chars) # 3) добавить границы пробелов cleaned = ' ' + cleaned + ' ' # 4) подсчитать количество вхождений слова "иван" как отдельного слова return cleaned.count(' иван ')

if name == "main": # 5) чтение текста (можно из stdin) text = sys.stdin.read() print(count_ivan(text))

Как использовать

  • Вводите произвольную строку как входной текст.
  • Программа выведет количество вхождений слова "иван" в тексте, игнорируя случаи типа "иванов" и др.

Пример

  • Вход: "Иван, иван. Иванов Иван!"
  • Приведённый пример вернет: 3 (слова: Иван, иван, Иван)

Дополнительные заметки

  • Знаки препинания и цифры вокруг слов не мешают, так как заменяются на пробелы.
  • Слово "иван" выделяется только как отдельное слово благодаря границам с пробелами.
  • Решение использует только методы .lower() и .count() в рамках подсчета, как требовалось.

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

На вход подаётся текст (строка произвольной длины). Выведите сколько раз в этом тексте встречается имя Иван. Требования: Учитываются только точные совпадения слова "Иван" (без учета регистра, но без учета частей слов, например, "Иванов" не считается). Имя "Иван" может встречаться в любом месте текста и в любом регистре: "Иван", "иван", "ИВАН" и т.п. Знаки препинания, стоящие рядом, не мешают определению слова. Проверка вашей программы осуществляется с использованием наших тестовых данных, поэтому вывод в консоли может отличаться от введённых вами значений. ​Проверяется: Использование метода .lower() — программа должна преобразовать текст к нижнему регистру. Использование метода .count() — программа должна подсчитывать количество вхождений. Соответствие ответа правильному.
Задача понятна. Ниже даю подробное решение с объяснениями и рабочий пример кода на Python, который удовлетворяет требованиям: применяется .lower() и .count(), учитываются только отдельные слова "иван" (без учета регистра), слова типа "иванов" не считаются, знаки препинания не мешают. Цель: понять решение задачи пошагово и увидеть рабочий код. Пояснение к подходу - Сначала переводим входной текст к нижнему регистру: s = text.lower(). - Затем превращаем все символы, которые не являются русскими буквами (а-я и буква ё), в пробелы. Это отделяет слова и заставляет знаки препинания служить разделителями слов. - Добавляем по одному пробелу слева и справа, чтобы удобно считать слово "иван" как часть подстроки с пробелами вокруг: " иван ". - Подсчитываем количество вхождений подстроки " иван " с помощью метода .count(). - Это обеспечивает ровное соответствие слову целиком и игнорирует части слов (например, Иванов). Решение шаг за шагом 1) Привести текст к нижнему регистру. 2) Преобразовать все не русские буквы в пробелы (оставить только а-я и ё). 3) Добавить пробелы в начале и в конце строки. 4) Посчитать количество вхождений подстроки " иван ". 5) Вывести результат. Код (Python 3) import sys def count_ivan(text: str) -> int: # 1) привести к нижнему регистру s = text.lower() # 2) оставить только русские буквы (а-я, ё), остальные заменить пробелами cleaned_chars = [] for ch in s: if ('а' <= ch <= 'я') or ch == 'ё': cleaned_chars.append(ch) else: cleaned_chars.append(' ') cleaned = ''.join(cleaned_chars) # 3) добавить границы пробелов cleaned = ' ' + cleaned + ' ' # 4) подсчитать количество вхождений слова "иван" как отдельного слова return cleaned.count(' иван ') if __name__ == "__main__": # 5) чтение текста (можно из stdin) text = sys.stdin.read() print(count_ivan(text)) Как использовать - Вводите произвольную строку как входной текст. - Программа выведет количество вхождений слова "иван" в тексте, игнорируя случаи типа "иванов" и др. Пример - Вход: "Иван, иван. Иванов Иван!" - Приведённый пример вернет: 3 (слова: Иван, иван, Иван) Дополнительные заметки - Знаки препинания и цифры вокруг слов не мешают, так как заменяются на пробелы. - Слово "иван" выделяется только как отдельное слово благодаря границам с пробелами. - Решение использует только методы .lower() и .count() в рамках подсчета, как требовалось.