利用eval函数实现简单的计算器

"""
description : use python eval() function implement a simple calculator
functions can be used as follow:
----------------------------------------
+ : addition
- : minus
* : multiplication
/ : division
% : --> /100.0
e : math.e
pi : math.pi
sin : math.sin
cos : math.cos
^ : --> **
tan : math.tan
mod : --> %
sqrt: math.sqrt
rad: --> radius math.radians
round:
"""
import math

# 定义可以使用的函数及常量
functions=('e','pi','sin','cos','tan','sqrt','radians')

def calculate(expression):

    expression=expression.lower()

    # replace函数返回替换后的字符串
    expression=expression.replace('%','/100.0')
    expression=expression.replace('^','**')
    expression=expression.replace('mod','%')
    expression=expression.replace('rad','radians')

    for i in functions:
        if i in expression:
            expression=expression.replace(i,'math.{}'.format(i))
    try:
        return (eval(expression))
    except ZeroDivisionError:
        print('zero can not be division')
    except Exception as e:
        print(e)

def main():
    while True:
        expression=input("input your expression here:")
        if expression=='q':
            break
        else:
            result=calculate(expression)
            if result:
                print(result)


if __name__=="__main__":
    main()

  

转载于:https://www.cnblogs.com/liaoxuewen/p/10405880.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个利用Vue编简单计算器,包含了三角函数的计算功能: ```html <template> <div class="calculator"> <div class="display">{{ display }}</div> <div class="buttons"> <button @click="input('sin')">sin</button> <button @click="input('cos')">cos</button> <button @click="input('tan')">tan</button> <button @click="input('(')">(</button> <button @click="input(')')">)</button> <button @click="input('^')">^</button> <button @click="input('sqrt')">√</button> <button @click="input('7')">7</button> <button @click="input('8')">8</button> <button @click="input('9')">9</button> <button @click="input('/')">÷</button> <button @click="input('pi')">π</button> <button @click="input('4')">4</button> <button @click="input('5')">5</button> <button @click="input('6')">6</button> <button @click="input('*')">×</button> <button @click="input('e')">e</button> <button @click="input('1')">1</button> <button @click="input('2')">2</button> <button @click="input('3')">3</button> <button @click="input('-')">-</button> <button @click="input('log')">log</button> <button @click="input('0')">0</button> <button @click="input('.')">.</button> <button @click="input('+')">+</button> <button @click="input('exp')">exp</button> <button @click="calculate()">=</button> </div> </div> </template> <script> export default { data() { return { display: "", }; }, methods: { input(value) { this.display += value; }, calculate() { try { this.display = eval(this.display); } catch (error) { this.display = "Error"; } }, }, }; </script> <style> .calculator { display: flex; flex-direction: column; align-items: center; margin-top: 50px; } .display { font-size: 24px; width: 300px; height: 40px; margin-bottom: 20px; text-align: right; padding-right: 10px; border: 1px solid #ccc; } .buttons { display: flex; flex-wrap: wrap; } button { width: 60px; height: 50px; font-size: 20px; margin: 5px; border-radius: 5px; border: none; background-color: #ccc; cursor: pointer; } button:hover { background-color: #ddd; } </style> ``` 在这个计算器中,我们使用了eval()函数来计算输入的表达式。eval()函数是JavaScript中的一个内置函数,它可以把一个字符串解析为JavaScript代码,并执行这段代码。虽然eval()函数非常方便,但是它也有一些潜在的安全问题,因为它可以执行任何代码,包括恶意代码。因此,在实际应用中,我们应该尽可能避免使用eval()函数,或者对输入的字符串进行严格的验证和过滤,以防止安全漏洞的发生。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值