以下是一个功能丰富的函数计算器实现,支持常用数学运算和函数:
import math
def 函数计算器():
"""支持表达式计算的函数计算器"""
# 定义支持的函数和常量
常量 = {
'π': math.pi, 'pi': math.pi, 'e': math.e
}
函数库 = {
# 基本运算
'add': lambda a, b: a + b,
'sub': lambda a, b: a - b,
'mul': lambda a, b: a * b,
'div': lambda a, b: a / b,
'pow': lambda a, b: a ** b,
'mod': lambda a, b: a % b,
# 三角函数(弧度制)
'sin': math.sin,
'cos': math.cos,
'tan': math.tan,
# 反三角函数
'asin': math.asin,
'acos': math.acos,
'atan': math.atan,
# 对数函数
'log': math.log,
'log10': math.log10,
'log2': math.log2,
# 其他函数
'sqrt': math.sqrt,
'abs': abs,
'round': round,
'fact': math.factorial,
'deg': math.degrees, # 弧度转角度
'rad': math.radians, # 角度转弧度
}
print("="*40)
print("函数计算器使用说明".center(35))
print("="*40)
print("支持的函数: sin, cos, tan, asin, acos, atan")
print(" log, log10, log2, sqrt, abs")
print(" round, fact(阶乘), deg(转角度), rad(转弧度)")
print("常量: π(或pi), e")
print("示例: sin(rad(30)) + log10(100) * 2^3")
print("输入 '退出' 结束程序")
print("="*40)
while True:
输入 = input(">>> ").strip().lower()
if 输入 in ['exit', 'quit', '退出', 'q']:
print("计算器已关闭")
break
if not 输入:
continue
try:
# 预处理:替换中文符号和常量
输入 = (输入.replace('^', '**')
.replace('π', 'pi')
.replace('÷', '/')
.replace('×', '*'))
# 安全验证(仅包含允许的字符)
if not all(c in "abcdefghijklmnopqrstuvwxyz0123456789.+-*/%()^!<>|&_= " for c in 输入):
raise ValueError("包含非法字符")
# 添加隐式乘法(如 2π → 2*π)
tokens = []
for i, char in enumerate(输入):
if tokens and (
(tokens[-1].isdigit() and char.isalpha()) or
(tokens[-1] == ')' and char.isalnum()) or
(tokens[-1].isalpha() and char == '(')
):
tokens.append('*')
tokens.append(char)
输入 = ''.join(tokens)
# 执行计算
result = eval(输入, {}, {**常量, **函数库})
print(f"结果: {result}")
except Exception as e:
print(f"错误: {str(e)}")
# 启动计算器
if __name__ == "__main__":
函数计算器()
主要功能特点:
-
数学运算
- 基本运算:
+ - * / - 幂运算:
^或**(如 2^3=8) - 取模:
mod(a,b) - 括号优先级:
( )
- 基本运算:
-
数学函数
- 三角函数:
sin,cos,tan(弧度制) - 反三角函数:
asin,acos,atan - 对数函数:
log(自然对数),log10(常用对数),log2(二进制对数) - 其他:
sqrt(开平方),abs(绝对值),round(四舍五入),fact(阶乘)
- 三角函数:
-
单位转换
deg():弧度转角度rad():角度转弧度
-
智能处理
- 自动识别常量(π≈3.1416,e≈2.7183)
- 隐式乘法处理(如
2π自动转2*π) - 中文符号支持(×÷→*/)
-
使用示例:
>>> sin(rad(30)) + 2^3 结果: 8.5 >>> fact(5) / (4*3) 结果: 10.0 >>> log10(1000) + 2π 结果: 9.283185307179586
安全特性:
- 禁止危险函数(如
eval、exec) - 输入过滤(仅允许数学字符)
- 隔离执行环境
注意:实际使用时请确保输入合法表达式,复杂计算建议分步进行。
用Behavioral Voltage Sources创建任意波形
通过使用 Behavioral Voltage Sources (BV),可以将 Excel 和函数计算器中可利用的函数、算术运算符编入信号源。
2023-06-18 09:38:50
函数计算器如何加改电子书?
`有没有发烧大侠能够设计出这样一个计算器,除了电子书和计算器以外的功能以外的,能够封装在得力计算器或者是卡西欧计算器里面,显示屏也用得力的这种LCD的`
Me杰
2021-04-15 16:43:10
如何使用Arduino构建一个计算器
在本教程中,我们将使用 Arduino 构建自己的计算器。这些值可以通过键盘(4×4 键盘)发送,结果可以在 LCD 屏幕上查看(16×2 点阵)。该计算器可以执行简单的运算,例如整数的加法,减法,乘法和除法。但是一旦你理解了这个概念,你甚至可以使用Arduino的内置函数实现科学函数。
2022-11-21 17:43:29
AWTK 开源串口屏开发(13) - 计算器应用
计算器是一个常见的应用程序,在AWTK串口屏中,利用fscript表达式计算函数,无需编写一行传统的代码,即可实现一个简单的计算器应用程序。1.功能计算器是一个很常见的应用,比如在电子秤中,可能
2024-03-16 08:23:52
实用的电工计算器
摘要实用的电工计算器。已完美特别软件信息电工计算器中文特别版app是一款电工的好帮手:电工计算器,电工要掌握的知识其实很多很杂乱,而且牵扯到很多的计算。分享一个电工专用的小工具--电工计算器,由芊芊
60user157
2021-09-02 06:18:01
ADC/DAC精度计算器教程
精度计算器(ACCU)有助于数据转换器应用电路的设计和分析。它计算理想数据转换器的直流精度,涵盖模数转换器(ADC)和数模转换器(DAC)。数据转换器的直流精度是与理想线性传递函数的最大偏差的量度
2023-02-07 14:36:57
OpenHarmony开发案例:【分布式计算器】
使用分布式能力实现了一个简单的计算器应用,可以进行简单的数值计算,支持远程拉起另一个设备的计算器应用,两个计算器应用进行协同计算。
2024-04-11 15:24:22
计算器是怎么实现的呢
大家都用过计算器,有没有想过它是怎么实现的呢?这里我不详述计算器的原理,而只对思路进行简单介绍。等我们学会了单片机,也可以亲手制作一个计算器。
abdkjshd
2021-11-09 09:07:09
热噪声计算器教程
热噪声计算器 (TNC) 是为 HP 50g 计算器编写的程序,有助于分析电阻器和其他噪声源中的热噪声。TNC发现任何器件产生的噪声电压,如果其白噪声频谱密度和1/f转折频率已知。可以输入或找到每个
2023-01-10 14:55:37
人工智能计算器好不好
人工智能计算器好不好?这是一个非常值得探究的问题。在本文中,我们将探讨人工智能计算器的优点和缺点,同时也会分析它对我们日常生活和工作的影响。 首先,让我们来看看人工智能计算器的优点。第一个优点显然是
2023-08-15 16:07:37
关于Windows计算器!微软开源了Windows计算器的路线图
Windows 开源计算器的事件很快就在社交网络上引发了一股风潮,人们纷纷登陆 GitHub 开始尝试。查看计算器代码显然是了解最新微软技术(如通用 Windows 平台、XAML 和 Azure)的好主意。也有人呼吁微软开源更多程序的代码,目前呼声最高的是「纸牌」程序。
2019-03-11 16:37:10
基于Arduino的编程计算器
描述Arduino Nano 编程计算器基于Arduino的编程计算器,用于教育和娱乐。成分Arduino纳米LCD1602 16x2 带 I2C 模块25 件装触觉按钮开关 6x6x5 毫米蜂鸣器PCB代码https://github.com/hjltu/hjcalc
北上北京
2022-09-09 07:04:21
如何使用TFT LCD构建Arduino触摸屏计算器
在这个项目中,我们将使用2.4英寸Arduino TFT LCD屏幕来构建我们自己的Arduino触摸屏计算器,该计算器可以执行所有基本计算,如加法,减法,除法和乘法。
2023-01-25 17:06:00
基于labview做的科学计算器与Windows自带计算器相似
有没有大佬分享基于labview的科学计算器论文,和Windows自带的计算器功能相近,可以进行进制转换等高级操作的,论坛里面虽然有源代码,小白看不懂。急需论文。
流年0转瞬
2019-05-05 08:58:36
拆解也怀旧,让人惊叹的可编程科学计算器 from 1966
数千年的历史。 而我们今天要看到机器——王安实验室研发LOCI-2型计算器(Wang LOCI-2 calculator)——是桌上型计算器时代的产物。 这款机器设计于1965年,是一款可显示10位数字的晶体管桌上型计算器,使用数字管显示,能成功的执行对数和反对数函数,平
2018-12-17 20:05:01
封装热分析计算器教程
封装热分析计算器 (PTA) 是为 HP 50g 计算器编写的程序,有助于分析 IC 封装热。使用数据表参数,从芯片(结点)、外壳到环境跟踪热量和耗散。探讨了最大结温下的功率降额因数和最大功耗。
2023-02-10 11:10:37
电子语音计算器语音ic芯片所带来的价值
电子计算器主要由电源、显示屏、按键、电子回路等组成,可以计算加减乘除等其他基本函数。 电子计算器增加语音芯片功能所带来的价值 目前使用的计算器都是滴滴声音,很多时候是不是自己误按
2021-12-06 16:23:16
如何使用封装热分析计算器(PTA)的简短指南
本文档是关于如何使用封装热分析计算器(PTA)的简短指南,该工具由Maxim Integrated设计,可简化热IC封装分析。包括使用该工具必不可少的参数,以及示例,以更好地了解用户。 封装热分析
2021-05-07 16:35:43
pcb过孔电流计算器怎么用
PCB过孔电流计算器是一种用于计算PCB板上过孔电流的工具。过孔是PCB板上的重要元件,用于连接不同层之间的电路。过孔的电流大小对于PCB板的性能和稳定性具有重要影响。因此,正确使用PCB过孔电流计算器
2023-12-14 16:20:00
基于51单片机的简易计算器设计
该计算器系统51 系列的单片机进行的数字计算器系统设计,可以完成计算器的键盘输入, 进行加、 减、乘、除的简单四则运算,并在 LCD屏幕上相应的显示结果。选择内部存储资源丰富的 51 单片 机,输入
2023-08-01 00:51:27
