Как вызвать функцию в Python несколько раз?
Суть в том,чтобы после завершения игры можно было выбрать один из вариантов (да/нет) и продолжить игру не останавливая программу. Третий день изучения Python,не могу додуматься.Чайник.Попробовал несколько вариантов:функция внутри функции,while.
`
import random
popitka=0
print('Как тебя зовут?')
name=input()
print('Приветствую,',name,'. Игра называется "Угадай число"')
print('Попробуй отгадать число от 1 до 20. У тебя 6 попыток. Удачи')
def play():
number=random.randint(1,20)
for popitka in range(1,7):
guess=int(input())
if guess<number:
print('число слишком маленькое')
if guess>number:
print('число слишком большое')
if guess==number:
break
if guess==number:
popitka=str(popitka)
print('Поздравляю,',name,'Ты отгадал число с',popitka,'попытки')
if guess!=number:
print('Увы,',name,'. Ты проиграл')
return guess
play()
print('Хочешь попробовать еще раз?(да/нет)')
again=str(input())
if again=='да':
play()
elif again=='нет':
print('Спасибо за игру!')`
Данный вариант выдает ошибку:
Traceback (most recent call last):
File "C:/Users/User/Desktop/обучение/guessGAME1.py", line 27, in <module>
play()
File "C:/Users/User/Desktop/обучение/guessGAME1.py", line 10, in play
guess=int(input())
ValueError: invalid literal for int() with base 10: ' '
Ответы (3 шт):
Автор решения: pagislav
→ Ссылка
print('Хочешь попробовать еще раз?(да/нет)')
again = input()
while again == 'да':
play()
print('Хочешь попробовать еще раз?(да/нет)')
again = input()
print('Спасибо за игру!')
Хорошо бы реализовать это с помощью do...while, но такой конструкции нет в Python
Автор решения: frozencoast
→ Ссылка
Альтерантивный вариант ответа pagislav:
while True:
print('Хочешь попробовать еще раз?(да/нет)')
again = input()
if (again != 'да')
break
play()
print('Спасибо за игру!')
Автор решения: vadim vaduxa
→ Ссылка
или рекурсией
def play():
print('play')
return main()
def main(ex='да'):
if (not ex) or (input(f'Хочешь попробовать еще раз? ({ex}/нет): ') == ex):
return play()
if __name__ == '__main__':
main(ex='')