У меня есть 3 разные функции в классе, если команда в любой из функций возвращает false, я хочу, чтобы программа начиналась заново так, как она начиналась, если функция, которая возвращает false, была последней командой среди функций. Кроме того, я хочу, чтобы программа вернулась к последней успешной функциональной команде, если неудачная команда не является последней среди функций
Когда я запускаю программу и последняя команда функции завершается неудачно, программа возвращается к начальной точке, но игнорирует определенную и важную часть того, чего я хочу достичь, вместо этого она полностью выполняет вторую команду функции
class Test():
def greeting(self):
user_input = input("Greeting: ")
print("This is the greeting function")
list1 = ["hello", "Hi"]
if user_input in list1:
print("Thats good")
Test.cities(self)
elif user_input not in list1:
print("Mtchewwww")
Test.greeting(self)
else:
print("be serious")
def cities(self):
print("U re now inside the city function")
list2 = ["Otukpo", "Gboko"]
user_input = input("Cities: ")
if user_input in list2:
print("Nice one")
Test.num(self)
else:
print("that's not a city")
Test.cities(self)
def num(self):
user_input = input("Numbers: ")
list3 = [1, 2, 3, 4]
if int(user_input) in list3:
print("good number")
elif user_input not in list3:
print("That was bad")
Test.greeting(self)
else:
print("Can not compute")
calling = Test()
cal = calling.greeting
cal()
Я хочу, чтобы программа вела себя так:
если элемент находится в списке list1, переходите к следующей функции, но если его нет в списке, попробуйте текущую функцию снова 3 раза и после 3-х шансов, но ее все еще нет в списке, чтобы вернуться к предыдущей функции