目录:

1.2 数字

 

1.2.1 数字类型

python 内置可以处理大部分常见的数字类型,比如整数,浮点数。 还有一些模块包括更高级的数学工具。第三方开源扩展领域还包含了更多的类型(矩阵生向量).

python数字类型包含:

  • 整数与浮点数
  • 复数
  • 固定精度的十进制
  • 有理分数
  • 集合
  • 布尔
  • 无穷的整数精度
  • 各种数字内置函数和模块
Table 1: 基本数字常量
常量 类型
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 复数
Table 2: 表达式操作符及程序
操作符 描述
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'

      注意 通过 '%' 进行格式化时不支持二进制。

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 内置数据类型之数字的更多相关文章

  1. Python内置数据类型总结

    python的核心数据类型:(很多语言之提供了数字,字符串,文件数据类型,其他形式的数据类型都以标准库的形式表示 也就是用之前需要import ) ,但是python有很多都是内置的,不需要impor ...

  2. Python内置数据类型之Dictionary篇

    1.查看函数XXX的doc string. Python的函数是有属性的,doc string便是函数的属性.所以查看函数XXX的属性的方法是模块名.XXX.__doc__ 2.模块的属性 每个模块都 ...

  3. python内置数据类型-字典和列表的排序 python BIT sort——dict and list

    python中字典按键或键值排序(我转!)   一.字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序. Py ...

  4. Python内置数据类型之Tuple篇

    Tuple 是不可变的 list.一旦创建了一个 tuple,就不可以改变它.这个有点像C++中的const修饰的变量.下面这段话摘自Dive Into Python: Tuple 比 list 操作 ...

  5. python 内置数据类型之字符串

    1.3 字符串 字符串本身就是一个有序(从左至右)的字符的集合.是序列这种类型的一种,后面还要学习列表与元组. 在这一节中,需要了解字符串的定义,特殊字符,转义与抑制转义:字符串基本操作.格式化等. ...

  6. Python内置数据类型之List篇

    List的定义: li = ["one" , "two" , "three" , "four"] List是一个有序的集 ...

  7. python计算非内置数据类型占用内存

    getsizeof的局限 python非内置数据类型的对象无法用sys.getsizeof()获得真实的大小,例: import networkx as nx import sys G = nx.Gr ...

  8. Python笔记004-Python最基本内置数据类型和运算符

    第二章(1)Python编程基础概念 1. 最基本内置数据类型和运算符 每个对象都有类型,Python 中最基本的内置数据类型: 1. 整数 整数,2345 ,10 ,50 2. 浮点型 小数,3.1 ...

  9. Python作业---内置数据类型

    实验2 内置数据类型 实验性质:验证性 一.实验目的 1.掌握内置函数.列表.切片.元组的基本操作: 2.掌握字典.集合和列表表达式的基本操作. 二.实验预备知识 1.掌握Python内置函数的基/本 ...

随机推荐

  1. JVM内存分配及GC流程

    -verbose 这是查询GC问题最常用的命令之一,具体参数如: -verbose:class 输出jvm载入类的相关信息,当jvm报告说找不到类或者类冲突时可此进行诊断. -verbose:gc 输 ...

  2. python模块-----pymysql

    一.安装 本模块为python第三方模块,需要单独安装.作用为调用mysql接口执行模块 pip3 install pyMySql 操作步骤: #!/usr/bin/python3 import py ...

  3. 基于React 的前端UI开发框架 及与Electron 的结合 https://cxjs.io/

    1.cxjs  基于React 的前端UI开发框架    https://cxjs.io/ coreu   http://coreui.io/ 2.antd-admin                ...

  4. Liunx之始

    作者:邓聪聪 本章是为了工作之需要,所做的一个学习心得,也为自己留下相关印记以便日后留用. 1:安装服务yum install ppp -yyum install pptpd -y由于yum源没有pp ...

  5. 题解-ZeroJudge-c686 高斯符號

    Problem ZeroJudge Solution 考慮到\(\lfloor \frac {km}n\rfloor\)等同於\(km\)整除\(n\),換種表示方法就是\(km\)減去\(km\)模 ...

  6. 通过python统计nginx日志定位php网站响应慢的问题

    # 公司网站反映很慢,可能是一些页面的访问方法或者页面引起,通过程序统计nginx访问日志的页面和具体的action方法访问次数以及平均响应时间可以为程序开发的同事提供参考定位具体的代码 # 默认的n ...

  7. C/C++中容易造成内存溢出的函数

    1.strcpy() strcpy()函数将源字符串复制到缓冲区.没有指定要复制字符的具体数目.复制字符的数目直接取决于源字符串中的数目.如果源字符串碰巧来自用户输入,且没有专门限制其大小,则有可能会 ...

  8. VBS学习

    简介 VBS windows脚本 Microsoft visual basic script editionVBS 是visual basic的一个抽象子集,系统内置,不编译为二进制文件,(由host ...

  9. 小程序---textarea踩坑

    1.小程序中textarea不能在scroll-view.swiper.picker-view等等里面运用. 2.不在fixed布局的页面中,placeholder也会随着页面滚动,解决方法:顶级父元 ...

  10. Modbus库开发笔记之九:利用协议栈开发Modbus TCP Server应用

    前面我们已经完成了Modbus协议栈的开发,但这不是我们的目的.我们开发它的目的当然是要使用它来解决我们的实际问题.接下来我们就使用刚开发的Modbus协议栈开发一个Modbus TCP Server ...