Python 基础教程(十二):12 .1 项目实践(简单计算器)

通过实际的小项目,将前面学到的 Python 基础语法、流程控制、函数定义、异常处理等知识进行综合运用。本章以几个循序渐进的小项目为例,帮助读者在实践中理解编程逻辑,提高编程能力。

12.1 小项目 1:简单计算器

12.1.1 项目简介

本项目实现一个基于命令行的简单计算器,支持加、减、乘、除四种基本运算,输入两个数字和运算符,即可返回运算结果。

12.1.2 技术要点

  • 使用 input() 函数获取用户输入;
  • 使用 float() 类型转换处理小数运算;
  • 使用 if-elif-else 结构判断运算类型;
  • 使用函数封装操作;
  • 使用异常处理捕获非法输入(如除以零或非法运算符);

12.1.3 功能需求

  • 支持输入两个数和一个运算符(+ - * /);
  • 显示计算结果;
  • 输入非法时给出提示,并允许重新输入;
  • 可以多次执行,直到用户选择退出。

12.1.4 代码示例

# 定义加法函数
def add(x, y):
    return x + y

# 定义减法函数
def subtract(x, y):
    return x - y

# 定义乘法函数
def multiply(x, y):
    return x * y

# 定义除法函数,包含除数为 0 的判断
def divide(x, y):
    if y == 0:
        # 抛出异常,提示除数不能为0
        raise ValueError("除数不能为0")
    return x / y

# 定义主函数,封装整个计算器的运行逻辑
def calculator():
    print("欢迎使用简单计算器")
    
    while True:  # 无限循环,直到用户选择退出
        try:
            # 获取用户输入的第一个数字,并转换为浮点数
            num1 = float(input("请输入第一个数字:"))
            
            # 获取运算符(+、-、*、/)
            op = input("请输入运算符 (+ - * /):")
            
            # 获取用户输入的第二个数字
            num2 = float(input("请输入第二个数字:"))

            # 根据用户输入的运算符调用对应的函数
            if op == '+':
                result = add(num1, num2)
            elif op == '-':
                result = subtract(num1, num2)
            elif op == '*':
                result = multiply(num1, num2)
            elif op == '/':
                result = divide(num1, num2)
            else:
                # 如果输入的运算符不合法,提示并跳过当前循环
                print("无效的运算符,请重新输入。")
                continue

            # 打印计算结果,保留格式清晰
            print(f"结果:{num1} {op} {num2} = {result}")

        except ValueError as e:
            # 捕获输入转换失败或除以零等异常,并输出错误信息
            print("输入错误:", e)
            continue  # 出错后重新开始下一轮输入

        # 提示用户是否继续
        cont = input("是否继续计算?(y/n):").strip().lower()
        if cont != 'y':
            print("感谢使用,再见!")
            break  # 用户输入不是 'y',退出循环,结束程序

# 入口判断,只有直接运行时才执行 calculator()
if __name__ == "__main__":
    calculator()

12.1.5 示例运行

欢迎使用简单计算器

请输入第一个数字:12

请输入运算符 (+ - * /):/

请输入第二个数字:3

结果:12.0 / 3.0 = 4.0

是否继续计算?(y/n):y

请输入第一个数字:7

请输入运算符 (+ - * /):%

无效的运算符,请重新输入。

请输入第一个数字:

...

12.1.6 项目拓展建议

  • 增加对多次连续运算(表达式计算如 1 + 2 * 3)的支持;
  • 提供图形化界面(如用 tkinter);
  • 增加历史记录功能;
  • 增加平方、开方、指数等扩展运算;
  • 支持输入表达式字符串进行解析计算(可引入 eval(),但需注意安全性)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值