Не перезапускается цикл

klass = int(input('Введите класс:'))
while klass == 9 or klass == 8 or klass == 7:
    klass = int(input('Введите класс повторно:'))**
    if klass == 9:
        otdel9 = int(input('Вы выбрали 9 класс, выберите отдел физики:\n1 - Механика\n2 - Законы Ньютона\n3 - Оптика\n Введите:'))
        if otdel9 == 1:
            mech9 = int(input('''Вы выбрали отдел физики 9 класса:механика, введите формулу для вычисления
        \n1 - a=(V-V0)/t(формула ускорения)
        \n2 - S=V0t+-(at^2)/2(Формула перемещения если известно время. )
        \n3 - S=(V^2-V0^2)/+-2a(Формула перемещения если неизвестно время. )
        \n4 - V=V0+-at(Формула скорости.)
        \n5 - x=x0+V0t+-(at^2)/2(Формула конечной координаты. )
        \n6 - Что такое механика?
        \nВведите: '''))
        if mech9 == 1:
            print('''Введите:\nV - скорость(м/c)\nV0 - начальная скорость(м/c)\nt - время(сек)''')
            V = float(input('Введите скорость V: '))
            V0 = float(input('Введите начальную скорость V0: '))
            t = float(input('Введите время t: '))
            print('a = ', (V - V0)/t , '(м/с^2)')
        elif mech9 == 2:
            print('''Введите: \nV0 - начальную скорость(м/с)\nt - время(с) \na - ускорение(м/с^2)''')
            V0 = float(input('Введите начальную скорость V0: '))
            t = float(input('Введите время t: '))
            a = float(input('Введите ускорение a: '))
            print('S = ', (V0*t+(a*t**2)/2), '(м) ')
        elif mech9 == 3:
            print('''Введите:\nV - скорость(м/c)\nV0 - начальная скорость(м/c)\na - ускорение(м/с^2)''')
            V = float(input('Введите скорость V: '))
            V0 = float(input('Введите начальную скорость V0: '))
            a = float(input('Введите ускорение a: '))
            print('S = ', (V**2-V0**2)/2*a , '(м) ' )
        elif mech9 == 4:
            print('''Введите:\nt - время (с)\nV0 - начальная скорость(м/c)\na - ускорение(м/с^2)''')
            t = float(input('Введите время t: '))
            V0 = float(input('Введите начальную скорость V0: '))
            a = float(input('Введите ускорение a: '))
            print('V = ', V0+a*t, '(м)')
        elif mech9 == 5:
            print('''Введите: \nV0 - начальную скорость(м/с)\nt - время(с) \na - ускорение(м/с^2) \nx0 - начальную координату''')
            V0 = float(input('Введите начальную скорость V0: '))
            t = float(input('Введите время t: '))
            a = float(input('Введите ускорение a: '))
            x0 = float(input('Введите начальную координату x0: '))
            print('x = ', x0+V0*t+(a*t**2)/2) #по моему не измеряется ни в чем
        elif mech9 == 6:
            print('''Раздел физики, наука, изучающая движение материальных тел и взаимодействие между ними\n 
            при этом движением в механике называют изменение во времени взаимного положения тел или их частей в пространстве.''')
    
        elif otdel9 == 2:
            print('законы ньютона потом напишу:\n1- \n2- \n3-')
        #Место для ввода/вывода формул if/elif
        else:
            print('..')
    elif klass == 8:
        print('Вы выбрали 8 класс, выберите отдел физики:\n1 - равномерное движение\n2 - Электричество\n3 - ..')
        otdel8 = int(input())
        if otdel8 == 1:
            print('1 отдел')
        else:
            print('..')
            #return klass8
    elif klass == 7:
        print('Вы выбрали 7 класс, выберите отдел физики:\n1 - \n2 - \n3 - ..')
        otdel7 = int(input())
        if otdel7 == 1:
            print('1 отдел')
        else:
            print('не знаю такой отдел')
            **continue**
        

Как начать цикл заново при вводе неправильного числа?При вводе другого числа программа перестает работать и завершается


Ответы (1 шт):

Автор решения: Alexander Chernin

Если я правильно понял ваши устремления, то так:

klass = int(input('Введите класс:'))

while True:
    if klass in [7,8,9]:
        ...
    elif klass == 0: # Если вводится 0, то выходим из цикла
        break
    else:
        klass = int(input('Введите номер класса повторно (от 7 до 9, 0 - выход из цикла):'))**
→ Ссылка