Я постараюсь исправить код и дать несколько советов:
def wool():
print "OK, so it is pretty cold outside!"
print "Put on the wool."
print "But is it raining?"
rain = True
while True:
next = raw_input("> ")
if next == "Yes": #if written with "Yes", it prints "Put on the.."
print "Put on the rain coat!"
rain()
elif next == "Yes" and rain: #!!!
print "It is raining, but I dont wanna stress with the rain coat!" #!!!
elif next == "No" and not rain: #how do I activate this condition since rain = True?
print "You dont need a raincoat."
march("With wool and no raincoat.")
else:
print "You should make a choice." #this is the only output. # !!!
exit(0)
Ищите # !!!
Первый: этот элиф никогда не будет оцениваться, просто потому что, если next == "Да" первый, если выиграет, конечно. Я бы изменил это на:
if next == "Yes": #if written with "Yes", it prints "Put on the.."
if rain:
print "It is raining, but I dont wanna stress with the rain coat!"
else:
print "Put on the rain coat, *****!"
rain()
elif next .....
Логика, стоящая за чем-то, здесь скрыта: вы спрашиваете, идет ли дождь, и запишите: rain = True
«Как мне активировать это условие, поскольку дождь = Истина?»
хорошо, если пользователь сказал, что не идет дождь, не идет дождь.
Я не знаю, почему вы используете предварительно установленное логическое значение, даже если у вас есть пользовательский ввод.
Отступ после остального: оператор.
Что ж, вы еще оператор получите все входные данные "Нет", потому что дождь действительно всегда истинен.
Думая, что булевому дождю как-то нужно:
elif next == "No"
if rain:
print("Lie!")
#maybe rain = False ??
else:
print "You dont need a raincoat."
march("With wool and no raincoat.")
else:
print "You should make a choice." #this is the only output. # !!!
exit(0)