Автоматизация физических задач и формул, а так же расчет продуктивности мозга написанная на Python

от автора

В этой статье я разберу структуру своей программы под названием “EINSTATION PLUS”, консольной утилиты для расчетов обычных физических величин и формул. Я автоматизировал порой обычные, но самые скучные расчеты. Чтобы по 10 часов не горбатиться над калькулятором, есть отдельные функции выполнения, для каждой формулы, или расчета величины. Так же опишу свою формулу Ebr(energy brain result) которую так же добавил в систему. Начнем с формулы F. Сила. В этом куске кода я добавил функции try & except для обработок ошибок, чтобы консоль не закрылась после первого же неправильного ввода, а так же уместил все формулы в функции, чтобы код не только состоял из if elif else.

Пример реализации функции расчета силы

def sila():    try:        m = float(input("Введите массу обьекта(кг): "))            a = float(input("Введите акселерацию(м\с2): "))            f = m * a        print(f"Сила: {f} Ньютонов.")    except ValueError:        os.system("color 4") # Смена цвета на красный при ошибке        print("Ошибка: Требуется числовой ввод!")        time.sleep(1)# ожидание, чтобы пользователь успел увидеть свою ошибку        os.system("color 2") # Возврат к зеленому

Так же у нас есть конвертер величин, т.е секунды в минуты, минуты в секунды, км\ч в мс\с и т.д. И так же я добавил обработку ошибок, и обработку нуля чтобы пользователь не сломал программу введя нуль.

Функция конвертера величин

def convect():    try:        com = input("Выберите что перевести(км/ч в м/c, м/с в км/ч, кг в г, км в м, лош в вт, м в с, с в м, час в с, час в м): ")        if com == 'кмч в мс':            qw = float(input("число(км/ч): "))            resu = qw / 3.6            print(f"РЕЗУЛЬТАТ: {resu:.3f} м/c")            comm = input("Сохранить данные?(Y/N): ").upper()            if comm == 'Y':                with open("РЕЗУЛЬТАТЫ МC.txt", "a", encoding="utf-8") as file:                    file.write(f"РЕЗУЛЬТАТ: {resu:.3f} м/c\n")                print("Успешно сохранено!")        elif com == 'мс в кмч':            gh = float(input("Число(м/с): "))            resuv = gh * 3.6            print(f"РЕЗУЛЬТАТ: {resuv} км/ч")            cvx = input("Сохранить результаты?(Y/N): ").upper()            if cvx == 'Y':                with open("РЕЗУЛЬТАТЫ МС В КМЧ.txt", "a", encoding="utf-8") as file:                    file.write(f"РЕЗУЛЬТАТ: {resuv} км/ч\n")                print("Успешно Сохранено!")            elif com == 'км в м':            er = float(input("Число(км): "))            resut = er * 1000            print(f"РЕЗУЛЬТАТ: {resut} м.")            chois = input("Сохранить данные?(Y/N): ").upper()            if chois == 'Y':                with open("РЕЗУЛЬТАТЫ М.txt", "a", encoding="utf-8") as file:                    file.write(f"РЕЗУЛЬТАТ: {resut} м.\n")                print("Успешно сохранено!")        elif com == 'м в км':            eri = float(input("Число(м): "))            resuti = eri / 1000            print(f"РЕЗУЛЬТАТ: {resuti} км.")            choisi = input("Сохранить данные?(Y/N): ").upper()            if choisi == 'Y':                with open("РЕЗУЛЬТАТЫ КМ.txt", "a", encoding="utf-8") as file:                    file.write(f"РЕЗУЛЬТАТ: {resuti} км.\n")                print("Успешно сохранено!")                elif com == 'м в с':            m = float(input("Введите минуты: "))            rv = m * 60            print(f"РЕЗУЛЬТАТ: {rv} с")            cvb = input("Сохранить результаты?(Y/N): ").upper()            if cvb == 'Y':                with open("РЕЗУЛЬТАТЫ М В С.txt", "a", encoding="utf-8") as file:                    file.write(f"РЕЗУЛЬТАТ: {rv} с")                print("Успешно сохранено!")            else:            os.system("color 4")            print("Ошибка: Неизвестная величина")            time.sleep(1)            os.system("color 2")    except ValueError:        print("Ошибка: Вводите цифры а не буквы")    except ZeroDivisionError:        print("Ошибка: Значение не может быть нулевым!")    except Exception as e:        print(f"Ошибка: {e}")

И так, это только один из примеров доступных функции данной консоли. Если бы я вставил в статье все функции и возможности, то текст просто бы не поместился. Но как пользоваться данной программой? Очень даже просто. Достаточно ввести величину, и сразу откроется необходимая функция. Если вы не знаете какую именно, то я отдельно добавил команду “help”. Которая сохраняет список доступных команд в файл txt. Но к сожалению я ее не доработал, и не добавил некоторые функции.

Пример сохранения списка команд в текстовом файле

elif command == 'help':        with open("Руководство Физика.txt", "a", encoding="utf-8") as file:            file.write("a - работа, ek - кинетическая энергия, n - КПД, l - таблица L, q - теплота, m - мощность, f - сила, конвертер, калькуляция, cкорость - вычисление скорости.\n")        print("Инструкция сохранена в файл.")

Ну и чтобы пользователь не лез открывать калькулятор(я без понятия для чего он это сделает), я добавил функцию calc. Обратите внимание что все переменные для записи чисел, я сделал в float(ну конечно это сделает любой, чего это я)

Функция “calc”

def calc():    try:        char1 = float(input(": "))                sim = input(": ")                char2 = float(input(": "))        if sim == '+':            res = char1 + char2                        print(f"{char1:.3f} + {char2:.3f} = {res:.3f}")            var4 = input("Сохранить данные?(Y/N): ").upper()            if var4 == 'Y':                with open("РЕЗУЛЬТАТЫ ПРИБАВЛЕНИЯ.txt", "a", encoding="utf-8") as file:                    file.write(f"{char1:.3f} + {char2:.3f} = {res:.3f}\n")        elif sim == '*':            res2 = char1 * char2                      print(f"{char1:.3f} * {char2:.3f} = {res2:.3f}")            var3 = input("Сохранить данные?(Y/N): ").upper()            if var3 == 'Y':                with open("РЕЗУЛЬТАТЫ УМНОЖЕНИЯ.txt", "a", encoding="utf-8") as file:                    file.write(f"{char1:.3f} * {char2:.3f} = {res2:.3f}\n")        elif sim == '/':            res3 = char1 / char2                        print(f"{char1:.3f} / {char2:.3f} = {res3:.3f}")            var2 = input("Сохранить данные?(Y/N): ").upper()            if var2 == 'Y':                with open("РЕЗУЛЬТАТЫ ДЕЛЕНИЯ.txt", "a", encoding="utf-8") as file:                    file.write(f"{char1:.3f} / {char2:.3f} = {res3:.3f}\n")                print("Успешно сохранено")        elif sim == '%':            res4 = char1 * 100                       print(f"{char1:.2f} = {res4:.2f}%")            var1 = input("Сохранить данные?(Y/N): ").upper()            if var1 == 'Y':                with open("РЕЗУЛЬТАТЫ ПРОЦЕНТОВ.txt", "a", encoding="utf-8") as file:                    file.write(f"{char1:.2f} = {res4:.2f}%\n")                print("Успешно Сохранено!")        elif sim == '-':            res5 = char1 - char2            print(f"{char1:.3f} - {char2:.3f} = {res5:.3f}")            var6 = input("Сохранить данные?(Y/N): ").upper()            if var6 == 'Y':                with open("РЕЗУЛЬТАТЫ ВЫЧИТАНИЯ.txt", "a", encoding="utf-8") as file:                    file.write(f"{char1:.3f} - {char2:.3f} = {res5:.3f}\n")    except Exception as e:        print(f"ОШИБКА - {e}")

Итак, когда я уже показал вам пример структуры моего кода, я покажу вам разработанную формулу продуктивности человека. То есть, время работы, сон, его масса и интеллект. Вы спросите как масса может быть связана с мозгом? Допустим я могу быть 120 кг, но интеллект потребителя. Тоже верно! Но мы не говорим о том что вес напрямую влияет на интеллект, мы говорим лишь часть процентов. Далее в этой формуле есть iq. Ну да, порой можно определить свой интеллект просто определив свой iq и быть гением, но без сна, учебы и работы iq просто уйдет коту под хвост. Поэтому я разработал эту формулу. Звучит как бред но посчитайте сами!

Формула продуктивности мозга (Ebr)

Ebr = \frac{m \cdot c \cdot i \cdot W}{100,000,000 \cdot (S/2)}

Для чего (S/2)? Для так сказать штрафа за сон, либо же если мы не поспали 8 часов, или больше то мы просто делим на 2. Если поспали 6 часов на 4, поспали 4 делим на 6. Итого мы получим двухзначное, или трехзначное число. Но как потом определить какого уровня мой мозг? Легко. Если у вас вышло меньше 100, то к сожалению вы обычный паразит потребитель. Да, горькая правда. Если 100, то вы обычный человек, ходящий на работу и учебу при этом не интересуясь чем то лишним в вашей жизни. Если больше 100 или больше 200 поздравляю! Вы родились гением работягой, у вас есть шансы на то что бы стать знаменитым, или богатым. И кстати данную формулу я тоже добавил в консоль.

Функция уровня продуктивности

def Pm():    try:        m = float(input("Введите массу: "))            i = float(input("Введите айкью человека(если не знаете то примерно 50 ед тупой - 100 ед умный.): "))                workh = float(input("Введите рабочее время человека(учеба, или просто работа): "))                sleph = float(input("Введите сколько часов спит человек: "))            io = input("Введите имя человека: ")                sleep_penalty = 2**(sleph / 8) / 2                c = 300000            base_pm = (m * c * i) / 100000000                final_score = (base_pm * workh) * sleep_penalty                                    print(f"Отчет о продуктивности мозга {io.upper():<27}")                print(f"Базовый потенциал равняется {base_pm:<28}%")                print(f"Коэфицент Бодрости - {sleep_penalty:<32}%")                print(f"ИТОГОВАЯ ПРОДУКТИВНОСТЬ: {final_score:<28}%")                kml = input("Сохранить результаты в блокноте?(Y/N): ").upper()        if kml == 'Y':            with open("РЕЗУЛЬТАТЫ ПРОДУКТИВНОСТИ ЧЕЛОВЕКА.txt", "a", encoding="utf-8") as file:                file.write(f"Отчет о продуктивности мозга {io.upper()}")                file.write(f"Базовый потенциал равняется {base_pm}%")                file.write(f"Коэфицент Бодрости - {sleep_penalty}%")                file.write(f"ИТОГОВАЯ ПРОДУКТИВНОСТЬ: {final_score}%")                file.write("-" * 30 + "\n")            print("Успешно занесено в текстовый лог.")    except ZeroDivisionError:        os.system("color 4")        print("ОШИБКА: Значение не может быть нулевым!")                    time.sleep(1)                    os.system("color 2")     except ValueError:        os.system("color 4")                   print("ОШИБКА: Вводите цифры а не буквы!")                 time.sleep(1)                os.system("color 2")

На этом статья заканчивается. Это был первый шаг выложить что то на habr. Да скорее всего какой то 13 летний школьник преувеличивает, что сможет создать свою формулу. Да в чем то вы правы. И я не спорю Так же я готов принимать критику, прошу отправлять мне комментарии по поводу ошибок в коде. Я полностью готов к дискуссии. Ну и наконец исходный код, если хотите его подработать или разместить прошу оставить мой никнейм или ссылку на мою статью. Ну и если хотите можете писать мне если есть идея, потому что у меня нет с кем можно поговорить по поводу кода или программирования.

Исходный код

# -*- coding: utf-8 -*-import osimport timeos.system("color 2")def sped():    try:        s = float(input("Введите пройденное растояние(м): "))        t = float(input("Введите время(сек): "))        v = s / t        print(f"РЕЗУЛЬТАТ: {v} м/c")        comisat = input("Сохранить результаты?(Y/N): ").upper()        if comisat == 'Y':            with open("РЕЗУЛЬТАТЫ СКОРОСТИ.txt", "a", encoding="utf-8") as file:                file.write(f"РЕЗУЛЬТАТ: {v} м/c\n")            print("Успешно Сохранено!")              except ZeroDivisionError:        os.system("color 4")        print("Ошибка: Результат не может быть нулевым!")        time.sleep(1)        os.system("color 2")    except ValueError:        os.system("color 4")        print("Ошибка: Пишите цифры а не буквы!")        time.sleep(1)        os.system("color 2")    def convect():    try:        com = input("Выберите что перевести(км/ч в м/c, м/с в км/ч, кг в г, км в м, лош в вт, м в с, с в м, час в с, час в м): ")        if com == 'кмч в мс':            qw = float(input("число(км/ч): "))            resu = qw / 3.6            print(f"РЕЗУЛЬТАТ: {resu:.3f} м/c")            comm = input("Сохранить данные?(Y/N): ").upper()            if comm == 'Y':                with open("РЕЗУЛЬТАТЫ МC.txt", "a", encoding="utf-8") as file:                    file.write(f"РЕЗУЛЬТАТ: {resu:.3f} м/c\n")                print("Успешно сохранено!")        elif com == 'мс в кмч':            gh = float(input("Число(м/с): "))            resuv = gh * 3.6            print(f"РЕЗУЛЬТАТ: {resuv} км/ч")            cvx = input("Сохранить результаты?(Y/N): ").upper()            if cvx == 'Y':                with open("РЕЗУЛЬТАТЫ МС В КМЧ.txt", "a", encoding="utf-8") as file:                    file.write(f"РЕЗУЛЬТАТ: {resuv} км/ч\n")                print("Успешно Сохранено!")            elif com == 'км в м':            er = float(input("Число(км): "))            resut = er * 1000            print(f"РЕЗУЛЬТАТ: {resut} м.")            chois = input("Сохранить данные?(Y/N): ").upper()            if chois == 'Y':                with open("РЕЗУЛЬТАТЫ М.txt", "a", encoding="utf-8") as file:                    file.write(f"РЕЗУЛЬТАТ: {resut} м.\n")                print("Успешно сохранено!")        elif com == 'м в км':            eri = float(input("Число(м): "))            resuti = eri / 1000            print(f"РЕЗУЛЬТАТ: {resuti} км.")            choisi = input("Сохранить данные?(Y/N): ").upper()            if choisi == 'Y':                with open("РЕЗУЛЬТАТЫ КМ.txt", "a", encoding="utf-8") as file:                    file.write(f"РЕЗУЛЬТАТ: {resuti} км.\n")                print("Успешно сохранено!")                elif com == 'м в с':            m = float(input("Введите минуты: "))            rv = m * 60            print(f"РЕЗУЛЬТАТ: {rv} с")            cvb = input("Сохранить результаты?(Y/N): ").upper()            if cvb == 'Y':                with open("РЕЗУЛЬТАТЫ М В С.txt", "a", encoding="utf-8") as file:                    file.write(f"РЕЗУЛЬТАТ: {rv} с")                print("Успешно сохранено!")            else:            os.system("color 4")            print("Ошибка: Неизвестная величина")            time.sleep(1)            os.system("color 2")    except ValueError:        print("Ошибка: Вводите цифры а не буквы")    except ZeroDivisionError:        print("Ошибка: Значение не может быть нулевым!")    except Exception as e:        print(f"Ошибка: {e}")def calc():    try:        char1 = float(input(": "))                sim = input(": ")                char2 = float(input(": "))        if sim == '+':            res = char1 + char2                        print(f"{char1:.3f} + {char2:.3f} = {res:.3f}")            var4 = input("Сохранить данные?(Y/N): ").upper()            if var4 == 'Y':                with open("РЕЗУЛЬТАТЫ ПРИБАВЛЕНИЯ.txt", "a", encoding="utf-8") as file:                    file.write(f"{char1:.3f} + {char2:.3f} = {res:.3f}\n")        elif sim == '*':            res2 = char1 * char2                      print(f"{char1:.3f} * {char2:.3f} = {res2:.3f}")            var3 = input("Сохранить данные?(Y/N): ").upper()            if var3 == 'Y':                with open("РЕЗУЛЬТАТЫ УМНОЖЕНИЯ.txt", "a", encoding="utf-8") as file:                    file.write(f"{char1:.3f} * {char2:.3f} = {res2:.3f}\n")        elif sim == '/':            res3 = char1 / char2                        print(f"{char1:.3f} / {char2:.3f} = {res3:.3f}")            var2 = input("Сохранить данные?(Y/N): ").upper()            if var2 == 'Y':                with open("РЕЗУЛЬТАТЫ ДЕЛЕНИЯ.txt", "a", encoding="utf-8") as file:                    file.write(f"{char1:.3f} / {char2:.3f} = {res3:.3f}\n")                print("Успешно сохранено")        elif sim == '%':            res4 = char1 * 100                       print(f"{char1:.2f} = {res4:.2f}%")            var1 = input("Сохранить данные?(Y/N): ").upper()            if var1 == 'Y':                with open("РЕЗУЛЬТАТЫ ПРОЦЕНТОВ.txt", "a", encoding="utf-8") as file:                    file.write(f"{char1:.2f} = {res4:.2f}%\n")                print("Успешно Сохранено!")        elif sim == '-':            res5 = char1 - char2            print(f"{char1:.3f} - {char2:.3f} = {res5:.3f}")            var6 = input("Сохранить данные?(Y/N): ").upper()            if var6 == 'Y':                with open("РЕЗУЛЬТАТЫ ВЫЧИТАНИЯ.txt", "a", encoding="utf-8") as file:                    file.write(f"{char1:.3f} - {char2:.3f} = {res5:.3f}\n")    except Exception as e:        print(f"ОШИБКА - {e}")def Pm():    try:        m = float(input("Введите массу: "))            i = float(input("Введите айкью человека(если не знаете то примерно 50 ед тупой - 100 ед умный.): "))                workh = float(input("Введите рабочее время человека(учеба, или просто работа): "))                sleph = float(input("Введите сколько часов спит человек: "))            io = input("Введите имя человека: ")                sleep_penalty = 2**(sleph / 8) / 2                c = 300000            base_pm = (m * c * i) / 100000000                final_score = (base_pm * workh) * sleep_penalty                                    print(f"Отчет о продуктивности мозга {io.upper():<27}")                print(f"Базовый потенциал равняется {base_pm:<28}%")                print(f"Коэфицент Бодрости - {sleep_penalty:<32}%")                print(f"ИТОГОВАЯ ПРОДУКТИВНОСТЬ: {final_score:<28}%")                kml = input("Сохранить результаты в блокноте?(Y/N): ").upper()        if kml == 'Y':            with open("РЕЗУЛЬТАТЫ ПРОДУКТИВНОСТИ ЧЕЛОВЕКА.txt", "a", encoding="utf-8") as file:                file.write(f"Отчет о продуктивности мозга {io.upper()}")                file.write(f"Базовый потенциал равняется {base_pm}%")                file.write(f"Коэфицент Бодрости - {sleep_penalty}%")                file.write(f"ИТОГОВАЯ ПРОДУКТИВНОСТЬ: {final_score}%")                file.write("-" * 30 + "\n")            print("Успешно занесено в текстовый лог.")    except ZeroDivisionError:        os.system("color 4")        print("ОШИБКА: Значение не может быть нулевым!")                    time.sleep(1)                    os.system("color 2")     except ValueError:        os.system("color 4")                   print("ОШИБКА: Вводите цифры а не буквы!")                 time.sleep(1)                os.system("color 2")def n_kpd():    try:        ap = float(input("Введите полезную работу(ДЖ): "))            az = float(input("Введите затраченную работу(ДЖ): "))            n = (ap / az) * 100            print(f"Коэфицент полезного действия: {n:.2f} %\n")        nm = input("Сохранить результаты в текстовый файл?(Y - да, N - нет): ").upper()        if nm == 'Y':            with open("РЕЗУЛЬТАТ КПД.txt", "a", encoding="utf-8") as file:                         file.write(f"Коэфицент полезного действия: {n:.2f} %\n")            print("Успешно занесено в текстовый файл.")    except ZeroDivisionError:        os.system("color 4")        print("ОШИБКА! Значение числа не может быть равна нулю!")                time.sleep(1)                os.system("color 2")    except ValueError:        os.system("color 4")        print("ОШИБКА! Вводите цифры а не буквы!")            time.sleep(1)                os.system("color 2")def Epor():    try:        C = float(input("Введите емкость: "))           m = float(input("Введите массу: "))            Ep = C * m * 300000 / 2            print(f"Заряд портативной энергии: {Ep} рунков.")    except ValueError:        os.system("color 4")            print("Ошибка: Вводите цифру а не букву!")                time.sleep(1)                os.system("color 2")    except ZeroDivisionError:        os.system("color 4")        print("Ошибка: Число не может быть нулевым!")                time.sleep(1)                os.system("color 2")def eot():    try:        ebr = float(input("Введите процент продуктивности мозга(Ebr): "))        eot = float(input("Сколько часов в день вы проводите за соцсетями?: "))                resbi = ebr / eot        print(f" Результат - {resbi} %")        xi = input("Сохранить результат?(Y/N): ").upper        if xi == 'Y':            with open("РЕЗУЛЬТАТ EBRot.txt", "a", encoding="utf-8") as file:                file.write(f" Результат - {resbi} %\n")            print("Успешно сохранено!")    except ValueError:        os.system("color 4")        print("Ошибка: Пишите цифры а не буквы!")        time.sleep(1)        os.system("color 2")    except ZeroDivisionError:        os.system("color 4")        print("Ошибка: Значение не может быть нулевым!")        time.sleep(1)        os.system("color 2")    def ek():    try:        m = float(input("Введите массу: "))            v = float(input("Введите скорость: "))            v2 = v * v            ek_res = m * v2 / 2            print(f"Ответ энергия равняется {ek_res} джоулей.")    except ValueError:        os.system("color 4")                print("Ошибка: Пишите цифры а не буквы!")               time.sleep(1)                os.system("color 2")    except ZeroDivisionError:        os.system("color 4")                print("Ощибка: число не может быть равным нулю?")                time.sleep(1)               os.system("color 2")def utep():    try:        l = float(input("Введите уд теп парообразования(дж/кг): "))            m = float(input("Введите массу(кг): "))            q = l * m            print(f"Количество теплоты: {q} Дж")    except ZeroDivisionError:        os.system("color 4")               print("Ошибка! файл не может быть равным нулю!")                time.sleep(1)                os.system("color 2")    except ValueError:        os.system("color 4")                print("Ошибка: Пишите цифры а не буквы!")                time.sleep(1)                os.system("color 2")def mosh():    try:        a = float(input("Введите мех.работу: "))            t = float(input("Введите время работы: "))           n = a / t        print(f"Составная мощность: {n} вт")    except ZeroDivisionError:        os.system("color 4")                print("Ошибка: Число не может быть равным нулю!")                time.sleep(1)                os.system("color 2")    except ValueError:        os.system("color 4")               print("Ошибка: Пишите цифры а не буквы!")                time.sleep(1)                os.system("color 2")def sila():    try:        m = float(input("Введите массу обьекта(кг): "))            a = float(input("Введите акселерацию(м\с2): "))            f = m * a             print(f"Сила должна быть: {f} Ньютонов.")    except ZeroDivisionError:        os.system("color 4")            print("Ошибка: Число не может быть равным нулю!")                time.sleep(1)               os.system("color 2")    except ValueError:        os.system("color 4")                print("Ошибка: Пишите цифры а не буквы!")                time.sleep(1)               os.system("color 2")def rabota():    try:        f = float(input("Введите силу(Н): "))            s = float(input("Введите пройденый путь: "))            a = f * s            print(f"Механическая работа: {a} Дж.")    except ZeroDivisionError:            os.system("color 4")                print("Ошибка: Число не может быть равным нулю!")                time.sleep(1)                os.system("color 2")    except ValueError:        os.system("color 4")                print("Ошибка: Пишите цифры а не буквы!")                time.sleep(1)                os.system("color 2")def baza():    materials = {    "вода": 2300000,    "спирт": 900000,    "ртуть": 1400000,    }    material = input("Что надо испарить: ")    if material in materials:        L = materials[material]              print(f"L для {material} равен: {L} дж/кг")    else:        print("Такого материала нет в базе данных!")def main():        print("\n" + "#"*60)    print("""  ______ _____ _   _  _____ _______    _______ _____ ____  _   _  |  ____|_   _| \ | |/ ____|__   __|/\|__   __|_   _/ __ \| \ | | | |__    | | |  \| | (___    | |  /  \  | |    | || |  | |  \| | |  __|   | | | . ` |\___ \   | | / /\ \ | |    | || |  | | . ` | | |____ _| |_| |\  |____) |  | |/ ____ \| |   _| || |__| | |\  | |______|_____|_| \_|_____/_  |_/_/    \_\_|  |_____\____/|_| \_|    """)    print(""" ______  _     _    _  _____ |  __ \| |   | |  | |/ ____|   _                                   | |__) | |   | |  | | (___   _| |_                                 |  ___/| |   | |  | |\___ \ |_   _|                               | |    | |___| |__| |____) |  |_|                                  |_|    |______\____/|_____/        """)    print("    [ --- EINSTATION PLUS + PROTUPE DK --- ]")    print("    Лучший помошник физика.")    print("    Пользуется даже сам Эйнштейн :)")    print("#"*60)                print("[ | help - для подробной информации | ]")        command = input("\n>> ")        if command == 'f':        sila()    elif command == 'a':        rabota()    elif command == 'm':        mosh()    elif command == 'q':        utep()    elif command == 'l':            baza()    elif command == 'ek':            ek()    elif command == 'epor':        Epor()    elif command == 'help':        with open("Руководство Физика.txt", "a", encoding="utf-8") as file:            file.write("a - работа, ek - кинетическая энергия, n - КПД, l - таблица L, q - теплота, m - мощность, f - сила, конвертер, калькуляция, cкорость - вычисление скорости.\n")        print("Инструкция сохранена в файл.")    elif command == 'n':           n_kpd()    elif command == 'pm':            Pm()    elif command == 'калькуляция':        calc()    elif command == 'конвертер':        convect()    elif command == 'скорость':        sped()       elif command == 'ebrot':        eot()    elif command == 'выход':        print("Нажмите Ctrl+C")    else:        os.system("color 4")                print("Ошибка: Такой команды нет!")                time.sleep(1)                os.system("color 2")while True:    try:        main()    except KeyboardInterrupt:        print("\n\n" + "▒"*40)        print("      S Y S T E M   C L O S E D")        print("▒"*40 + "\n")                time.sleep(1)                break

ссылка на оригинал статьи https://habr.com/ru/articles/1025052/