0

请帮助,因为我是一个真正的初学者,很想了解更多。我正在尝试了解有关循环的更多信息,因此请查看此代码。

# lets the user input first number
num1 = float(raw_input("Enter your first number  ---> "))

# lets the user input second number
num2 = float(raw_input("Enter your second number  ---> "))

#the next four lines sets the basic mathematical equations
addAns = num1+num2
subAns = num1-num2
mulAns = num1*num2
divAns = num1/num2

# ask the user to let the program know what equation to run with an 
option of running them all
operator = raw_input("What operator would you like to use(+,-,*,/ or ALL)")

#these if and else statements are based on the input by the user.         
Depending on the operator chosen it will print that equation.
if operator == "+":
    print "the result of:\t " ,num1, "+" ,num2, "=" ,addAns,
elif operator == "-":
    print "\nthe result of:\t " ,num1, "-" ,num2, "=" ,subAns,
elif operator == "*":
    print "\nthe result of:\t " ,num1, "*" ,num2, "=" ,mulAns,
elif operator == "/":
    print "\nthe result of:\t " ,num1, "/" ,num2, "=" ,divAns,
elif operator == "ALL" or "all" or "All":
    print "the result of:\t " ,num1, "+" ,num2, "=" ,addAns,
    print "\nthe result of:\t " ,num1, "-" ,num2, "=" ,subAns,
    print "\nthe result of:\t " ,num1, "*" ,num2, "=" ,mulAns,
    print "\nthe result of:\t " ,num1, "/" ,num2, "=" ,divAns,

问题是如果我要让用户告诉我是或否,我如何让这个程序重新开始,例如:

answer = raw_input("Would you like to try again?(yes or no)")
if answer = "yes"
    then restart?????
else answer = "no"
    print "Thanks for using my calculator!!!"
4

3 回答 3

1

您可以尝试定义一个函数 calc 或您想要的任何东西,并在该函数中编写整个代码,您可以在需要时直接调用该函数

def calc():
 your code

if answer == 'yes' or 'Yes':calc()
elif answer == 'no' or 'No':print "Thanks for using my calculator
于 2015-06-27T04:58:39.680 回答
0

更新: 您必须使用这样的while循环:

while True:
    # lets the user input first number
    num1 = float(raw_input("Enter your first number  ---> "))

    # lets the user input second number
    num2 = float(raw_input("Enter your second number  ---> "))

    #the next four lines sets the basic mathematical equations
    addAns = num1+num2
    subAns = num1-num2
    mulAns = num1*num2
    divAns = num1/num2

    # ask the user to let the program know what equation to run with an 
    #option of running them all
    operator = raw_input("What operator would you like to use(+,-,*,/ or ALL)")

    #these if and else statements are based on the input by the user.         
    #Depending on the operator chosen it will print that equation.
    if operator == "+":
        print "the result of:\t " ,num1, "+" ,num2, "=" ,addAns,
    elif operator == "-":
        print "\nthe result of:\t " ,num1, "-" ,num2, "=" ,subAns,
    elif operator == "*":
        print "\nthe result of:\t " ,num1, "*" ,num2, "=" ,mulAns,
    elif operator == "/":
        print "\nthe result of:\t " ,num1, "/" ,num2, "=" ,divAns,
    elif operator == "ALL" or "all" or "All":
        print "the result of:\t " ,num1, "+" ,num2, "=" ,addAns,
        print "\nthe result of:\t " ,num1, "-" ,num2, "=" ,subAns,
        print "\nthe result of:\t " ,num1, "*" ,num2, "=" ,mulAns,
        print "\nthe result of:\t " ,num1, "/" ,num2, "=" ,divAns,

    answer = raw_input("Would you like to try again?(yes or no)")
    if answer == 'no': break
print  "Thanks for using my calculator!!!"
于 2015-06-27T01:16:23.563 回答
0

您还可以创建一个名为 should_restart 的变量(或任何您想调用的变量)并在循环之前将其设置为 True 。然后设置循环在 should_restart 等于 True 时发生。然后你可以说如果用户输入是它继续但如果用户回答不是它设置 should_restart 等于 True

# decides whether to keep looping or not
should_restart = True
while should_restart == True:

    # lets the user input first number
    num1 = float(raw_input("Enter your first number  ---> "))

    # lets the user input second number
    num2 = float(raw_input("Enter your second number  ---> "))

    #the next four lines sets the basic mathematical equations
    addAns = num1+num2
    subAns = num1-num2
    mulAns = num1*num2
    divAns = num1/num2

    # ask the user to let the program know what equation to run with an 
    option of running them all
    operator = raw_input("What operator would you like to use(+,-,*,/ or ALL)")

    #these if and else statements are based on the input by the user.         
    Depending on the operator chosen it will print that equation.
    if operator == "+":
        print "the result of:\t " ,num1, "+" ,num2, "=" ,addAns,
    elif operator == "-":
        print "\nthe result of:\t " ,num1, "-" ,num2, "=" ,subAns,
    elif operator == "*":
        print "\nthe result of:\t " ,num1, "*" ,num2, "=" ,mulAns,
    elif operator == "/":
        print "\nthe result of:\t " ,num1, "/" ,num2, "=" ,divAns,
    elif operator == "ALL" or "all" or "All":
        print "the result of:\t " ,num1, "+" ,num2, "=" ,addAns,
        print "\nthe result of:\t " ,num1, "-" ,num2, "=" ,subAns,
        print "\nthe result of:\t " ,num1, "*" ,num2, "=" ,mulAns,
        print "\nthe result of:\t " ,num1, "/" ,num2, "=" ,divAns,
    answer = raw_input("Would you like to try again?(yes or no)")
    if answer == 'yes' or 'Yes':
        continue
    elif answer == 'no' or 'No':
        should_restart = False
于 2015-06-27T01:53:49.030 回答