python中的数学运算(二)

1、python中有一些类似数学集合的运算,如 或、且、非的关系,对应的运算符有 |,&,-等运算符。这些运算符都是仅限于集合set的操作,也有一定的实用性。

# 创建两个集合x, y
>>> x = set('spam')
>>> y = {'h', 'a', 'm'}
>>> x, y
({'a', 'p', 'm', 's'}, {'h', 'm', 'a'})

# 对集合求交集,获取两个集合共有数据
>>> x & y
{'a', 'm'}

# 对集合求并集,获取两个集合拥有的数据
>>> x | y
{'a', 'p', 'm', 's', 'h'}

# 对集合做差
>>> x - y
{'p', 's'}
>>> {x ** 2 for x in [1, 2, 3, 4]}
{16, 1, 4, 9}

需要注意的是此处只能针对集合做操作,换成列表是不行的。

>>> x = list(x)
>>> x
['a', 'p', 'm', 's']
>>> y = list(y)
>>> y
['h', 'm', 'a']
# 此处报错,直接说明类型不支持
>>> x | y
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    x | y
TypeError: unsupported operand type(s) for |: 'list' and 'list'
>>> x & y
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    x & y
TypeError: unsupported operand type(s) for &: 'list' and 'list'

2、使用decimal模块控制浮点数精度
(1)使用round函数的一个小弊端

>>> round(3.22, 1)
3.2

# 当使用round函数保留两位小数时,
# 由于最后一位是0,所以被舍弃,最后仅
# 保留了一位小数,3.20也就成了3.2
>>> round(3.203, 2)
3.2

(2)使用decimal模块解决上述问题

>>> import decimal
# 构建decimal对象时,注意此处传参必须是字符
# 如何是小数,还是会出现精度问题
>>> deci = decimal.Decimal('3.20')

# 使用quantize方法,构造精度,此处是小数点后保留两位
# 返回对象依旧为decimal对象
>>> res = deci.quantize(decimal.Decimal('0.00'))
>>> res
Decimal('3.20')
# 获取字符
>>> res.to_eng_string()
'3.20'

哈哈,以上就是Python小工具关于数学中的一些运算,有兴趣欢迎关注python小工具。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值