Один из подходов заключался бы в том, чтобы yn
возвращал логическое значение, которое затем использовалось бы для выхода из цикла. В противном случае функция break
внутри функции не может выйти из цикла в вызывающей функции.
def yn(x, f, g):
if (x) == 'y':
print (f)
return True
elif (x) == 'n'
print (g)
return False
name = raw_input('What is your name, adventurer? ')
print 'Nice to meet you, '+name+'. Are you ready for your adventure?'
done = False
while not done:
ready = raw_input('y/n ')
done = yn(ready, 'Good, let\'s start our adventure!', 'That is a real shame.. Maybe next time')