Можно ли сделать python скрипт l oop и начать заново - PullRequest
0 голосов
/ 20 июня 2020

Можно ли вернуть программу go в исходное состояние после ее запуска. Например, ниже я сделал скрипт калькулятора. Можно ли заставить его запускаться заново после вывода ответа вместо того, чтобы пользователю приходилось выходить из скрипта и запускать его снова. Код:

class bcolors:
    Red = '\033[91m'
    Green = '\033[92m'
    Blue = '\033[94m'
    Cyan = '\033[96m'
    White = '\033[97m'
    Yellow = '\033[93m'
    Magenta = '\033[95m'
    Grey = '\033[90m'
    Black = '\033[90m'
    Default = '\033[99m'
#code for addition
def addition(x, y):
        return x + y
#code for subtraction
def subtraction(x, y):
        return x - y
#code for multiplication
def multiplication(x, y):
        return x * y
#code for division
def division(x, y):
        return x / y

print(bcolors.Blue + "Hey and welcome to my first python program")
print("This is a calculater I made in my spare time!")
print(bcolors.Magenta + "Simply type in your question here and you will get answer.")
print(bcolors.Red + "This program is made by and credited to Mohammad Al Nesef")
print(bcolors.Yellow + "1.addition")
print(bcolors.Yellow + "2.subtraction")
print(bcolors.Yellow + "3.multiplication")
print(bcolors.Yellow +"4.division")
choice = input(bcolors.Green + "Enter choice(1/2/3/4: ")
num1 = input(bcolors.Blue + "Enter first number: ")
num2 = (input(bcolors.Magenta + "Enter second number: "))
if choice == '1':
        print(float(num1), "+", float(num2), "=",  addition(num1,num2))

elif choice == "2":
        print(float(num1), "-", float(num2), "=", subtraction(num1,num2))

elif choice == "3":
        print(float(num1), "*", float(num2), "=", multiplication(num1,num2))

elif choice == "4":
        print(float(num1), "/", float(num2), "=", division(num1,num2))

else:
        print("Invalid Input")

Ответы [ 3 ]

0 голосов
/ 20 июня 2020

На самом деле вам не следовало ставить лишнюю скобку перед «input» в строке 35

num2 =(input("Enter second number: ")

фактический код должен быть:

num2 =input("Enter second number: ")
0 голосов
/ 20 июня 2020

Если вы ищете жесткий перезапуск самого скрипта без изящной обработки с помощью еще нескольких строк, тогда вызовите функцию ниже, когда вы хотите начать заново:

def restart_calc_script():
    import sys
    print("resetting the calculator.")
    import os
    os.execv(sys.executable, ['python'] + sys.argv)
0 голосов
/ 20 июня 2020

Вы не закрыли скобку в этой строке: num2 = (input("Enter second number: ")

Также обратите внимание на использование такого же отступа для вашего файла. Это означает 4 пробела для соответствия PEP8.

...