Не отображаются ошибки ввода команды, а просто чистится консоль. Python

В коде при вводе неверной команды не отображается надпись 'неверная команда' чистится консоль, и тоже самое при вводе команды 'games' Код:

from tqdm import tqdm
import os
import time
system = True
def clickgame():
    work = True
    moneyplus = 5
    money = 0
    moneta =("""

        
        (5$)


    """)
    print(moneta)
    print(money)
    while work == True:
        click = input()
        money = money + moneyplus
        os.system('cls')
        print(moneta)
        print(money)
        if money == 2000:
            moneta = """

        
        (10$)


    """
            moneyplus = 10
            print('Теперь Вы получаете 10 монет за 1 клик. Следующий уровень - 15 монет за 1 клик за 5000 очков')
        elif money == 5000:
            print('Теперь Вы получаете 15 монет за 1 клик. Следующий уровень - 25 монет за 1 клик за 10000 очков')
            moneta = """

        
        (15$)


    """
            moneyplus = 15

        elif money == 10010:
            moneta = """

        
        (25$)


    """
            moneyplus = 25

            print("Теперь Вы получаете 25 монет за 1 клик. Следующий уровень - 40 монет за 1 клик за 25000 очков")
        elif money == 25010:
            print("Теперь Вы получаете 40 монет за 1 клик. Это последний уровень прокачивания.")
            moneta = """

        
        (40$)


    """
            moneyplus = 40

        elif click == 'quit':
            work = False
            

def start():
    print("PythonOS")
    time.sleep(0.4)
    print("RAM - 256 MB")
    time.sleep(0.1)
    print("MEMORY - 512 MB")
    time.sleep(1)
    print("PythonOS is starting...")
    for i in tqdm(range(20)):
        time.sleep(0.1)
        if i == 20:
            break
    os.system('cls')
name = input("Введите ваше имя > ")
start()
print("Введите 'help', чтобы показать все команды")
while system == True:
    user_input = input("C:\\" + name + "\\> ")
    if user_input == "help":
        print("""
    Все команды:
    'help' - все команды
    'calc' - калькулятор
    'chance' - рассчитать вероятность
    'prime' - проверка числа на простоту
    'count' - счетчик нажатий
    'sysinfo' - информация о PythonOS
    'clear' или 'cls' - очистить консоль
    'games' - папка с играми
              
    'restart' - перезагрузить PythonOS
    'shutdown' - выключение PythonOS
    

    """)
    elif user_input == 'calc':
        a = float(input("Первое число > "))
        b = float(input("Второе число > "))
        math = input("Введите действие(+, -, *, /, ** - возведение в степень) > ")
        if math == '+':
            print("Сложение > ", a + b)
        elif math == '-':
            print("Вычитание > ", a - b)
        elif math == '/':
            print("Деление > ", a / b)
        elif math == '*':
            print("Умножение > ", a * b)
        elif math == '**':
            print(a ** b)
        else:
            print("Неверный знак действия!")
        
        
    elif user_input == 'chance':
        print("Вычисление единичной вероятности")
        good = int(input("Введите количесто благоприятных событий --> "))
        bad =  int(input("Введите количество всех событий --> "))
        if bad > good:
            theory = good / bad
            print("Вероятность по математически: ", theory)
            print("Вероятность в процентах: ", theory * 100)
        else:
            print("Событий меньше чем благоприятных! Такого не может быть.")

    elif user_input == 'prime':
        num = int(input("Введите число для проверки на простоту --> "))
        if num == 2:
            print("Число простое")
        for i in range(2, num):
            if num == 2:
                break
            elif num % i == 0:
                print("Число не простое")
                break 
            else:
                print("Число простое")
                break 
    elif user_input == 'clear' or 'cls':
        os.system('cls')
    elif user_input == 'shutdown':
        system = False
    elif user_input == 'count':
        print("Предупреждение! Счет не сохраняется.")
        countbool = True
        count = 0
        while countbool == True:
            click = input()
            count +=1
            os.system('cls')
            print(count)
    elif user_input == 'restart':
        os.system('cls')
        start()
    elif user_input == 'sysinfo':
        print("""
              
              RAM - 256 MB
              MEMORY - 512 MB
              PythonOS 1.1
              
              """)

    elif user_input == 'games':
        print("""
        Игры:
        
Кликер монет - команда 'clicker'


         """)
    elif user_input == 'clicker':
        clickgame()



    else:
        print("Неизвестная команда")



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

Автор решения: SurfaceStack
  • Ошибка в этом коде (Visual Studio говорит, что это 150-я строка):

    elif user_input == 'clear' or 'cls':

  • Ошибка в том, что любая непустая строка в питоне считается за True и в итоге мы получаем условие:

    elif user_input == 'clear' or True:

    Условие всегда верно и не выполнится любая команда после этой строки, а не только games или неверная.

  • Исправление такое:

    elif user_input == 'clear' or user_input == 'cls':

→ Ссылка