小tip :首先在敲代码前,我们要整理思路,先构思出一个框架,不要盲目开始,这样你会无从下手


思路:

  1. 计算器中,要对数字运算 “加减乘除”,所以首先要拿到数字和运算符
  2. 拿到数据之后要判断是否为数字(若不是数字,要有具体应对措施)
  3. 接下来就是进行运算和输出结果
input_data = input("请输入:")
op_list = ["+", "-", "*", "/"]
for op in op_list:
    if op in input_data:
        result_tuple = input_data.partition(op)
if result_tuple[0].isdigit() and result_tuple[2].isdigit():
    num1 = int(result_tuple[0])
    num2 = int(result_tuple[2])
    if result_tuple[1] == "+":
        print(result_tuple[0], "+", result_tuple[2], "=", num1 + num2)
    elif result_tuple[1] == "-":
        print(result_tuple[0], "-", result_tuple[2], "=", num1 - num2)
    elif result_tuple[1] == "*":
        print(result_tuple[0], "*", result_tuple[2], "=", num1 * num2)
    elif result_tuple[1] == "/":
            print(result_tuple[0], "/", result_tuple[2], "=", num1 / num2)

举例:运算 7 - 8:
在这里插入图片描述


我们要考虑到程序的优化问题

可能遇到的问题:

  1. 用户输入的不是数字;
  2. 除数为 0 ;

优化:

  • 可以控制程序的开始或结束

优化后的程序:

while True:
    flag = 1
    input_data = input("请输入:")
    if input_data == "exit":
        print("正在退出.....")
        break
    result_tuple = ()
    op_list = ["+", "-", "*", "/"]
    for op in op_list:
        if op in input_data:
            result_tuple = input_data.partition(op)

    if result_tuple:        # 判断拿到的数据是否为我们想要的
        if result_tuple[0].isdigit() and result_tuple[2].isdigit():    # 判断拿到的是否为数字
            num1 = int(result_tuple[0])
            num2 = int(result_tuple[2])
            if result_tuple[1] == "+":
                print(result_tuple[0], "+", result_tuple[2], "=", num1 + num2)
            elif result_tuple[1] == "-":
                print(result_tuple[0], "-", result_tuple[2], "=", num1 - num2)
            elif result_tuple[1] == "*":
                print(result_tuple[0], "*", result_tuple[2], "=", num1 * num2)
            elif result_tuple[1] == "/":
                if num2 == 0:
                    flag = 0        # 对除数不能为 0 的异常进行操作
                else:
                    print(result_tuple[0], "/", result_tuple[2], "=", num1 / num2)
        else:
            flag = 0
    else:
        flag = 0       
    if flag == 0:
        print("输入有误,请重新输入!!!")
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐