Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中添加重启命令?_Python_Restart_Python 3.4 - Fatal编程技术网

如何在python中添加重启命令?

如何在python中添加重启命令?,python,restart,python-3.4,Python,Restart,Python 3.4,这是我写的一个简单的计算器,但完成后它不会重新启动应用程序 这是我的代码: def add(x, y): return x + y def subtract(x, y): return x - y def multiply(x, y): return x * y def divide(x, y): return x / y print("Select from the list bellow which oporation you want the calculato

这是我写的一个简单的计算器,但完成后它不会重新启动应用程序 这是我的代码:

 def add(x, y):

 return x + y

def subtract(x, y):

return x - y

def multiply(x, y):

 return x * y

def divide(x, y):

 return x / y


 print("Select from the list bellow which oporation you want the calculator to do.")
 print("A.Add")
 print("S.Subtract")
 print("M.Multiply")
 print("D.Divide")

 choice = input("Enter choice(a/s/m/d):")
 if choice != 'a' and choice != 's' and choice != 'm' and choice != 'd':
     print (" the letter you intered is not in our lists!")

 num1 = int(input("Enter an interger as your first number: "))
 num2 = int(input("Enter an integer as second number: "))
 if choice == 'a':
    print(num1,"+",num2,"=", add(num1,num2))

 elif choice == 's':
    print(num1,"-",num2,"=", subtract(num1,num2))

 elif choice == 'm':
    print(num1,"*",num2,"=", multiply(num1,num2))

 elif choice == 'd':
    print(num1,"/",num2,"=", divide(num1,num2))
 else:
    print("Invalid input")
 input("press enter to close")

当它完成时,我希望它询问用户是否要重新启动。我在循环它不工作时使用了不同的方法。

您需要在while循环中包装处理用户输入的部分。在选择过程中,您还需要一个选项来打破while循环。我添加了一个处理退出循环的输入值e。最后的第一个if语句和else语句是多余的,所以我也稍微改变了它们

def add(x, y):
    return x + y

def subtract(x, y):
    return x - y

def multiply(x, y):
    return x * y

def divide(x, y):
    return x / y


while True:
    print("Select from the list bellow which oporation you want the calculator to do.")
    print("A.Add")
    print("S.Subtract")
    print("M.Multiply")
    print("D.Divide")
    print("E.Exit")

    choice = input("Enter choice(a/s/m/d/e):")
    if choice != 'a' and choice != 's' and choice != 'm' and choice != 'd' and choice != 'e':
        print (" the letter you intered is not in our lists!")
    else:
        num1 = int(input("Enter an interger as your first number: "))
        num2 = int(input("Enter an integer as second number: "))
        if choice == 'a':
            print(num1,"+",num2,"=", add(num1,num2))

        elif choice == 's':
            print(num1,"-",num2,"=", subtract(num1,num2))

        elif choice == 'm':
            print(num1,"*",num2,"=", multiply(num1,num2))

        elif choice == 'd':
            print(num1,"/",num2,"=", divide(num1,num2))
        elif choice == 'e':
            print("Goodbye")
            break

只需循环,直到用户想要退出:

def main():
    print('Select from  the list below which operation you want the calculator to do.')
    print("A.Add")
    print("S.Subtract")
    print("M.Multiply")
    print("D.Divide")
    while True:
        choice = input("Enter choice(a/s/m/d) or q to quit:")
        if choice not in {"a", "s", "m", "d","q"}:
            print (" the letter you entered is not in our lists!")
            continue # if invalid input, ask for input again
        elif choice == "q":
            print("Goodbye.")
            break
        num1 = int(input("Enter an integer as your first number: "))
        num2 = int(input("Enter an integer as second number: "))
        if choice == 'a':
            print("{} + {} = {}".format(num1, num2, add(num1, num2)))
        elif choice == 's':
            print("{} - {} = {}".format(num1, num2, subtract(num1, num2)))
我曾经打印您的输出,if choice not in{a,s,m,d,q}用于测试替换长if语句

您可能希望将int输入包装在try/except中,以避免在用户输入错误时程序崩溃

try:
   num1 = int(input("Enter an interger as your first number: "))
   num2 = int(input("Enter an integer as second number: "))
except ValueError:
   continue
如果您想按照评论中的示例进行操作:

def main():
    print('Select from  the list below which operation you want the calculator to do.')
    print("A.Add")
    print("S.Subtract")
    print("M.Multiply")
    print("D.Divide")
    while True:
        choice = raw_input("Enter choice(a/s/m/d)")
        if choice not in {"a", "s", "m", "d","q"}:
            print (" the letter you entered is not in our lists!")
            continue
        num1 = int(input("Enter an integer as your first number: "))
        num2 = int(input("Enter an integer as second number: "))
        if choice == 'a':
            print("{} + {} = {}".format(num1, num2, add(num1, num2)))
        elif choice == 's':
            print("{} - {} = {}".format(num1, num2, subtract(num1, num2)))
        inp = input("Enter 1 to play again or 2 to exit")
        if inp == "1":
            main()
        else:
            print("thanks for playing")
            break
与此相反:

if choice != 'a' and choice != 's' and choice != 'm' and choice != 'd' and choice != 'e':
        print (" the letter you intered is not in our lists!")
else:
        num1 = int(input("Enter an interger as your first number: "))
        num2 = int(input("Enter an integer as second number: "))
使用以下命令:

if choice != 'a' and choice != 's' and choice != 'm' and choice != 'd' and choice != 'e':
        print (" the letter you intered is not in our lists!")
elif choice==e:
        print("goodbye")
        break
else:
        num1 = int(input("Enter an interger as your first number: "))
        num2 = int(input("Enter an integer as second number: "))

请向我们展示您尝试的while循环,以便我们可以帮助您理解它为什么不起作用。您的缩进是错误的。您的问题没有显示while循环,因此无法说出您假设的循环为什么不起作用。如果选择不在{a,s,m,d}可以替换长if语句这是我使用的while循环之一:“code”while True:restart=input键入1重新播放,键入2表示否:if restart==1:main else:print感谢您播放break@winstonewert,而True无效当用户按下e时,语法和代码不会退出