Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Нужен совет по условиям в Питоне


Автор: Oxidous 16.10.2015, 08:21
Всем доброго времени суток,
Только начал изучать Питон по книге Майкла Доусона "Программируем на Python".
Интересует такой вопрос,можно ли объединить как-то вопросы в Питоне? В группу или как-то ещё? Не могу точно сформулировать вопрос.
Сейчас объясню,что я имею ввиду. Допустим,нужно написать программу- тест. Есть 10 вопросов, ответ на каждый вопрос- либо "Да", либо "Нет". Причём "Да" или "Нет" юзер вводит с клавиатуры. Если,допустим, юзер на 1, 2, 4, 7, 10 вопросы отвечает "Да",а на 3, 5, 6, 8, 10 отвечает "Нет" то выводится один ответ, если на 1, 3, 5, 7, 9 отвечает "Нет", а на 2, 4, 6, 8, 10 отвечает "Да", то выводится другой ответ,и т.д.
Пускай переменная с вопросом будет называться "q". Первый вопрос - q1, второй - q2 и т.д. А можно ли как-то сделать так,чтоб,допустим, выглядело как-то так:

Код

q1 = input("Вы курите? Да/Нет: ")
.
.
.
if q1, q2, q3, q4, q5 = 'Да' and q6, q7, q8, q9, q10 = 'Нет':
    print("Ответ")
elif q2, q4, q7, q8, q9 = 'Да' and q1, q3, q5, q6, q10 = 'Нет':
    print("Другой ответ")


Просто мне нужно написать простенькую экспертную систему с 10 вопросами, а если писать так:

Код

if q1 = 'y' and q2 = 'y' and q3 = 'y' and q4 = 'y' and q5 = 'y' and q6 = 'y' and q7 = 'y' and q8 = 'n' and q9 = 'n' and q10 = 'y':
    print("")
elif q1 = 'y' and q2 = 'y' and q3 = 'y' and q4 = 'y' and q5 = 'y' and q6 = 'n' and q7 = 'y' and q8 = 'n' and q9 = 'n' and q10 = 'y':
    print("")
elif q1 = 'y' and q2 = 'n' and q3 = 'y' and q4 = 'y' and q5 = 'n' and q6 = 'y' and q7 = 'y' and q8 = 'y' and q9 = 'n' and q10 = 'y':
    print("")
elif q1 = 'y' and q2 = 'y' and q3 = 'n' and q4 = 'n' and q5 = 'y' and q6 = 'y' and q7 = 'y' and q8 = 'y' and q9 = 'y' and q10 = 'y':
    print("")
.
.
.


Я скорее на пенсию выйду, чем закончу писать все возможные условия и ответы под каждое такое длинное условие ))
Знаю, что могут использоваться словари, но пока не представляю, как реализовать привязку словаря к вопросам.

P.S. Не знаю, важно это или нет, но пишу в IDLE 4.3.4

Автор: Romikgy 16.10.2015, 08:57
Код

OK1=True
OK2=True
c1=[q1, q2, q3, q4, q5]
for i in c1:
    if i !='Да':
        OK1=False
        break
c2=[q6, q7, q8, q9, q10]
for i in c2:
    if i !='Нет':
        OK2=False
        break
if OK1 and OK2:
    print("Ответ")

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)