循环简单计算器:不会循环回原始输入

时间:2018-01-11 21:18:26

标签: python loops calculator

简单的计算器。询问以下内容:

1)输入数字1

2)输入数字2

3)你想做什么,加/减/多/除?

如果用户对问题1有正确的输入,但问题2或3的输入不正确,则会将他们引导回问题1.我想知道问题2的无效输入如何重定向回到问题2以便用户可以再试一次。如果问题3收到无效输入,我希望它重定向回问题3,以便用户可以再试一次。

{{1}}

2 个答案:

答案 0 :(得分:1)

只需使用一个循环来检查每个操作/步骤,如果有效则继续,如果没有则继续循环。

def tryUntilSuccess(prompt,range=None):
    while True:
        try:
            result = int(input(prompt))
            if range and result not in range:
                raise Exception
            else:
                return result
        except:
            print("invalid input. Try again")

def main():
    num1 = tryUntilSuccess("What is number 1?")
    num2 = tryUntilSuccess("What is number 2?")
    operation = tryUntilSuccess("What do you want to do? 1. add, 2. subtract, 3. multiply, or 4. divide. Enter number:", [1,2,3,4])

    if (operation == 1):
        print("Adding...")
        print(add(num1, num2))
    elif (operation == 2):
        print("Subtracting...")
        print(sub(num1, num2))
    elif (operation == 3):
        print("Multiplying...")
        print(mul(num1, num2))
    elif (operation == 4):
        print("Dividing...")
        print(div(num1, num2))
    else:
        print("I should not be printed.")
main()

答案 1 :(得分:0)

虽然有很多方法可以做到这一点,但这可能是最容易理解的方式。

代码:

var connectionString = ConfigurationManager.ConnectionStrings["MyDatabaseCS"].ConnectionString;