如何回到Python中的原始提示

时间:2015-03-03 22:18:49

标签: python python-2.7

我正在尝试创建一个基本计算器,它接受第一个数字,接受操作(+, - ,*,/)和第二个数字。如果一个人为第一个数字和/或第二个数字输入一个零,我的程序应该回到它所在的数字并再次询问一个非0的数字。所以如果一个人输入数字2的0然后我的程序将把这个人带回第二。我也应该为操作做同样的概念,但如果他们没有提供可用的操作,包括之前在括号中显示的操作,则让人重新开始。下面是我到目前为止的代码。任何帮助,将不胜感激。我的班级目前正处于循环和休息之中,但我想知道这两个是否对我的代码有益。

#Programming Fundamentals Assignment Unit 5
#Create a basic calculator function

while True:
#Num1 will require user input  
    num1 = input ("Enter the first number\n")

#Operation will require user input  
    operation = raw_input("Enter the operation(+,-,*,/)\n")

#Num2 will require user input    
    num2 = input("Enter the second number\n")

#Now to define how the operation will be used
    if operation == "+":
        print num1+num2
    elif operation == "-":
        print num1-num2
    elif operation == "*":
        print num1*num2
    elif operation == "/":
        print num1/num2
    else:
        print "Please enter an operation"

#Exit will end the calculation from going into a loop    
exit()

1 个答案:

答案 0 :(得分:1)

在各种输入周围放置循环以确保正确检查。所以对于第一个数字,您可以:

num1 = 0
while num1 == 0:
    num1 = input ("Enter the first number\n")

这将继续询问,直到他们输入的东西不是0。

对于第二个问题(如果他们输入无效操作则重新开始),你想立即检查操作是否有效,如果不是,那么你需要重新循环(这只是跳过当前循环的其余部分)。

所以要轻松检查它是否有效:

operation not in ["+","-","*","/"]

如果输入无效将返回false,然后第二部分(跳过其余的循环)可以通过" continue"轻松完成。关键字。

if operation not in ["+","-","*","/"]:
    continue

这将带您回到循环的开头,询问新的第一个数字。

当你想停止执行时,你需要实施" break"这将打破它所属的内部循环。