Python有以下三种的数值类型: 整型(integers), 浮点型(floating point numbers), 以及 复数(complex numbers)。此外,布尔是整数的子类型。

数值类型说明

整数由1-n个数字字符表示,整数的类型名称是int,所有的整数都是类型int的实例;浮点数由整数部分和小数部分构成,中间用.连接,浮点数的类型名称是float,所有浮点数都是类型float的实例;复数由实部和虚部构成,其中虚部跟上字母j,复数的类型名称数complex,所有复数都是类型complex的实例。

数值的声明

在python中,数值声明的方式有2种方式,分别是字面量声明方式和使用数值类型构造函数初始化的方式。

字面量

和其它语言类似,python支持字面量方式声明数值。

对于整数,一串数字就表示1个正整数,负数则在数字前面添加-号表示,

  1. # 正数
  2. >>> 19
  3. 19
  4. # 负数
  5. >>> -7
  6. -7
  7. # 0
  8. >>> 0
  9. 0

浮点数的字面量声明,负数同样的是前面添加-号来表示,

  1. # 正浮点数
  2. >>> 19.1
  3. 19.1
  4. # 负浮点数
  5. >>> -7.2
  6. -7.2
  7. # 0.0
  8. >>> 0.0
  9. 0.0

复数的字面量声明,虚部用字母j(或者J)表示

  1. >>> 1 + 2j
  2. 1 + 2j

整数默认的是按10进制进行表示的,但是字面量也可以直接声明2进制、8进制和16进制,它们分别是向整数添加0b0o0x表示。

  1. # 2进制
  2. >>> a = 0b10
  3. >>> a
  4. 2
  5. # 8进制
  6. >>> b = 0o10
  7. >>> b
  8. 8
  9. # 16进制
  10. >>> c = 0x10
  11. >>> c
  12. 16

构造函数声明

int函数是1个python内置函数,也是整数类型int的构造函数,它的作用是对传入的参数做初始化,转换成1个整数。根据传入的参数不同,初始化的结果也不相同。详见 Python内置函数33——int。

  1. # 1. 不传入参数时,得到结果0
  2. >>> int()
  3. 0
  4. #2. 传入整数时,返回本身;传入浮点数时,向下取整
  5. >>> int(3)
  6. 3
  7. >>> int(3.6)
  8. 3
  9. # 3. 传入字符串时,默认以10进制进行转换,字符串中可以带正负符号。
  10. >>> int('+36')
  11. 36
  12. >>> int('-36')
  13. -36
  14. # 4. 传入字符串时,并指定转换进制。
  15. >>> int('01',2)
  16. 1
  17. >>> int('02',3)
  18. 2
  19. >>> int('07',8)
  20. 7
  21. >>> int('0f',16)
  22. 15

float函数是1个python内置函数,也是浮点数类型float的构造函数,它的作用是对传入的参数做初始化,转换成1个浮点数。根据传入的参数不同,初始化的结果也不相同。详见 Python内置函数22——float。

  1. # 1. 不传入参数时,得到结果0.0
  2. >>> float()
  3. 0.0
  4. #2. 传入整数或者浮点数
  5. >>> float(3)
  6. 3.0
  7. >>> float(3.6)
  8. 3.6
  9. # 3. 传入字符串时,字符串中可以带正负符号。
  10. >>> float('+3.6')
  11. 3.6
  12. >>> float('-3.6')
  13. -3.6
  14. # 4. 几个特殊的字符串
  15. >>> float('Infinity')#无穷大
  16. inf
  17. >>> float('inf')#无穷大
  18. inf
  19. >>> float('inFinIty') #不区分大小写
  20. inf
  21. >>> float('+inFinIty') #正无穷
  22. inf
  23. >>> float('-inFinIty') #负无穷
  24. -inf
  25. >>> float('nan') #没有值
  26. nan

complex函数是1个python内置函数,也是复数类型complex的构造函数,它的作用是对传入的参数做初始化,转换成1个复数。根据传入的参数不同,初始化的结果也不相同。详见 Python内置函数13——complex。

  1. # 1. 不传入参数时,得到结果0j
  2. >>> complex()
  3. 0j
  4. #2. 传入2个参数,分别表示实部和虚部
  5. >>> complex(3,4)
  6. (3 + 4j)
  7. # 3. 传入字符串时
  8. >>> complex('3+4j')
  9. 3.6
  10. >>> complex('-3.6')
  11. (3 + 4j)

支持的运算操作

常见的运算操作

整形支持以下的运算操作,按优先级升序排列

  • x + y 相加
  • x - y 相减
  • x * y 相乘
  • x / y 相除
  • x // y 取整除,也叫地板除
  • x % y 取余数
  • -x 取负
  • +x 取正,值不变
  • abs(x) 取绝对值
  • int(x) 转换成整数
  • float(x) 转换成浮点数
  • complex(re,im) 转换成复数
  • c.conjugate() 取复数的共轭
  • divmod(x, y) 返回地板除的结果和取余数的结果组成的元组
  • pow(x,y) x 的y 次幂
  • x ** y x 的y 次幂

其中x // y只支持浮点数和整数,不支持复数,除法结果向下取整。

  1. >>> 1//2
  2. 0
  3. >>> -1//2
  4. -1
  5. >>> 1//(-2)
  6. -1
  7. >>> (-1)//(-2)
  8. 0
  9. # 其中1个是浮点数 结果也是浮点数
  10. >>> 5//3
  11. 1
  12. >>> 5//3.0
  13. 1.0

浮点数的四舍五入

python提供了内置函数float用来对浮点数进行四舍五入操作。其中有一点一定要注意,float如果不传入第2个参数,表示截断成整数。和传入0保留0位小数是不一样的。

  1. >>> round(3.456,2)
  2. 3.46
  3. >>> round(3.456,1)
  4. 3.5
  5. >>> round(3.456,0)
  6. 3.0
  7. >>> round(3.456) #不传入参数,结果是整数
  8. 3

浮点数转换成整数的几个截断方法

math模块中,提供了另外几种将浮点数截断成小数的方法,他们分别是trunc截断、floor向下取整、ceil向上取整。而上面提到的round函数,如果不传入第2个参数,也有取整的功能。

  1. # 导入math
  2. import math
  3. >>> a = 3.556
  4. >>> b = -3.556
  5. # 直接截断
  6. >>> math.trunc(a)
  7. 3
  8. >>> math.trunc(b)
  9. -3
  10. # 向下取整
  11. >>> math.floor(a)
  12. 3
  13. >>> math.floor(b)
  14. -4
  15. # 向上取整
  16. >>> math.ceil(a)
  17. 4
  18. >>> math.ceil(b)
  19. -3
  20. # 四舍五入取整
  21. >>> round(a)
  22. 4
  23. >>> round(b)
  24. -4

浮点数的is_integer()方法

is_integer()是浮动数的一个实例方法,
如果浮点数实例是整数值,则返回True,否则返回False.

  1. >>> f1 = 3.0
  2. >>> f1.is_integer()
  3. True
  4. >>> f2 = 3.14
  5. >>> f2.is_integer()
  6. False

Python内置类型(4)--数值的更多相关文章

  1. Python内置类型性能分析

    Python内置类型性能分析 timeit模块 timeit模块可以用来测试一小段Python代码的执行速度. class timeit.Timer(stmt='pass', setup='pass' ...

  2. Python 内置类型 dict, list,线程安全吗

    近段时间发现一个 Python 连接数据库的连接是线程不安全的,结果惹得我哪哪儿都怀疑变量的多线程是否安全的问题,今天终于找到了正确答案,那就是 Python 内置类型 dict,list ,tupl ...

  3. 为什么继承 Python 内置类型会出问题?!

    本文出自"Python为什么"系列,请查看全部文章 不久前,Python猫 给大家推荐了一本书<流畅的Python>(点击可跳转阅读),那篇文章有比较多的"溢 ...

  4. Python——内置类型

    Python定义了丰富的数据类型,包括: 数值型:int, float, complex 序列:(iterable) str, unicode, tuple, list, bytearray, buf ...

  5. 3、python内置类型(0529)

    python的内置对象类型以及支持的运算 python对象的相关术语 python程序中保存的所有数据都是围绕对象这个概念展开的 程序中存储的所有数据都是对象 每个对象都有一个身份.一个类型和一个值 ...

  6. python内置类型详细解释

    文章编写借鉴于内置类型 - Python 3.7.3 文档,主要用于自己学习和记录 python主要内置类型包括数字.序列.映射.类.实例和异常 有些多项集类是可变的.它们用于添加.移除或重排其成员的 ...

  7. 易被忽略的Python内置类型

    Python中的内置类型是我们开发中最常见的,很多人都能熟练的使用它们. 然而有一些内置类型确实不那么常见的,或者说往往会被我们忽略,所以这次的主题就是带领大家重新认识这些"不同寻常&quo ...

  8. Python内置类型——set

    Python中,内置类型set和frozenset用来表示集合,我们首先查看这两个类型支持的特殊对象,从而可以理解他们的特性. >>> dir(set) ['__and__', '_ ...

  9. Python内置类型——list

    list(列表)是Python内置的可变序列(Sequence)类型,list的对象的方法也都是就地(in-place)更改调用这些方法的列表对象, List的一些细节 可以直接为list的某个下标赋 ...

随机推荐

  1. Unity 2017 Game Optimization 新版

    英文原版,PDF格式带目录,非常不错的关于性能优化的书籍 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主

  2. Springboot08-项目单元测试(接口测试)

    Springboot08-项目单元测试(接口测试) 前言 1-本文重点在于源码层面,分析Springboot单元测试的使用,对于其中的注解.方法等,不会仔细分析: 2-本文项目实例相关配置:Java- ...

  3. js、jquery、jsp的区别

    1.JSP全称是java server page    JS全称是javaScript 2.最主要的区别是运行位置不同. JSP运行在后台服务器上,混合在HTML中的java程序段用于控制HTML的动 ...

  4. centos 搭建git 服务器

    安装 git yum -y install git 添加git 用户 adduser git 切换到git 用户 su git 在git用户家目录下创建  .ssh文件夹 mkdir .ssh 修改文 ...

  5. Django model进阶

    Django-model进阶   QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. >>> Ent ...

  6. 认识正则RegExp;

    1.什么是正则??? 就是一条规则,用于检验字符串的格式,目标就是字符串. *只要是表单提交的数据都是字符串 2.正则的定义??? (1)var reg=new RegExp() (2)var reg ...

  7. cpp 区块链模拟示例(二)工程代码解析

    /* 作 者: itdef 欢迎转帖 请保持文本完整并注明出处 技术博客 http://www.cnblogs.com/itdef/ 技术交流群 群号码:432336863欢迎c c++ window ...

  8. 接口测试3A原则

    手工的功能测试用例也可以用3A原则来编写. Arrange: 准备被测功能相关的测试数据,比如往系统里录入一批工单以便测试工单的分页功能 Act : 调用被测的功能,实际上这就是我们一直讲的测试步骤 ...

  9. 【微信小程序开发】页面配置

    app下的app.json文件是全局配置. app下的每一个page中,也可以配置.json文件. page中配置的内容是对应app中window配置项下的内容. page中的配置将覆盖window中 ...

  10. [Solution] JZOJ-5806 简单的操作

    [Solution] JZOJ-5806 简单的操作 题面 Description 从前有个包含n个点,m条边,无自环和重边的无向图. 对于两个没有直接连边的点u;v,你可以将它们合并.具体来说,你可 ...