Не отображаются ошибки ввода команды, а просто чистится консоль. 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':