@Ilya9028

Как сделать так чтобы в конце кода когда человек нажимал Y код запускался заново?

как сделать так чтобы в конце кода когда человек нажимал Y код запускался заново

import time
import random
name=input("добро пожаловать!Как вас называть?")
print(name+",вы попали в тренеровку таблцы умножения в переделе 1-10")
print("через 3 секунды игра начнется.")
print("1...")
time.sleep(2)
print("2...")
time.sleep(2)
print("3...")
time.sleep(2)
num1=random.randint(1,10)
num2=random.randint(1,10)
print("Сколько будет...")
print(num1)
print("*")
print(num2)
otvet=int(input("Ответ:"))
if otvet== num1*num2:
   print("Правильно!")
else:

      print("Неправильно!")

again = input("для продолжения игры нажмите: Y ,для выхода из игры нажмите: N")
while(again != "N") and (again !="Y"):
    again=input("продолжить-y,Выйти-N")
if again == "N":
  print("Приходите еще!")
elif again == "Y":
  print("Игра начинается")
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 4
HemulGM
@HemulGM Куратор тега Python
Delphi Developer, сис. админ
Цикл сделай и выходи из цикла, если при вводе не Y
Ответ написан
Комментировать
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
В общем случае можно основной код обернуть в цикл «пока» с проверкой «пока пользователь отвечает Y, повторять тело цикла».
Если пользователь ответит не Y, программа выйдет из цикла и новая игра не начнется.
Ответ написан
Комментировать
@Anarmus
Можно примерно вот так:
import time
import random

def continueOn_or_not(question: str = 'Продолжить?', answers: list = ['y','n']) -> bool:
    while 1:
        c = input(question+' ['+'/'.join(map(str, answers))+'] ').lower()
        if c == answers[0]:
            return True
        elif c == answers[1]:
            return False

name=input("добро пожаловать!Как вас называть?")
print(name+",вы попали в тренеровку таблцы умножения в переделе 1-10")

while 1: # бесконечный цикл
    print("через 3 секунды игра начнется.")
    print("1...")
    time.sleep(2)
    print("2...")
    time.sleep(2)
    print("3...")
    time.sleep(2)
    num1=random.randint(1,10)
    num2=random.randint(1,10)
    print("Сколько будет...")
    print(num1)
    print("*")
    print(num2)
    otvet=int(input("Ответ:"))
    if otvet== num1*num2:
        print("Правильно!")
    else:
        print("Неправильно!")

    if not continueOn_or_not():
        break # прерывание цикла

input('Любая клавиша для выхода...')

Бесконечный цикл и убрать опрос пользователя в отдельную функцию
Ответ написан
@ganstar565
способ попроще, если не усложнять

import time
import random

def continueOn_or_not():
    c = input("желаете продолжить? y/n ")
    c = c.strip()
    c = c.lower()
    if c == "y": return False
    else: return True


name=input("добро пожаловать!Как вас называть?")
print(name+",вы попали в тренеровку таблцы умножения в переделе 1-10")

while 1: # бесконечный цикл
    print("через 3 секунды игра начнется.")
    print("1...")
    time.sleep(2)
    print("2...")
    time.sleep(2)
    print("3...")
    time.sleep(2)
    num1=random.randint(1,10)
    num2=random.randint(1,10)
    print("Сколько будет...")
    print(num1)
    print("*")
    print(num2)
    otvet=int(input("Ответ:"))
    if otvet== num1*num2:
        print("Правильно!")
    else:
        print("Неправильно!")

    if continueOn_or_not():
        break # прерывание цикла

input('Любая клавиша для выхода...')


вариант без циклов:
import time
import random

def continueOn_or_not():
    c = input("желаете продолжить? y/n ")
    c = c.strip()
    c = c.lower()
    if c == "y":
        start()
    else: return False

name=input("добро пожаловать!Как вас называть?")
print(name+",вы попали в тренеровку таблцы умножения в переделе 1-10")

def start():
    print("через 3 секунды игра начнется.")
    print("1...")
    time.sleep(2)
    print("2...")
    time.sleep(2)
    print("3...")
    time.sleep(2)
    num1=random.randint(1,10)
    num2=random.randint(1,10)
    print("Сколько будет...")
    print(num1)
    print("*")
    print(num2)
    otvet=int(input("Ответ:"))
    if otvet== num1*num2:
        print("Правильно!")
    else:
        print("Неправильно!")
    
    if continueOn_or_not() == False:
        print("Пока!")
        

start()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 апр. 2024, в 20:14
700 руб./за проект
28 апр. 2024, в 20:09
9000 руб./за проект
28 апр. 2024, в 19:54
2000 руб./за проект