小型项目1:命令行计算器实现。

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 小型项目1:命令行计算器实现。

小型项目1:命令行计算器实现。

 

实现一个基本的命令行计算器是一个很好的编程练习,可以帮助你熟悉命令行输入/输出、条件判断以及基本的算术运算。下面是一个使用Python语言实现的简单命令行计算器的示例。这个计算器将支持加、减、乘、除四种基本运算。

def add(x, y):

"""加法"""

return x + y

 

def subtract(x, y):

"""减法"""

return x - y

 

def multiply(x, y):

"""乘法"""

return x * y

 

def divide(x, y):

"""除法,注意处理除数为0的情况"""

if y == 0:

return "除数不能为0"

return x / y

 

def main():

print("欢迎使用命令行计算器!")

while True:

print("\n请选择运算:")

print("1. 加法")

print("2. 减法")

print("3. 乘法")

print("4. 除法")

print("5. 退出")

 

# 获取用户输入

choice = input("请输入你的选择(1/2/3/4/5): ")

 

# 退出程序

if choice == '5':

print("感谢使用!")

break

 

# 获取两个操作数

num1 = float(input("请输入第一个数字: "))

num2 = float(input("请输入第二个数字: "))

 

if choice == '1':

print(num1, "+", num2, "=", add(num1, num2))

 

elif choice == '2':

print(num1, "-", num2, "=", subtract(num1, num2))

 

elif choice == '3':

print(num1, "*", num2, "=", multiply(num1, num2))

 

elif choice == '4':

result = divide(num1, num2)

if isinstance(result, str):

print("错误:", result)

else:

print(num1, "/", num2, "=", result)

 

else:

print("非法输入")

 

if __name__ == "__main__":

main()

这个程序首先定义了四个基本的算术运算函数(加、减、乘、除),然后在main函数中通过循环让用户选择想要进行的运算,并输入两个操作数。根据用户的选择,程序会调用相应的函数进行运算,并打印出结果。如果用户选择退出,则程序会结束运行。

注意,除法函数divide中增加了对除数为0的情况的处理,以避免运行时错误。此外,所有的输入都被转换为浮点数,以支持小数运算。用户输入的选择和数字都通过input函数获取,并通过条件判断来处理用户的输入。

 

 

 

命令行计算器实现与增强

在软件开发中,实现一个命令行计算器不仅是一个基础的编程练习,也是理解输入/输出处理、条件判断、函数定义与调用、以及异常处理等重要概念的好方法。以下,我们将通过Python语言详细实现并增强一个支持加、减、乘、除四种基本运算的命令行计算器,同时增加对用户输入的有效性验证、支持小数运算、以及更友好的用户交互界面。

1. 定义基本运算函数

首先,我们需要定义四个基本的算术运算函数:加法、减法、乘法和除法。其中,除法函数需要特别处理除数为0的情况,避免运行时错误。

def add(x, y):

"""加法运算"""

return x + y

 

def subtract(x, y):

"""减法运算"""

return x - y

 

def multiply(x, y):

"""乘法运算"""

return x * y

 

def divide(x, y):

"""除法运算,处理除数为0的情况"""

if y == 0:

return "除数不能为0"

return x / y

2. 主程序流程设计

主程序将包含一个main函数,该函数将不断循环,提示用户输入运算类型和两个操作数,然后调用相应的函数进行计算,并输出结果。为了简化用户输入,我们将使用数字(如1、2、3、4)来代表不同的运算类型。

def main():

print("欢迎使用命令行计算器!")

while True:

try:

# 显示操作选项

print("\n请选择运算:")

print("1. 加法")

print("2. 减法")

print("3. 乘法")

print("4. 除法")

print("5. 退出")

 

# 获取用户输入的运算类型

choice = input("请输入您的选择(1-4进行运算,5退出):")

 

# 退出条件

if choice == '5':

print("感谢使用!")

break

 

# 验证输入是否合法

if choice not in ['1', '2', '3', '4', '5']:

print("非法输入,请重新输入!")

continue

 

# 获取用户输入的两个操作数

num1 = float(input("请输入第一个数:"))

num2 = float(input("请输入第二个数:"))

 

# 根据用户选择调用相应的函数

if choice == '1':

print(f"{num1} + {num2} = {add(num1, num2)}")

elif choice == '2':

print(f"{num1} - {num2} = {subtract(num1, num2)}")

elif choice == '3':

print(f"{num1} * {num2} = {multiply(num1, num2)}")

elif choice == '4':

result = divide(num1, num2)

if isinstance(result, str):

print("错误:", result)

else:

print(f"{num1} / {num2} = {result}")

 

except ValueError:

# 处理非数字输入

print("请输入有效的数字!")

 

if __name__ == "__main__":

main()

3. 增强用户输入验证

在上述代码中,我们已经对用户输入的运算类型进行了基本的验证,并处理了非数字输入的情况。然而,为了进一步增强程序的健壮性,我们可以考虑添加更多的验证逻辑,比如检查用户输入的操作数是否真正为数字。这通过try-except块中的ValueError异常处理来实现。

4. 引入日志记录

在实际应用中,为了跟踪程序的运行状态和调试问题,我们通常会引入日志记录功能。Python的logging模块提供了强大的日志记录功能,可以帮助我们记录用户操作、程序错误等信息。

import logging

 

# 配置日志

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

 

# 在适当的位置添加日志记录

def main():

logging.info("计算器程序启动")

# ...(其他代码)

if choice == '5':

logging.info("用户选择退出")

print("感谢使用!")

break

# ...(其他代码)

 

if __name__ == "__main__":

main()

 

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
机器学习/深度学习 运维 算法
遥感数据类型:高光谱遥感图像
高光谱遥感图像(Hyperspectral Remote Sensing Images)是一种非常重要的遥感数据类型,它在许多应用领域具有重要作用。高光谱图像的特点是每个像素包含几十到几百个连续的光谱波段信息,这使得它能够提供丰富的光谱细节,从而识别和区分地表物质的精细差异。
323 2
|
编解码 前端开发 JavaScript
React系列---React技术栈一览
React系列---React技术栈一览
2092 0
|
C语言
字符串函数`strlen`、`strcpy`、`strcmp`、`strstr`、`strcat`的使用以及模拟实现
字符串函数`strlen`、`strcpy`、`strcmp`、`strstr`、`strcat`的使用以及模拟实现
419 1
|
1月前
|
移动开发 JavaScript API
如何保证 UniApp 插件接口与 UniApp 规范兼容?
如何保证 UniApp 插件接口与 UniApp 规范兼容?
256 137
|
传感器 机器学习/深度学习 人工智能
数字孪生与汽车制造:提高生产效率
【10月更文挑战第31天】数字孪生技术在汽车制造中通过虚拟模型实现生产线仿真、设备预测性维护、定制化生产和质量管理,显著提升生产效率和产品质量。特斯拉、宝马和上汽通用等企业的实践案例展示了其巨大潜力。未来,随着技术进步,数字孪生将在汽车制造中发挥更大作用。
|
C语言
c语言编写一个简单的计算器(有需要直接复制粘贴使用)
c语言编写一个简单的计算器(有需要直接复制粘贴使用)
1515 0
|
Python
pyqt 界面卡顿 解决办法 多线程
pyqt 界面卡顿 解决办法 多线程
440 0
|
缓存 Windows
一文教会你如何重装Windows10系统【过程+图解+说明】
该博客文章是一份详细的Windows 10系统重装教程,包括制作过程、图解说明和注意事项,作者分享了自己制作启动盘并成功安装系统的经验,适合初学者参考。
一文教会你如何重装Windows10系统【过程+图解+说明】
|
缓存 负载均衡 监控
Nginx实现高并发
通过应用上述策略,可以大幅提高Nginx的并发处理能力,从而在面对高流量时,保持稳定、快速的服务响应。不断地监控和调优系统将有助于保持服务器性能的最优化。
298 3
|
机器学习/深度学习 算法 数据挖掘
【机器学习】聚类算法中,如何判断数据是否被“充分”地聚类,以便算法产生有意义的结果?
【5月更文挑战第14天】【机器学习】聚类算法中,如何判断数据是否被“充分”地聚类,以便算法产生有意义的结果?