python decimal_Python中的数值类型总结

6cab7c3f5ebc11f16fef7bda7e0c3417.png

点击以下链接可以快速访问全部我发表的Python相关文章:

Nick WU:Nick WU的python文章目录(持续更新中...)​zhuanlan.zhihu.com
4d31eb36269d493785e0341fec1b27fa.png

Python中包含大量的数值类型,他们中的大部分与其他编程语言保持一致,因此学习他们就显得尤为容易了。现在我将完整的Python数据类型总结如下,以供大家参考:

  • 整数和浮点对象
  • 复数对象
  • 小数:固定精度对象
  • 分数:有理数对象
  • 集合:带有数值计算的集合体
  • 布尔值:真和假
  • 内置函数和模块:round、math、random等
  • 表达式、八进制、二进制等
  • 第三方扩展:向量、库、可视化、作图等

下面我将就常用的数值类型为大家做具体的总结。

数值字面量

  1. 整数:Python3 中将Python2.X的长整型和整形合二为一,他支持内存空间允许的无限精度
  2. 浮点型:浮点型的标志就是小数点.或者科学技术标志e或E,浮点型在标准CPython中采用C语言的“双精度”来实现,其精度与用来构建Python编辑器的C编译器所给定的精度一致。
  3. 十六进制数:0x或0X开头,后面接0-9或A-F或a-f。
  4. 八进制数:0O或0o开头(数字0+字母o),后面接0-7。
  5. 二进制数:0b或0B开头,后面接0-1。
  6. 复数:Python中复数字面量用实部+虚部的方式表示,虚部以j或J结尾,如3+4j等。

Python常见的运算符

常见运算符的总结

d6398453bb6331df8bf134dd225dfa8c.png

运算符的优先级

上表中从上往下运算符优先级依次增加,即:

()>[]>**> ~>-(取负)>/ // >%>*>+ -...

括号的优先级最高,在复杂的表达式中,建议增加括号以避免混淆。

数字的实际应用

变量与表达式

  • 变量在第一次被赋值时创建
  • 变量在表达式使用之前,必须已被赋值(创建)
  • 变量不需要提前声明

各种除法方式的比较

经典除法

在Python2.X中,用/表示。对于整数操作会省去小数部分,但对于浮点数则会保留小数部分。但Python3中,/已经变为真除法。Python3中无经典除法。

真除法

在Python3中,用/表示真除法,即最后的结果是一个浮点数。

整除法

//表示,也称为向下取整除法。即算出结果后舍去小数部分,仅仅保留整数部分。注意,向下取整除法≠截断除法。对于正数而言,向下取整即舍去小数部分,可以看做截断。但是对于负数而言,向下取整不等于截断。如-5 // 2 = -3 ≠ -2,截断除法则为-2。

进制转换

  • oct()函数:将十进制转换为八进制
  • hex()函数:将十进制转换为十六进制
  • bin()函数:将十进制转换为二进制
  • int(num, n)函数:可将字符串从n进制的num转换成十进制,如int('0xabc', 16)

其他内置数值工具

内置函数

pow(x, n)  #x的n次方
abs(x), sum((1,2,3,4))  #绝对值和求和
min(1, 2, 3), max(1, 2, 3)  #求最大最小值

math模块

import math
math.pi, math.e  #常数pi和e
math.sin  #三角函数
math.sqrt(n)  #开方
math.floor(x)  #向下取整,floor(2.30)=2, floor(-2.30)=-3
math.trunc(x)  #截断,trunc(2.3)=2, trunc(-2.3)=-2

random模块

import random
random.random()  #随机生成0-1的随机数
random.randint(x, y)  #在x~y之间随机生成一个整数
random.choice([list])  #随机在列表list中选择一项
random.shuffle([list])  #随机打乱列表中的元素

小数类型(Decimal)

小数类型的功能与浮点数很接近,但是小数有固定的位数和小数点,因此,小数可以看做固定精度的浮点数。

小数的创建

#浮点数的计算缺乏精确性,这是因为用来存储数值的空间有限,例如0.1+0.1+0.1-0.3应该等于0,但是用浮点数计算的结果却不等于0,用小数可以完美的解决这个问题
0.1 + 0.1 + 0.1 -0.3 
#输出:5.551115123125783e-17

from decimal import Decimal #使用小数之前需要先导入模块
Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
#输出:Decimal('0.0')
#可以直接使用浮点数创建小数,但是有时候会产生默认且庞大的小数位数

设置全局小数精度

import decimal
decimal.getcontext().prec = 4  #设置精度(小数位数)

分数类型

分数与小数类似,可以用来处理浮点数类型的不精确性。它显式的保持了一个分子和一个分母。

import fractions
x = fractions.Fraction(1, 4)
y = fractions.Fraction(1, 2)
x + y  #输出Fraction(4, 3)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值