. На вход программы подается текст на английском языке, заканчивающийся точкой (другие символы “.” в тексте отсутствуют). Требуется написать программу, которая будет определять и выводить на экран английскую букву, встречающуюся в этом тексте чаще всего, и количество там таких букв. Строчные и прописные буквы при этом считаются не различимыми. Если искомых букв несколько, то программа должна выводить на экран первую из них по алфавиту. Например, пусть файл содержит следующую запись:
It is not a simple task. Yes!
Чаще всего здесь встречаются буквы I, S и T (слово Yes в подсчете не учитывается, так как расположено после точки). Следовательно, в данном случае программа должна вывести два символа, разделенных пробелом:
text = input().split('.') [0].lower() letters = [0] * 26 for char in text: if char.isalpha(): letters[ord(char) - ord('a')] += 1 max_count = max(letters) letter = chr(letters.index(max_count) + ord('a')) print(letter.upper(), max_count)
В этом коде сначала вводится текст и отделяется его часть до первой точки. Затем создается список `letters` длиной 26 (по количеству букв в английском алфавите), в котором будут храниться количества вхождений каждой буквы в текст. Далее текст преобразуется в нижний регистр с помощью метода `lower()`.
Затем для каждого символа в тексте проверяется, является ли он буквой с помощью метода `isalpha()`. Если символ является буквой, то соответствующий элемент в списке `letters` увеличивается на 1. Для определения индекса элемента используется код символа (функция `ord()`) и код символа 'a'.
После обработки всего текста находим максимальное значение в списке `letters` с помощью функции `max()`. Затем находим индекс этого значения с помощью метода `index()` и преобразуем его в символ с помощью функции `chr()`. Наконец, выводим на экран полученную букву (в верхнем регистре) и количество ее вхождений в текст.
Код для решения этой задачи на Python 3: # Считываем текст из стандартного ввода (консоли) text = input().lower() # Приводим текст к нижнему регистру
# Создаем словарь, где ключами являются буквы, а значениями - количество их вхождений в текст letters_count = {} for letter in text: if letter.isalpha(): # Учитываем только буквы (не символы, цифры и т.д.) if letter in letters_count: letters_count[letter] += 1 else: letters_count[letter] = 1
# Находим самую часто встречающуюся букву и ее количество в тексте most_common_letter = min(letters_count, key=lambda letter: (-letters_count[letter], letter)) count_of_most_common_letter = letters_count[most_common_letter]
# Выводим результат на экран print(most_common_letter.upper(), count_of_most_common_letter)
Пример работы программы: It is not a simple task. I 3
Скажу честно это через нейросеть, но обычно коды она правильно пишет:
text = input("Введите текст на английском языке, заканчивающийся точкой: ") text = text.lower() # переводим все буквы в нижний регистр, чтобы не различать регистр text = text.replace(".", "") # удаляем точку в конце текста
letters_count = {} for letter in text: if letter.isalpha(): # проверяем, является ли символ буквой if letter in letters_count: letters_count[letter] += 1 else: letters_count[letter] = 1
text = input().lower().rstrip('.') counts = {} for letter in text: if letter.isalpha(): counts[letter] = counts.get(letter, 0) + 1 max_count = max(counts.values()) max_letter = min([letter for letter, count in counts.items() if count == max_count]) print(max_letter.upper(), max_count)
Ну, легче некуда. Программа сначала считывает введенный текст и приводит его к нижнему регистру, а также удаляет точку в конце с помощью метода "rstrip". Затем программа проходит по каждой букве в тексте и подсчитывает количество вхождений каждой буквы в словаре counts. Метод get используется для безопасного получения значения из словаря: если буква еще не встречалась, то ее значение равно 0. Далее программа находит максимальное количество вхождений (max_count) и находит букву (max_letter) с этим количеством вхождений. Если искомых букв несколько, то выбирается первая по алфавиту с помощью функции min. Наконец, программа выводит на экран результат в нужном формате: буква в верхнем регистре и количество вхождений.
It is not a simple task. Yes!
Чаще всего здесь встречаются буквы I, S и T (слово Yes в подсчете не учитывается, так как расположено после точки). Следовательно, в данном случае программа должна вывести два символа, разделенных пробелом:
I 3
(прошу писать код для новичков!!!)