当前分类:python>>正文

python算法例14:不用if与else实现简单的计算器功能

来源:互联网   时间:2022年6月15日   编辑

简单的计算器就是加减乘除与乘方运算,当然大部分的计算器还可以进行一些复杂的计算,比如求平均值,开根以及求方差之类的。

如何不用if与else实现一个简单的计算器功能呢?

开始这个小例子之前,大家要弄清楚,在python语言中字典dict的get()方法

get()是返回Python 字典(Dictionary)指定键的值

语法是:

dict.get(key[, value]) 

参数说明一下:

key是字典中的键

value,可选 ,如果指定键不存在的时候,value值将作为默认值返回。

比如下面的例子:

image大家猜猜上面的程序执行后,输出的结果依次是什么?

依次为:

6yhj

None

50

明白了吗?

接下来,这里我们继续用到python中的内置运行模块operator—标准运算符替代函数

看下表

image

相当于说,我们只要导入operator模块

add(a,b)就表示a+b

mul(a,b)就表示a*b

sub(a,b)就表示a-b

明白这些后,我们来看一下简单计算器如何写代码

from operator import *
def calculator(a,b,k):
    ways={
        '+': add,
        '-': sub,
        '*': mul,
        '/': truediv,
        '**': pow,
    }
    return ways.get(k,add)(a,b)

print(calculator(2,3,'#'))
print(calculator(3, 4, '+'))
print(calculator(3, 4, '**'))

最后执行的结果如下:

5

7

81

第一个calculator(2,3,’#’)中键值#是不存在的,那为什么会得到5这个值呢?

因为定义calculator这个函数的时候,最后的返回值中get(k,add)给了一个默认值为add,所以当不存在对应的键时候就会返回这add相加。

[猜你喜欢]

标签: 算法