Найти - Пользователи
Полная версия: Прошу помочь найти ошибку в коде
Начало » Центр помощи » Прошу помочь найти ошибку в коде
1
zantal
Уважаемые коллеги!
Прошу Вас помочь найти ошибку в коде:
Задача (из Питонтьютора):
Август и Беатриса играют в игру. Август загадал натуральное число от 1 до n. Беатриса пытается угадать это число, для этого она называет некоторые множества натуральных чисел. Август отвечает Беатрисе YES, если среди названных ей чисел есть задуманное или NO в противном случае. После нескольких заданных вопросов Беатриса запуталась в том, какие вопросы она задавала и какие ответы получила и просит вас помочь ей определить, какие числа мог задумать Август.
В первой строке задано n — максимальное число, которое мог загадать Август. Далее каждая строка содержит вопрос Беатрисы (множество чисел, разделенных пробелом) и ответ Августа на этот вопрос.
Вы должны вывести через пробел, в порядке возрастания, все числа, которые мог задумать Август.

Моё предполагаемое решение:
n = int(input())
i = True
j = 'YES'
A, B = set(), set()
for x in range (1, n + 1):
A.add(x)
while i == True:
if j == 'YES':
B = ([int(s) for s in input().split()])
j = str(input())
elif j == 'NO':
A.difference(B)
j == 'YES'
elif j == 'HELP':
i == False
else:
print('Введена неверная команда')
break
print(' '.join([str(g) for g in sorted(A)]))

Но программа не работает.
Заранее большое спасибо!
Egorro13
 n = int(input())
i = True
j = 'YES'
A, B = set(), set()
for x in range (1, n + 1):
    A.add(x)
while i == True: # достаточно while i:
    if j == 'YES':
        B = ([int(s) for s in input().split()]) # ???
        j = str(input()) # зачем строку приводить к строке?
    elif j == 'NO':
        A.difference(B) # результат просто отбрасывается
        j == 'YES'
    elif j == 'HELP':
        i == False # в чем смысл этого сравнения?
    else:
        print('Введена неверная команда')
        break
print(' '.join([str(g) for g in sorted(A)]))
Не факт, что правильно понял смысл задачи (если сам загадываешь число и сам у себя его угадываешь - наркомания какая-то)… Насчет комментария ??? - если введено YES, сразу запрашивается ввод следующего набора чисел, только после него можно ввести HELP, хотя по смыслу вроде как HELP - загаданное число уже угадано (или, скорее, просто забыто, учитывая, что сам с собой), вопросов ДА/НЕТ больше не задаем…
zantal
Огромное спасибо за уделённое время и развёрнутый ответ!


This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB