Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Странная математика python

У меня есть задание:

— Внимание! Внимание! — вырвалось у Бильбо.

— В чем дело? — спросили гномы и разом обернулись к нему, а он, не в силах совладать с собой, воскликнул:

— Послушайте, что я скажу!

— Мне кажется, вам надо пойти на Восток и на месте выяснить, что и как. В конце концов, существует Боковой Вход, и драконы когда-нибудь да спят, и, если посидеть у входа подольше, что-нибудь непременно придет в голову.

Напишите программу, которая определит, есть ли в строках что-нибудь стоящее. А стоящее – это если в строке есть туннель в любой форме (достаточно проверить туннел) или то слово, которое будет введено первым.

Формат ввода

Вводится строка – слово для проверки.

Зaтем вводится число – количество строк, а затем сами строки.

Формат вывода

Если количество стоящих строк не менее трех, то вывести МЫСЛЬ ЕСТЬ! Иначе вывести ПОСИДИМ ЕЩЕ.

Затем вывести процентное отношение неподходящих строк к их общему количеству.

И пример работы кода:

двер

6

Никому из нас не по душе идти через Главные Ворота.

В этом месте есть потайной ход в Нижний туннель.

И уверяю вас, на ваших дверях есть знак.

Как же не быть знаку. Я сам его поставил на дверях.

Как такую огромную дверь можно утаить от кого бы то ни было?

У Смауга было время разобраться во всех ходах и выходах.

Ответ программы на эти строки должен быть такой:
МЫСЛЬ ЕСТЬ!
33.33333333333333
Я написал такой код:

123456789101112131415161718
 inp1 = str(input())
inp2 = int(input())
qual = 0
idea = False

for i in range(inp2):
	inputed = str(input())
	if inp1 in inputed or "туннел" in inputed:
		idea = True
		qual += 1


print(qual, 100, inp2)

if idea and inp2 > 3:
	print(f"МЫСЛЬ ЕСТЬ!\n{round(((inp2 - qual) * 100 / inp2), 14)}")
else:
	print(f"ПОСИДИМ ЕЩЕ\n{inp2 * 100 / qual}") 


Вроде почти все правильно кроме одного момента. Я получаю вот такой вывод:

МЫСЛЬ ЕСТЬ!
33.33333333333334

Мне нужно получить точно такой же ответ, как в первом примере. Как это можно исправить?

По дате
По рейтингу
Аватар пользователя
Мастер
123456789101112131415161718
 inp1 = input()
inp2 = int(input()) 
qual = 0 
idea = False 
 
for i in range(inp2): 
	inputed = input()
	if inp1 in inputed or "туннел" in inputed: 
		idea = True 
		qual += 1 
 
 
print(qual, 100, inp2) 
 
if idea and inp2 > 3: 
  print(f"МЫСЛЬ ЕСТЬ!\n{round(((inp2 - qual) * 100 / inp2), 2)}") 
else: 
  print(f"ПОСИДИМ ЕЩЕ\n{round(((inp2 - qual) * 100 / inp2), 2)}")