Python 简易计算器:四则运算实现与用户输入验证

wzzyhg 71 0

简易计算器程序分析

题目描述

编写一个简单的计算器程序,支持加法、减法、乘法和除法操作。程序需要处理非法输入(如非数字、无效操作符等)以及除以零的情况,并允许用户随时退出。

代码功能分析

  1. 功能模块化
    • 运算函数:定义了 add(加)、subtract(减)、multiply(乘)、divide(除)函数,分别实现基本的四则运算。
    • 除法函数:包含除以零的检查,避免程序崩溃。
    • 主函数 calculator:负责程序整体逻辑,包括:
    • 与用户交互。
    • 验证用户输入是否合法。
    • 调用运算函数完成计算。
    • 输出结果。

  2. 主逻辑

    1. 循环控制:
      • 用 while True 循环实现持续运行,直到用户输入 exit 退出。
      • 嵌套 while 验证输入的数字是否有效,防止非法输入。
    2. 用户输入:
      • 提示用户输入操作符(+, -, *, /),并检查是否有效。
      • 提示输入两个数字,验证数字合法性。
    3. 运算分支:
      • 根据操作符选择对应的运算函数(+ 调用 add,- 调用 subtract 等)。
      • 输出计算结果。
    4. 用户友好性:
      • 非法输入时给出明确提示,例如:
      • 非法操作符:提示重新输入。
      • 非数字:提示输入有效数字。
      • 支持用户随时输入 exit 退出程序。

代码示例

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

def divide(a, b):
    if b == 0:
        return "被除数不能为0"
    else:
        return a / b

def calculator():
    result = 0
    print("欢迎使用计算器")
    while True:
        op = input("请输入操作符+-*/或输入exit退出:")
        if op == "exit":
            print("已退出计算器")
            break
        if op not in "+-*/":
            print("请正确输入操作符")
            continue
        while True:
            try:
                a = int(input("请输入第一个数字:"))
                b = int(input("请输入第二个数字:"))
                break
            except ValueError:
                print("请确保正确输入数字")
                continue
        if op == '+':
            result = add(a, b)
        elif op == '-':
            result = subtract(a, b)
        elif op == '*':
            result = multiply(a, b)
        elif op == '/':
            result = divide(a, b)
        print(f"结果为{result}")
        break

calculator()

简短步骤

1.  定义四个运算函数:
•   add:加法。
•   subtract:减法。
•   multiply:乘法。
•   divide:除法(包含除以零检查)。
2.  主函数 calculator():
•   打印欢迎语。
•   使用 while True 循环,持续获取用户输入。
•   验证操作符是否合法。
•   提示用户输入两个数字,验证数字有效性。
•   调用对应运算函数,输出结果。
•   支持输入 exit 随时退出程序。

运行效果

示例输入:

请输入操作符+-*/或输入exit退出:-
请输入第一个数字:20
请输入第二个数字:5

示例输出:

结果为15

通过这个程序,你可以学习函数的定义与调用、异常处理以及用户交互逻辑。

发表评论 取消回复
表情 图片 链接 代码

分享