Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

Информатика Python задача ЕГЭ

брешка Ученик (89), закрыт 1 месяц назад
. На вход программы подается текст на английском языке, заканчивающийся точкой (другие символы “.” в тексте отсутствуют). Требуется написать программу, которая будет определять и выводить на экран английскую букву, встречающуюся в этом тексте чаще всего, и количество там таких букв. Строчные и прописные буквы при этом считаются не различимыми. Если искомых букв несколько, то программа должна выводить на экран первую из них по алфавиту. Например, пусть файл содержит следующую запись:

It is not a simple task. Yes!

Чаще всего здесь встречаются буквы I, S и T (слово Yes в подсчете не учитывается, так как расположено после точки). Следовательно, в данном случае программа должна вывести два символа, разделенных пробелом:

I 3

(прошу писать код для новичков!!!)
Лучший ответ
Никита Элпидов Знаток (415) 1 месяц назад
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()`. Наконец, выводим на экран полученную букву (в верхнем регистре) и количество ее вхождений в текст.
брешкаУченик (89) 1 месяц назад
Огромное спасибо! Из всех ответов ваш наиболее мне помог. ♥
Остальные ответы
FDF FDF Ученик (178) 1 месяц назад
Код для решения этой задачи на 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
Локи Мастер (1175) 1 месяц назад
Скажу честно это через нейросеть, но обычно коды она правильно пишет:

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

sorted_letters_count = sorted(letters_count.items(), key=lambda x: (-x[1], x[0]))
most_common_letter = sorted_letters_count[0][0]
most_common_letter_count = sorted_letters_count[0][1]

print("Самая часто встречающаяся буква в тексте:", most_common_letter)
print("Количество таких букв:", most_common_letter_count)
Exfell Kitakill Мастер (2382) 1 месяц назад
 from collections import Counter 
s = 'It is not a simple task. Yes!'.split('.')[0]
res = Counter(s.lower().replace(' ','')).most_common(1)
print(*res)
1truekerry Знаток (332) 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. Наконец, программа выводит на экран результат в нужном формате: буква в верхнем регистре и количество вхождений.
Похожие вопросы