前途科技
  • 科技
  • AI
    • AI 前沿技术
    • Agent生态
    • AI应用场景
    • AI 行业应用
  • 初创
  • 报告
  • 学习中心
    • 编程与工具
    • 数据科学与工程
我的兴趣
前途科技前途科技
Font ResizerAa
站内搜索
Have an existing account? Sign In
Follow US
Copyright © 2024 AccessPath.com, 前途国际科技咨询(北京)有限公司,版权所有。 | 京ICP备17045010号-1 | 京公网安备 11010502033860号
编程与工具

Python编程实战:从零开始构建你的专属交互式计算器

NEXTECH
Last updated: 2025年9月22日 上午10:37
By NEXTECH
Share
26 Min Read
SHARE

计算器这一概念可以追溯到17世纪,最初以机械设备的形式诞生。随着时间的推移,这些计算器不断演进,变得更加普及。到了20世纪60年代,第一台电子计算器问世。如今,计算器已深度融入电脑乃至手机等现代设备中。

Contents
计算器的工作原理总结

无论是物理形态还是数字形式,计算器都已成为现代生活中不可或缺的工具。在日常生活中,无论是计算租金、核对账单总额,还是计算孩子成绩的最终百分比,人们都会借助计算器来完成。

本文将利用Python编程的基础知识,包括函数、条件语句、字典和循环,来构建一个功能完备的计算器。

计算器的工作原理

所构建的计算器将遵循以下工作流程:

  1. 程序会提示用户输入第一个数字。
  2. 接着,程序会提示用户选择一个运算符号。
  3. 然后,程序会提示用户输入第二个数字。
  4. 计算器将执行相应的运算并打印输出结果。
  5. 程序会询问用户是希望继续使用当前结果进行计算(类似于物理计算器),还是重新开始一次新的计算。
  6. 如果用户选择重新开始,程序将重新启动上述整个流程。
  7. 如果用户选择继续使用当前结果,该结果将作为下一个计算的第一个数字,然后程序会再次提示用户选择运算符号,并依照首次计算的流程继续执行。

为了更好地理解上述逻辑,可以将其绘制成流程图:

计算器工作流程图

You Might Also Like

欧拉旋律:图算法在算法音乐创作中的应用与Python实践
Python机器人入门指南:使用PyBullet轻松构建3D仿真
揭秘DAX:筛选器如何驱动时间智能函数的幕后逻辑
Python 性能优化终极指南:如何集成 C 语言实现高达 150 倍的速度飞跃

计算器工作流程图

定义运算函数

首先,定义当用户选择相应运算符号时将被调用的函数。这里将定义add函数用于加法,subtract函数用于减法,multiply函数用于乘法,以及divide函数用于除法。这些函数都将接收两个数字作为输入参数,对它们执行选定的运算,并返回计算结果。

def add(num1, num2):
    return num1 + num2

def subtract(num1, num2):
    return num1 - num2

def multiply(num1, num2):
    return num1 * num2

def divide(num1, num2):
    return num1/num2

创建运算字典

接下来,创建一个名为operations的字典。在这个字典中,运算符号将作为键(key)存储,而对应的操作名称(即函数名)则作为值(value)存储。程序会提示用户选择一个运算,并根据用户的选择调用上面定义的具体运算函数。

operations = {
    "+": add,
    "-": subtract,
    "*": multiply,
    "/": divide,
}

获取用户输入

在定义好所有函数之后,现在需要向用户获取输入:包括第一个数字num1、用户选择的运算符号operation_symbol,以及第二个数字num2。

num1 = float(input("What is the first number?: "))
for symbol in operations:
            print(symbol)
operation_symbol = input("Pick an operation: ")
num2 = float(input("What is the next number?: "))

需要注意的是,程序会将输入的数字转换为浮点数(float)类型。此外,代码中还包含一个for循环,用于遍历之前定义的operations字典中的所有键(即运算符号),并将它们打印出来供用户选择。

计算并显示结果

接下来是计算答案并将其完整地打印给用户。以下代码将用于实现这一目的:

answer = operations[operation_symbol](num1, num2)
print(f"{num1} {operation_symbol} {num2} = {answer}")

answer变量将存储根据所选运算符号调用相应函数后得到的值。为了正确格式化输出语句,代码中使用了f-string。

使用While循环实现计算器连续性

在计算并显示结果之后,下一步是检查用户是否希望继续使用计算器,即是基于当前结果answer继续计算,还是重新开始一次全新的计算。为此,程序会定义一个布尔变量should_accumulate。当用户选择继续计算时,该变量为True;当用户选择不继续并希望重新启动计算器时,该变量为False。should_accumulate变量将在代码的早期部分进行定义。

should_accumulate = True

while should_accumulate:
    ...
    choice = input(f"Type 'y' to continue calculating with {answer}, or type 'n' to start a new calculation: ")

        if choice == "y":
            num1 = answer
        else:
            should_accumulate = False
            print("
" * 20)

由于should_accumulate变量被初始化为True,并且代码中添加了一个while循环,因此循环内部的代码将持续运行,直到用户输入‘n’。当用户选择‘n’时,计算将不再继续,而是停止。代码会通过打印20行空行来模拟清空控制台。然而,若要真正重启计算器,这里将引入Python中一个名为“递归”的函数概念。

为了实现计算器的重启功能,可以将整个计算逻辑封装为一个函数。当需要重新启动计算器而不继续使用上次的结果时,就可以调用这个函数。这将通过一个递归函数来实现。Python中的递归允许函数在其自身内部被调用,具体实现如下所示:

def calculator():
    should_accumulate = True
    num1 = float(input("What is the first number?: "))

    while should_accumulate:
        for symbol in operations:
            print(symbol)
        operation_symbol = input("Pick an operation: ")
        num2 = float(input("What is the next number?: "))
        answer = operations[operation_symbol](num1, num2)
        print(f"{num1} {operation_symbol} {num2} = {answer}")

        choice = input(f"Type 'y' to continue calculating with {answer}, or type 'n' to start a new calculation: ")

        if choice == "y":
            num1 = answer
        else:
            should_accumulate = False
            print("
" * 20)
            calculator()

请注意,calculator函数在其自身内部被调用了。为了首次运行这段代码,需要在函数外部显式地调用calculator()。

您可以通过以下链接获取完整的代码示例:https://github.com/MahnoorJaved98/Using-Python-to-Build-a-Calculator

总结

通过本文的学习,读者应该已经掌握了如何利用Python的基础语法和特性(如函数、字典、循环和递归)来构建一个功能完整的交互式计算器。这个项目不仅实践了Python编程的基本功,也展示了如何将抽象的逻辑思维转化为实际可运行的代码。希望这个实践能激发读者对Python编程的兴趣,并在未来的学习和项目中加以应用。

TAGGED:Python编程代码实战编程入门计算器
Share This Article
Email Copy Link Print
Previous Article 统一意图识别引擎架构图 构建统一意图识别引擎:打破AI孤岛,加速企业智能应用落地
Next Article 通过NotebookLM和NapkinAI从研究论文中提取里程碑并转化为时间线图表。 AI赋能教育:NotebookLM教学实践与创新应用指南
Leave a Comment

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

最新内容
20251202135921634.jpg
英伟达20亿美元投资新思科技,AI芯片设计革命加速
科技
20251202130505639.jpg
乌克兰国家AI模型选定谷歌Gemma,打造主权人工智能
科技
20251202121525971.jpg
中国开源AI新突破:DeepSeek V3.2模型性能比肩GPT-5
科技
20251202112744609.jpg
马斯克预言:AI三年内解决美国债务危机,可信吗?
科技

相关内容

编程与工具

Python 代码测试利器:Hypothesis 基于属性测试,先于用户发现潜在缺陷

2025年11月1日
编程与工具

Python数据可视化:核心编程基础回顾与应用

2025年10月26日
图像 1: Polars 数据分析指南
编程与工具

Polars 数据分析入门指南:用 Python 高效处理咖啡店数据

2025年9月21日
Brush Tracker应用截图:洁净度分数与牙齿状态展示
编程与工具

AI编程神器Cursor:3天零Swift基础,速成iOS应用开发与发布实战

2025年11月17日
Show More
前途科技

前途科技是一个致力于提供全球最新科技资讯的专业网站。我们以实时更新的方式,为用户呈现来自世界各地的科技新闻和深度分析,涵盖从技术创新到企业发展等多方面内容。专注于为用户提供高质量的科技创业新闻和行业动态。

分类

  • AI
  • 初创
  • 学习中心

快速链接

  • 阅读历史
  • 我的关注
  • 我的收藏

Copyright © 2025 AccessPath.com, 前途国际科技咨询(北京)有限公司,版权所有。 | 京ICP备17045010号-1 | 京公网安备 11010502033860号

前途科技
Username or Email Address
Password

Lost your password?

Not a member? Sign Up