Python中的数值类型总结

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Python中的数值类型总结

海淀区小吴同学   2020-03-30 我要评论
本文参考书:《Learning Python》中文版——《Python 学习手册》第四版 ------ 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常见的运算符 ## 常见运算符的总结 | 运算符 | 描述 | | :-----------------------: | :------------------------------------------: | | `lambda` args: expression | 创建匿名函数 | | x `in` y, x `not in` y | 判断成员关系(可迭代对象、集合) | | x `is` y, x `is not` y | 测试对象内存地址是否一致,严格意义上的等价性 | | `==`, `!=` | 判断值等价性 | | `|` | 按位或、集合的并集 | | `^` | 按位异或、集合的对称差集 | | `&` | 按位与、集合交集 | | x `<<` y, x `>>` y | 将x左移或右移y位 | | `%` | 取余 | | `//` | 整除 | | `~` | 按位非(取反码) | | `**` | 幂运算(指数运算) | | `( )` | 元组、表达式、生成式表达式 | | `[ ]` | 列表 | | `{ }` | 字典、集合 | ## 运算符的优先级 上表中从上往下运算符优先级依次增加,即: `()`>`[]`>`**`> `~`>`-`(取负)>`/` `//` >`%`>`*`>`+` `-`... 括号的优先级最高,在复杂的表达式中,建议增加括号以避免混淆。 # 数字的实际应用 ## 变量与表达式 - 变量在第一次被赋值时创建 - 变量在表达式使用之前,必须已被赋值(创建) - 变量不需要提前声明 ## 各种除法方式的比较 ### 经典除法 在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模块 ```python 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模块 ```python import random random.random() #随机生成0-1的随机数 random.randint(x, y) #在x~y之间随机生成一个整数 random.choice([list]) #随机在列表list中选择一项 random.shuffle([list]) #随机打乱列表中的元素 ``` ### 小数类型(Decimal) 小数类型的功能与浮点数很接近,但是小数有固定的位数和小数点,因此,小数可以看做固定精度的浮点数。 ##### 小数的创建 ```python #浮点数的计算缺乏精确性,这是因为用来存储数值的空间有限,例如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') #可以直接使用浮点数创建小数,但是有时候会产生默认且庞大的小数位数 ``` ##### 设置全局小数精度 ```python import decimal decimal.getcontext().prec = 4 #设置精度(小数位数) ``` ### 分数类型 分数与小数类似,可以用来处理浮点数类型的不精确性。它显式的保持了一个分子和一个分母。 ```python import fractions x = fractions.Fraction(1, 4) y = fractions.Fraction(1, 2) x + y #输出Fraction(4, 3) ```

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们