python 内置数据类型之数字
目录:
1.2 数字
1.2.1 数字类型
python 内置可以处理大部分常见的数字类型,比如整数,浮点数。 还有一些模块包括更高级的数学工具。第三方开源扩展领域还包含了更多的类型(矩阵生向量).
python数字类型包含:
- 整数与浮点数
- 复数
- 固定精度的十进制
- 有理分数
- 集合
- 布尔
- 无穷的整数精度
- 各种数字内置函数和模块
| 常量 | 类型 |
|---|---|
| 1234 | 整数 |
| 1.,.1 , 3.14e+210,4E210, 2 ** 3.1 | 浮点数(采用C语言的双精度) |
| decimal.Decimal('.1') | 小数(通过模块实现) |
| Fraction(1,3) | 分数(通过模块实现) |
| 0123, 0x111,0b101010 | python2.6中的八进制,十六进制,二进制 |
| 0o123,0x111,0b101010 | python3.0中的八进制,十六进制,二进制 |
| 3+4j,3.0+4.0j,3J | 复数 |
| 操作符 | 描述 |
|---|---|
| yield x | 生成器函数发送协议 |
| lambda args: expression | 生成匿名函数 |
| x if y else z | 三元选择表达式 |
| x or y | 逻辑或(只有x 为假时才会计算y) |
| x and y | 逻辑与(只有x为真才会计算y,并且要求y为真) |
| not x | 逻辑非 |
| x in y, x not in y | 成员关系 (可迭代对象,集合) |
| x is y,x is not y | 对象实体测试 |
| <,<=,>,>=,==,!= | 比较 |
| x | y | 位或,集合并集 |
| x^y | 位异或,集合对称差 |
| x&y | 位与,集合交集 |
| x < <y, x>>y | 左移或者右移Y位 |
| x+y,x-y | 加(合并),减,集合差集 |
| x*y,x%y,x/y,x//y | 相乘,求余数,除法,floor 除法(取相临的最小整数) |
| -x,+x | 一元减法,识别 |
| ~x | 按位求补(取反) |
| x**y | 幂运算 |
| x[i] | 索引(序列、映射及其他)点号取属性运算,函数调用 |
| x[i:j:k] | 分片 |
| x(….) | 调用函数、方法类及其他可调用的) |
| x.attr | 属性引用 |
| (….) | 元组 |
| […] | 列表,列表解析 |
| {…} | 字典,集合 ,字典和集合解析 |
- note
-
- 运算符优化级,在Table2表格中,越靠后优先级越高。
- 同一行表达式,在组全的时候通常从左至右顺序运算。(幂运算是从右向左运算的)
- 括号可以改变优先级,像数学一样,会先运算括号内的部分
- / (除号),在python2.6 中,只保留整数部分,在python3.0中会保留小数部分
1.2.2 浮点数
一般来讲,浮点数是带有小数点的数。比如1. , .5 ,2. ** 3. 都是浮点数。浮点数的对比和计算是不精确的,原因是 内存结构中允许存储的最长位置与浮点数之间的二进制表示方式之间的冲突与矛盾。由于这固有的限制,使得浮点数进行 计算时会不精确。因此不推荐使用浮点数进行计算。
1.2.3 进制记数
本节进制转换只适用于整数。
- 常数 在python3.0 中,其他进制都以前0+字母开头,
二进制 八进制 十六进制 进制标记 0b 0o 0x 示例 0b01010 0o222 0x169 - 十进制与其他进制转换
- 进制转换通过内置函数实现,以十进制数字10为示例:
Table 3: 十进制转换其他进制函数 转换为 二进制 八进制 十六进制 bin(10) oct(10) hex(10) 十进制 int('1010',2) int('12',8) int('a',16) int('0b1010',2) int('0o12',8) int('0xa',16) 这些内置置换函数,实际是英文的缩写:
Table 4: 进制函数英文 函数 英文 中文 bin binary 二进制的 oct octal 八进制的 hex hexadecimal 十六进制 - 通过字符串格式化方法转换
>>> '{0:o},{1:x},{2:b}'.format(10,10,10)
'12,a,1010'
>>> '%o,%x' %(10,10)
'12,a'注意 通过 '%' 进行格式化时不支持二进制。
- 进制转换通过内置函数实现,以十进制数字10为示例:
1.2.4 设置小数精度
设置小数精度,这里主要了解通过decimal模块来设置,可以设置全局小数精度,也可以设置局部小数精度。 使用的是该模块中的getcontext().pre 来实现,使用这种方法,数字应以Decimal格式。普通的整数格式不受限制。
- 全局设置
示例如下:
>>> import decimal
>>> 1/7
0.14285714285714285
>>> decimal.getcontext().prec = 4
>>> 1/7
0.14285714285714285
>>> decimal.Decimal(1)/decimal.Decimal(7)
Decimal('0.1429')
- 局部设置
局部设置小数精度,需要通过with语句来实现。示例如下:
>>> import decimal
>>> 1/7
0.14285714285714285
>>> decimal.getcontext().prec = 4
>>> 1/7
0.14285714285714285
>>> decimal.Decimal(1)/decimal.Decimal(7)
Decimal('0.1429')
>>> with decimal.localcontext() as lctx :
... lctx.prec=2
... decimal.Decimal('1') / decimal.Decimal('7')
...
Decimal('0.14')
>>> decimal.Decimal(1) / decimal.Decimal(7)
Decimal('0.1429')
>>>
1.2.5 分数
分数的实现,主要是通过模块fraction来实现。分数的存在避免了浮点数的某些不精确性和局限性。 下面是分数使用示例
>>> from fractions import Fraction
>>> x=Fraction(1,3)
>>> x
Fraction(1, 3)
>>> print(x)
1/3
>>> y=Fraction(2,3)
>>> x+y
Fraction(1, 1)
>>> print(x+y)
1
>>>
1.2.6 除法
python 中,包含了传统除尘与真除法(是否保留小数),floor除法。 x/y, 传统除法与真除法都是这种写法。区别在于在python3 之前表示传统除法,python3 中表示真除法。传统除法,整数相除的 结果保留整数,浮点数相除的结果保留小数部分。真除法中,数值相除结果始终保留小数。 x//y , 这种表示方法为floor除法,相除的结果,如果是小数,会取与小数相近的最小整数。
python 内置数据类型之数字的更多相关文章
- Python内置数据类型总结
python的核心数据类型:(很多语言之提供了数字,字符串,文件数据类型,其他形式的数据类型都以标准库的形式表示 也就是用之前需要import ) ,但是python有很多都是内置的,不需要impor ...
- Python内置数据类型之Dictionary篇
1.查看函数XXX的doc string. Python的函数是有属性的,doc string便是函数的属性.所以查看函数XXX的属性的方法是模块名.XXX.__doc__ 2.模块的属性 每个模块都 ...
- python内置数据类型-字典和列表的排序 python BIT sort——dict and list
python中字典按键或键值排序(我转!) 一.字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序. Py ...
- Python内置数据类型之Tuple篇
Tuple 是不可变的 list.一旦创建了一个 tuple,就不可以改变它.这个有点像C++中的const修饰的变量.下面这段话摘自Dive Into Python: Tuple 比 list 操作 ...
- python 内置数据类型之字符串
1.3 字符串 字符串本身就是一个有序(从左至右)的字符的集合.是序列这种类型的一种,后面还要学习列表与元组. 在这一节中,需要了解字符串的定义,特殊字符,转义与抑制转义:字符串基本操作.格式化等. ...
- Python内置数据类型之List篇
List的定义: li = ["one" , "two" , "three" , "four"] List是一个有序的集 ...
- python计算非内置数据类型占用内存
getsizeof的局限 python非内置数据类型的对象无法用sys.getsizeof()获得真实的大小,例: import networkx as nx import sys G = nx.Gr ...
- Python笔记004-Python最基本内置数据类型和运算符
第二章(1)Python编程基础概念 1. 最基本内置数据类型和运算符 每个对象都有类型,Python 中最基本的内置数据类型: 1. 整数 整数,2345 ,10 ,50 2. 浮点型 小数,3.1 ...
- Python作业---内置数据类型
实验2 内置数据类型 实验性质:验证性 一.实验目的 1.掌握内置函数.列表.切片.元组的基本操作: 2.掌握字典.集合和列表表达式的基本操作. 二.实验预备知识 1.掌握Python内置函数的基/本 ...
随机推荐
- jquery判断表单内容是否为空
//判断表单数据是否为空 var t = $('form').serializeArray(); $.each(t,function(i,item){ if(item['value'] == '') ...
- 【防坑指南】nginx重启后出现[error] open() “/usr/local/var/run/nginx/nginx.pid” failed
重新启动nginx后,出现报错,原因就是下没有nginx文件夹或没有nginx.pid文件,为什么会没有呢? 原因就是每次重新启动,系统都会自动删除文件,所以解决方式就是更改pid文件存储的位置, 打 ...
- Nginx系列2:用Nginx搭建一个可用的静态资源Web服务器
上一节中编译好自己的nginx服务器后, 现在要对nginx.conf文件进行配置,搭建一个可用的静态资源Web服务器 1.放入可访问的html文件到nginx文件夹下,如图1所示: 这里我放入的是一 ...
- MVC传参数给js的时候 如果是数值 变量要进行一下转换才能正确识别 例如var aaa = parseInt('@Model.ClickIndex');
这是拼接参数的格式 <div id="a1" style="font-size:12px" onclick="location = '@item ...
- Linux后门权限维持手法
0x01 Linux 1. 预加载型动态链接库后门 inux操作系统的动态链接库在加载过程中,动态链接器会先读取LD_PRELOAD环境变量和默认配置文件/etc/ld.so.preload,并将读取 ...
- python下划线,私有变量
转自:http://blog.sina.com.cn/s/blog_58649eb30100g4zo.html Python用下划线作为变量前缀和后缀指定特殊变量. "单下划线" ...
- 卷积神经网络(matlab实现)
卷积神经网络是看matlab 的一个toolbox入的门: https://github.com/rasmusbergpalm/DeepLearnToolbox 还有一篇原理推导文献,全是公式: ht ...
- 【转】C++中substr的用法
substr有2种用法:假设:string s = "0123456789"; string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾 ...
- linux计算服务器最近一次重启的时间
date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S" 这 ...
- 任意N位二进制的补码实现——队列存放
正在学习计算机组织与结构,为了写一些底层的算术操作模拟,比如一个二进制补码数的加减乘除,发现这很麻烦,因为不管是什么语言,都只提供了8位.32.64位等部分位数的补码形式,那么怎么实现任意任意位的补码 ...