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

数值类型说明

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

数值的声明

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

字面量

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

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

# 正数
>>> 19
19
# 负数
>>> -7
-7
# 0
>>> 0
0

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

# 正浮点数
>>> 19.1
19.1
# 负浮点数
>>> -7.2
-7.2
# 0.0
>>> 0.0
0.0

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

>>> 1 + 2j
1 + 2j

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

# 2进制
>>> a = 0b10
>>> a
2
# 8进制
>>> b = 0o10
>>> b
8
# 16进制
>>> c = 0x10
>>> c
16

构造函数声明

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

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

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

# 1. 不传入参数时,得到结果0.0
>>> float()
0.0 #2. 传入整数或者浮点数
>>> float(3)
3.0
>>> float(3.6)
3.6 # 3. 传入字符串时,字符串中可以带正负符号。
>>> float('+3.6')
3.6
>>> float('-3.6')
-3.6 # 4. 几个特殊的字符串
>>> float('Infinity')#无穷大
inf
>>> float('inf')#无穷大
inf >>> float('inFinIty') #不区分大小写
inf >>> float('+inFinIty') #正无穷
inf
>>> float('-inFinIty') #负无穷
-inf >>> float('nan') #没有值
nan

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

# 1. 不传入参数时,得到结果0j
>>> complex()
0j #2. 传入2个参数,分别表示实部和虚部
>>> complex(3,4)
(3 + 4j) # 3. 传入字符串时
>>> complex('3+4j')
3.6
>>> complex('-3.6')
(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//2
0
>>> -1//2
-1
>>> 1//(-2)
-1
>>> (-1)//(-2)
0 # 其中1个是浮点数 结果也是浮点数
>>> 5//3
1
>>> 5//3.0
1.0

浮点数的四舍五入

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

>>> round(3.456,2)
3.46
>>> round(3.456,1)
3.5
>>> round(3.456,0)
3.0
>>> round(3.456) #不传入参数,结果是整数
3

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

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

# 导入math
import math >>> a = 3.556
>>> b = -3.556 # 直接截断
>>> math.trunc(a)
3
>>> math.trunc(b)
-3 # 向下取整
>>> math.floor(a)
3
>>> math.floor(b)
-4 # 向上取整
>>> math.ceil(a)
4
>>> math.ceil(b)
-3 # 四舍五入取整
>>> round(a)
4
>>> round(b)
-4

浮点数的is_integer()方法

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

>>> f1 = 3.0
>>> f1.is_integer()
True >>> f2 = 3.14
>>> f2.is_integer()
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. as3.0 当fla里面有TLF文本的时候,加载声音会出现错误

    问题描述 1.现有制作好的mp3加载包,这个包是相对路径 2.如果fla里面没有TLF文本,可以正常运行 解题思路 1.音频的相对路径和加载TLF文本的路径不一样,fla会优先选择TLF文件,这样mp ...

  2. AltiumDesigner印制导线的走向及形状

    印制导线的走向及形状.在PCB布线时,相邻层的走线方向成正交结构,应避免将不同的信号线在相邻走成同一方向,以减少不必要的层间窜扰.当PCB布线受到结构限制(如某种背板)难以避免出现平行布线时,特别是当 ...

  3. python 函数编程

    def test1(): print('in the test1') def test2(): print('in the test2') return 1 def test3(): print('i ...

  4. django 模板使用

    1 配置 在工程中创建模板目录templates. 在settings.py配置文件中修改TEMPLATES配置项的DIRS值: TEMPLATES = [ { 'BACKEND': 'django. ...

  5. Less入门及知识点整理

    LESS « 一种动态样式语言 文档链接:http://www.bootcss.com/p/lesscss/ 百科 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合( ...

  6. IIS上配置单页面404

    问题 因为我们的应用是单页客户端应用,当用户在浏览器直接访问http://www.xxx.com/user时,刷新页面的时候,会返回404错误. 问题原因 服务端URL匹配不到相应的路由资源 解决方案 ...

  7. VS中程序包错误,引用错误该如何解决

    1.找到包的文件.packages.config 对应于: 2.删除掉 packages.config 报错的项.然后再重新添加一次.就没有解决的不了的问题. 是不是很爽.....

  8. 设计模式之桥接模式 c++11

    参考http://blog.csdn.net/calmreason/article/details/50909321 桥接模式 实现与抽象之间由指针关联 调用sample类 实际是调用sample类保 ...

  9. Linux配置ntp时间服务器(全)

    时间服务器作用: 大数据产生与处理系统是各种计算设备集群的,计算设备将统一.同步的标准时间用于记录各种事件发生时序, 如E-MAIL信息.文件创建和访问时间.数据库处理时间等. 大数据系统内不同计算设 ...

  10. 2.在demo bag上运行cartographer ROS

    注意在运行bag包,之前需要去执行source install_isolated/setup.bash 1.Deutsches Museum 下载并启动2D的backpack demo: wget - ...