На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Не зарегистрирован
ссылка на сообщение  Отправлено: 05.04.22 15:19. Заголовок: Помогите пожалуйста найти ошибку. Задание 24, варианта 17 с сайта kpolyakov


Само задание:
(№ 3784) Текстовый файл 24-s1.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую наибольшее количество пар соседних букв, которые стоят в таком же порядке и в алфавите (например, AB, BC, CD и т.д.; в цепочке ABC две таких пары). Если таких строк несколько, надо взять ту, которая в файле встретилась позже. Определите, какая буква встречается в этой строке реже всего (но присутствует!). Если таких букв несколько, надо взять ту, которая стоит раньше в алфавите. Запишите в ответе эту букву, а затем – сколько раз она встречается во всем файле.
Пример. Исходный файл:
ZCQABA
ZALMAC
CRACUT
В этом примере в первой и второй строках по одной подходящей паре (AB и LM), в третьей таких пар нет. Берём вторую строку, т.к. она позже встречается в файле. В этой строке реже других встречаются буквы Z и C (по одному разу), выбираем букву С, т. к. она раньше стоит в алфавите. В ответе для этого примера надо записать C4, так как во всех строках файла буква C встречается 4 раза.

Моё решение:
 
f = open('24-s1.txt','r')
chars_from_text = {}
need_char = ''
current_min_amount = 60000
alphabet=[]
kmax = 0
for е in range(65,91):
alphabet.append(chr(е))
b=''
for line in f:

k = 0
for char in range(0,len(line) - 1):

for i in range(0,24):

if alphabet[i] == line[char] and alphabet[i + 1] == line[char + 1]:
k += 1

if k >= kmax:
b = line
kmax = max(k , kmax)
v = ''
for char in b:

if char in chars_from_text:
chars_from_text[char] += 1
else:
chars_from_text[char] = 1
for p in range(0 , 25) :
v = alphabet[p]
if current_min_amount > chars_from_text[v]:
need_char = v
current_min_amount = chars_from_text[v]
summa = 0
f = open('24-s1.txt','r')
for line in f:
for q in line:
if q == need_char:
summa += 1
print('Буква',need_char,'Кол-во букв в файле',summa)

Заранее благодарю за оказанную помощь!

Спасибо: 0 
Цитата Ответить
Ответов - 2 [только новые]





Сообщение: 10
ссылка на сообщение  Отправлено: 05.04.22 18:02. Заголовок: Ваша программа дает ..


Ваша программа дает правильный ответ. Только где
if current_min_amount > chars_from_text[ v ]:  
need_char = v
current_min_amount = chars_from_text[ v ]

не находит нужный ключ. Либо проверьте на наличие ключа, либо оберните в try except

if v in chars_from_text: 
if current_min_amount > chars_from_text[ v ]:
need_char = v
current_min_amount = chars_from_text[ v ]


try: 
if current_min_amount > chars_from_text[ v ]:
need_char = v
current_min_amount = chars_from_text[ v ]
except: continue


Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 11
ссылка на сообщение  Отправлено: 05.04.22 18:11. Заголовок: Не забывайте также, ..


Не забывайте также, что stop в range() "невключительно". В латинском алфавите 26 букв, в последних двух пробежках по (range(0, 24) и range(0, 25)) буква Z остается без внимания.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 23
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет