以下是一個(gè)功能豐富的函數(shù)計(jì)算器實(shí)現(xiàn),支持常用數(shù)學(xué)運(yùn)算和函數(shù):
import math
def 函數(shù)計(jì)算器():
"""支持表達(dá)式計(jì)算的函數(shù)計(jì)算器"""
# 定義支持的函數(shù)和常量
常量 = {
'π': math.pi, 'pi': math.pi, 'e': math.e
}
函數(shù)庫(kù) = {
# 基本運(yùn)算
'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,
# 三角函數(shù)(弧度制)
'sin': math.sin,
'cos': math.cos,
'tan': math.tan,
# 反三角函數(shù)
'asin': math.asin,
'acos': math.acos,
'atan': math.atan,
# 對(duì)數(shù)函數(shù)
'log': math.log,
'log10': math.log10,
'log2': math.log2,
# 其他函數(shù)
'sqrt': math.sqrt,
'abs': abs,
'round': round,
'fact': math.factorial,
'deg': math.degrees, # 弧度轉(zhuǎn)角度
'rad': math.radians, # 角度轉(zhuǎn)弧度
}
print("="*40)
print("函數(shù)計(jì)算器使用說(shuō)明".center(35))
print("="*40)
print("支持的函數(shù): sin, cos, tan, asin, acos, atan")
print(" log, log10, log2, sqrt, abs")
print(" round, fact(階乘), deg(轉(zhuǎn)角度), rad(轉(zhuǎn)弧度)")
print("常量: π(或pi), e")
print("示例: sin(rad(30)) + log10(100) * 2^3")
print("輸入 '退出' 結(jié)束程序")
print("="*40)
while True:
輸入 = input(">>> ").strip().lower()
if 輸入 in ['exit', 'quit', '退出', 'q']:
print("計(jì)算器已關(guān)閉")
break
if not 輸入:
continue
try:
# 預(yù)處理:替換中文符號(hào)和常量
輸入 = (輸入.replace('^', '**')
.replace('π', 'pi')
.replace('÷', '/')
.replace('×', '*'))
# 安全驗(yàn)證(僅包含允許的字符)
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)
# 執(zhí)行計(jì)算
result = eval(輸入, {}, {**常量, **函數(shù)庫(kù)})
print(f"結(jié)果: {result}")
except Exception as e:
print(f"錯(cuò)誤: {str(e)}")
# 啟動(dòng)計(jì)算器
if __name__ == "__main__":
函數(shù)計(jì)算器()
主要功能特點(diǎn):
-
數(shù)學(xué)運(yùn)算
- 基本運(yùn)算:
+ - * / - 冪運(yùn)算:
^或**(如 2^3=8) - 取模:
mod(a,b) - 括號(hào)優(yōu)先級(jí):
( )
- 基本運(yùn)算:
-
數(shù)學(xué)函數(shù)
- 三角函數(shù):
sin,cos,tan(弧度制) - 反三角函數(shù):
asin,acos,atan - 對(duì)數(shù)函數(shù):
log(自然對(duì)數(shù)),log10(常用對(duì)數(shù)),log2(二進(jìn)制對(duì)數(shù)) - 其他:
sqrt(開(kāi)平方),abs(絕對(duì)值),round(四舍五入),fact(階乘)
- 三角函數(shù):
-
單位轉(zhuǎn)換
deg():弧度轉(zhuǎn)角度rad():角度轉(zhuǎn)弧度
-
智能處理
- 自動(dòng)識(shí)別常量(π≈3.1416,e≈2.7183)
- 隱式乘法處理(如
2π自動(dòng)轉(zhuǎn)2*π) - 中文符號(hào)支持(×÷→*/)
-
使用示例:
>>> sin(rad(30)) + 2^3 結(jié)果: 8.5 >>> fact(5) / (4*3) 結(jié)果: 10.0 >>> log10(1000) + 2π 結(jié)果: 9.283185307179586
安全特性:
- 禁止危險(xiǎn)函數(shù)(如
eval、exec) - 輸入過(guò)濾(僅允許數(shù)學(xué)字符)
- 隔離執(zhí)行環(huán)境
注意:實(shí)際使用時(shí)請(qǐng)確保輸入合法表達(dá)式,復(fù)雜計(jì)算建議分步進(jìn)行。
如何實(shí)現(xiàn)一款具有計(jì)算,文本閱讀的函數(shù)計(jì)算器呢
如何實(shí)現(xiàn)一款具有計(jì)算,文本閱讀的函數(shù)計(jì)算器呢????
Me杰
2022-10-24 23:14:02
用Behavioral Voltage Sources創(chuàng)建任意波形
通過(guò)使用 Behavioral Voltage Sources (BV),可以將 Excel 和函數(shù)計(jì)算器中可利用的函數(shù)、算術(shù)運(yùn)算符編入信號(hào)源。
2023-06-18 09:38:50
函數(shù)計(jì)算器如何加改電子書(shū)?
`有沒(méi)有發(fā)燒大俠能夠設(shè)計(jì)出這樣一個(gè)計(jì)算器,除了電子書(shū)和計(jì)算器以外的功能以外的,能夠封裝在得力計(jì)算器或者是卡西歐計(jì)算器里面,顯示屏也用得力的這種LCD的`
Me杰
2021-04-15 16:43:10
如何使用Arduino構(gòu)建一個(gè)計(jì)算器
在本教程中,我們將使用 Arduino 構(gòu)建自己的計(jì)算器。這些值可以通過(guò)鍵盤(4×4 鍵盤)發(fā)送,結(jié)果可以在 LCD 屏幕上查看(16×2 點(diǎn)陣)。該計(jì)算器可以執(zhí)行簡(jiǎn)單的運(yùn)算,例如整數(shù)的加法,減法,乘法和除法。但是一旦你理解了這個(gè)概念,你甚至可以使用Arduino的內(nèi)置函數(shù)實(shí)現(xiàn)科學(xué)函數(shù)。
2022-11-21 17:43:29
AWTK 開(kāi)源串口屏開(kāi)發(fā)(13) - 計(jì)算器應(yīng)用
計(jì)算器是一個(gè)常見(jiàn)的應(yīng)用程序,在AWTK串口屏中,利用fscript表達(dá)式計(jì)算函數(shù),無(wú)需編寫一行傳統(tǒng)的代碼,即可實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器應(yīng)用程序。1.功能計(jì)算器是一個(gè)很常見(jiàn)的應(yīng)用,比如在電子秤中,可能
2024-03-16 08:23:52
實(shí)用的電工計(jì)算器
摘要實(shí)用的電工計(jì)算器。已完美特別軟件信息電工計(jì)算器中文特別版app是一款電工的好幫手:電工計(jì)算器,電工要掌握的知識(shí)其實(shí)很多很雜亂,而且牽扯到很多的計(jì)算。分享一個(gè)電工專用的小工具--電工計(jì)算器,由芊芊
60user157
2021-09-02 06:18:01
ADC/DAC精度計(jì)算器教程
精度計(jì)算器(ACCU)有助于數(shù)據(jù)轉(zhuǎn)換器應(yīng)用電路的設(shè)計(jì)和分析。它計(jì)算理想數(shù)據(jù)轉(zhuǎn)換器的直流精度,涵蓋模數(shù)轉(zhuǎn)換器(ADC)和數(shù)模轉(zhuǎn)換器(DAC)。數(shù)據(jù)轉(zhuǎn)換器的直流精度是與理想線性傳遞函數(shù)的最大偏差的量度
2023-02-07 14:36:57
基于STM32設(shè)計(jì)的計(jì)算器(實(shí)現(xiàn)基本運(yùn)算)
計(jì)算器是最常見(jiàn)的工具了,現(xiàn)在不管是手機(jī)、電腦都帶有計(jì)算器功能,支持強(qiáng)大的科學(xué)運(yùn)算等。
2022-05-18 10:56:15
OpenHarmony開(kāi)發(fā)案例:【分布式計(jì)算器】
使用分布式能力實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的計(jì)算器應(yīng)用,可以進(jìn)行簡(jiǎn)單的數(shù)值計(jì)算,支持遠(yuǎn)程拉起另一個(gè)設(shè)備的計(jì)算器應(yīng)用,兩個(gè)計(jì)算器應(yīng)用進(jìn)行協(xié)同計(jì)算。
2024-04-11 15:24:22
基于FPGA的電子計(jì)算器設(shè)計(jì)
在國(guó)外,電子計(jì)算器在集成電路發(fā)明后,只用短短幾年時(shí)間就完成了技術(shù)飛躍,經(jīng)過(guò)激烈的市場(chǎng)競(jìng)爭(zhēng),現(xiàn)在的計(jì)算器技術(shù)己經(jīng)相當(dāng)成熟。
2023-02-13 09:11:58
科學(xué)計(jì)算器開(kāi)根號(hào)怎么按_科學(xué)計(jì)算器怎么關(guān)機(jī)
以下為用卡西歐科學(xué)計(jì)算器求100的平方根的過(guò)程。
2021-05-21 14:32:28
計(jì)算器是怎么實(shí)現(xiàn)的呢
大家都用過(guò)計(jì)算器,有沒(méi)有想過(guò)它是怎么實(shí)現(xiàn)的呢?這里我不詳述計(jì)算器的原理,而只對(duì)思路進(jìn)行簡(jiǎn)單介紹。等我們學(xué)會(huì)了單片機(jī),也可以親手制作一個(gè)計(jì)算器。
abdkjshd
2021-11-09 09:07:09
人工智能計(jì)算器好不好
人工智能計(jì)算器好不好?這是一個(gè)非常值得探究的問(wèn)題。在本文中,我們將探討人工智能計(jì)算器的優(yōu)點(diǎn)和缺點(diǎn),同時(shí)也會(huì)分析它對(duì)我們?nèi)粘I詈凸ぷ鞯挠绊憽?首先,讓我們來(lái)看看人工智能計(jì)算器的優(yōu)點(diǎn)。第一個(gè)優(yōu)點(diǎn)顯然是
2023-08-15 16:07:37
熱噪聲計(jì)算器教程
熱噪聲計(jì)算器 (TNC) 是為 HP 50g 計(jì)算器編寫的程序,有助于分析電阻器和其他噪聲源中的熱噪聲。TNC發(fā)現(xiàn)任何器件產(chǎn)生的噪聲電壓,如果其白噪聲頻譜密度和1/f轉(zhuǎn)折頻率已知??梢暂斎牖蛘业矫總€(gè)
2023-01-10 14:55:37
HarmonyOS開(kāi)發(fā)案例:【計(jì)算器】
基于基礎(chǔ)組件、容器組件,實(shí)現(xiàn)一個(gè)支持加減乘除混合運(yùn)算的計(jì)算器。
2024-05-07 15:31:08
科學(xué)計(jì)算器怎么算n次方_科學(xué)計(jì)算器的度分秒怎么按
很多小伙伴們?cè)賳?wèn)計(jì)算器怎么算n次方,今天就來(lái)跟大家說(shuō)一說(shuō)。
2021-05-21 14:41:51
基于Arduino的編程計(jì)算器
描述Arduino Nano 編程計(jì)算器基于Arduino的編程計(jì)算器,用于教育和娛樂(lè)。成分Arduino納米LCD1602 16x2 帶 I2C 模塊25 件裝觸覺(jué)按鈕開(kāi)關(guān) 6x6x5 毫米蜂鳴器PCB代碼https://github.com/hjltu/hjcalc
北上北京
2022-09-09 07:04:21
如何使用TFT LCD構(gòu)建Arduino觸摸屏計(jì)算器
在這個(gè)項(xiàng)目中,我們將使用2.4英寸Arduino TFT LCD屏幕來(lái)構(gòu)建我們自己的Arduino觸摸屏計(jì)算器,該計(jì)算器可以執(zhí)行所有基本計(jì)算,如加法,減法,除法和乘法。
2023-01-25 17:06:00
封裝熱分析計(jì)算器教程
封裝熱分析計(jì)算器 (PTA) 是為 HP 50g 計(jì)算器編寫的程序,有助于分析 IC 封裝熱。使用數(shù)據(jù)表參數(shù),從芯片(結(jié)點(diǎn))、外殼到環(huán)境跟蹤熱量和耗散。探討了最大結(jié)溫下的功率降額因數(shù)和最大功耗。
2023-02-10 11:10:37
基于labview做的科學(xué)計(jì)算器與Windows自帶計(jì)算器相似
有沒(méi)有大佬分享基于labview的科學(xué)計(jì)算器論文,和Windows自帶的計(jì)算器功能相近,可以進(jìn)行進(jìn)制轉(zhuǎn)換等高級(jí)操作的,論壇里面雖然有源代碼,小白看不懂。急需論文。
流年0轉(zhuǎn)瞬
2019-05-05 08:58:36
電子語(yǔ)音計(jì)算器語(yǔ)音ic芯片所帶來(lái)的價(jià)值
電子計(jì)算器主要由電源、顯示屏、按鍵、電子回路等組成,可以計(jì)算加減乘除等其他基本函數(shù)。 電子計(jì)算器增加語(yǔ)音芯片功能所帶來(lái)的價(jià)值 目前使用的計(jì)算器都是滴滴聲音,很多時(shí)候是不是自己誤按
2021-12-06 16:23:16
如何使用封裝熱分析計(jì)算器(PTA)的簡(jiǎn)短指南
本文檔是關(guān)于如何使用封裝熱分析計(jì)算器(PTA)的簡(jiǎn)短指南,該工具由Maxim Integrated設(shè)計(jì),可簡(jiǎn)化熱IC封裝分析。包括使用該工具必不可少的參數(shù),以及示例,以更好地了解用戶。 封裝熱分析
2021-05-07 16:35:43
pcb過(guò)孔電流計(jì)算器怎么用
PCB過(guò)孔電流計(jì)算器是一種用于計(jì)算PCB板上過(guò)孔電流的工具。過(guò)孔是PCB板上的重要元件,用于連接不同層之間的電路。過(guò)孔的電流大小對(duì)于PCB板的性能和穩(wěn)定性具有重要影響。因此,正確使用PCB過(guò)孔電流計(jì)算器
2023-12-14 16:20:00
基于51單片機(jī)的簡(jiǎn)易計(jì)算器設(shè)計(jì)
該計(jì)算器系統(tǒng)51 系列的單片機(jī)進(jìn)行的數(shù)字計(jì)算器系統(tǒng)設(shè)計(jì),可以完成計(jì)算器的鍵盤輸入, 進(jìn)行加、 減、乘、除的簡(jiǎn)單四則運(yùn)算,并在 LCD屏幕上相應(yīng)的顯示結(jié)果。選擇內(nèi)部存儲(chǔ)資源豐富的 51 單片 機(jī),輸入
2023-08-01 00:51:27
Qorvo全新設(shè)計(jì)計(jì)算器:晶振選型、能耗預(yù)算計(jì)算器和鏈路預(yù)算與覆蓋范圍計(jì)算器
款功能強(qiáng)大的PC端計(jì)算工具 。這些工具—— 晶振采購(gòu)工具 、 能耗預(yù)算計(jì)算器 和 鏈路預(yù)算與覆蓋范圍計(jì)算器 ——讓優(yōu)化晶振選型、預(yù)測(cè)電池續(xù)航時(shí)間以及評(píng)估RF鏈路性能變得前所未有地簡(jiǎn)單。 接下來(lái),讓我們深入了解每一款計(jì)算器的功能以及它們?nèi)?
2025-06-24 17:51:34
借助設(shè)計(jì)計(jì)算器工具設(shè)計(jì)出精簡(jiǎn)穩(wěn)健的熱插拔
LM25066設(shè)計(jì)計(jì)算器等設(shè)計(jì)工具有助于解決這些問(wèn)題并為您進(jìn)行必要的計(jì)算,能夠節(jié)省大量時(shí)間并避免人為錯(cuò)誤產(chǎn)生的風(fēng)險(xiǎn)。無(wú)論是創(chuàng)建新設(shè)計(jì),還是對(duì)現(xiàn)有設(shè)計(jì)進(jìn)行故障排除,請(qǐng)考慮使用設(shè)計(jì)計(jì)算器以顯示可能存在問(wèn)題的部分。
2023-04-15 09:12:35
色環(huán)電阻計(jì)算器的研究與應(yīng)用
一個(gè)理想的色環(huán)電阻計(jì)算器的界面應(yīng)該包含一個(gè)顏色選擇器,讓用戶能夠通過(guò)點(diǎn)擊或下拉菜單選擇各個(gè)顏色環(huán)。而在程序邏輯層面,計(jì)算器需要具備實(shí)時(shí)反饋功能,用戶選擇顏色環(huán)后,系統(tǒng)能夠立即計(jì)算出電阻值并顯示。同時(shí)
2024-09-18 13:45:02