码迷,mamicode.com
首页 > 编程语言 > 详细

Python 数字

时间:2015-12-22 16:04:54      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:

数字类型

1,简介

数字提供了标量贮存和直接访问。它是不可更改类型,也就是说变更数字的值会生产新的对象。Python支持多种数字类型:整型,长整型,布尔型,双精度浮点型,十进制浮点行和复数

2,更新删除

更新:由于数值对象是不可便类型,所以无法‘更新’,只能创建一个新对象,并将引用指向它。
删除:按照Python的法则,无法真正删除一个数值对象,仅仅是不在使用它而已。如果你确定想删除一个数值对象的引用,使用del语句即可,删除对象的引用后,就不能在使用这个引用了,除非重新给它赋一个新值。如果试图使用已经删除的对象引用,会触发一个NameError的异常。

>>> a = 10
>>> del a 
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name a is not defined

 

3,整形

3.1,布尔型

该类型的取值范围只有2个值,True和False

3.2,标准整形

Python标准整形类型是最通用的数字类型,Python的标准整形等价于C的有符号的长整型,整形一般以十进制表示,python也支持八进制(数字0开始)和十六进制(0x或者0X开始)

3.3,长整形

Python能轻松表达很大的整型。在一个整型值后面加上L(大小写都可以,推荐大写),表示整型是长整型

3.4,双精度浮点型

Python的浮点型类似C语言中的double类型,是双精度浮点型,可以用直接的十进制或科学计数法标示。每个浮点型占8个字节(64位),其中52个位用于标示底,11个位用于标示指数,剩下一个位标示符号,然而,实际精度依赖于机器架构和创建Python解释器的编译器。浮点值通常都有一个小数和一个后缀的e(大小写不区分),在e和指数之间用正(+)或(-)标示指数的正负(正数可以省略符号)。

3.5,复数

Python中有关复数的几个概念

  • 虚数不能单独存在,它们总是和一个值为0.0的实数部分一起构成一个复数
  • 复数有实数部分和虚数部分
  • 标示虚数的语法:real + imagj
  • 实数部分和虚数部分都是浮点型
  • 虚数部分必须有后缀j或者J
    64.173+1j 
    4.23-8.5j
    1.23e-045+089j
@复数的属性
属性描述
num.real 复数的实数
num.imag 复数的虚数
num.conjugate() 返回该复数的共轭复数
>>> aComplex = -8.33-1.47j
>>> aComplex
(-8.33-1.47j)
>>> aComplex.real
-8.33
>>> aComplex.imag
-1.47
>>> aComplex.conjugate()
(-8.33+1.47j)

 

3.6,操作符

3.6.1,混合模式操作符

  • 如果有一个操作数为复数,另一个操作数被转换为复数;
  • 否则,如果有一个操作数为浮点型,另一个操作数被转换为浮点型;
  • 否则,如果有一个操作数是长整型,则另一个操作数被转换为长整型;
  • 否则,两者都是普通整形,无须类型转换

2.6.2,除法

传统除法:

如果是整型除法,传统除法会舍去小数部分,返回一个整型(底板除)。如果操作数之一是浮点型,则执行真正的除法。

>>> 3/5
0
>>> 3.0/5
0.6
>>> 3.0/5.0
0.6
>>> 

 

真正的除法

总是返回真实的商,不管操作数是整型还是浮点型,在未来版本的python中,这将是除法运算的标准行为。现阶段可一通过from futureimport division指令做到

>>> from __future__ import division
>>> 1/2
0.5
>>> 1.0/2.0
0.5
>>> 1.0/2
0.5

 

地板除

使用//来执行地板除;//不管操作数是何种数值类型,总是舍去小数部分,返回数字序列种比真正的商小的最接近的数字

>>> 1 // 2
0
>>> 1.0//2.0
0.0
>>> 1.0//2
0.0

 

3.6.3,位操作(只适用于整型)

Python整型支持标准位运算:取反(~),按位与(&),或(|)和异或(^),以及左移(<<)和右移(>>)。python这样处理位运算

  • 负数会被当成正数的2进制补码处理
  • 左移和右移N位等同于无溢出检查的2的N次幂运算:2**N;
  • 对长整数来说,位操作符使用一种经修改的2进制补码形式,使得符号位可以无限向左扩展

3.7相关函数

标准函数

cmp(a,b):比较2个数的大小,a<b,返回-1;a=b,返回0;a>b,返回1
str():将数字转换成字符串
type():返回数字对象的类型;type(num).__name__

工厂函数
类(工厂函数)操作
bool(obj) 返回obj对象的布尔值,也就是obj.nonzero()方法的返回值
int(obj,base=10) 返回一个字符串或数值对象的整型表示
long(obj,base=10) 返回一个字符串或数值对象的长整型表示
float(obj) 返回一个字符串或数值对象的浮点型表示
complex(str) or complex(real,imag=0.0) 返回一个字符串的负数表示,或者根据给定的实数(可选的虚数部分)生成一个复数对象
功能函数
类(功能函数)操作
abs() 返回给定参数的绝对值,如果参数是一个复数,那么返回math.sqrt(num.real2 + num.imag2)
coerce() 返回类型转换完毕的两个数值元素的元组
divmod() 把除法和取余运算结合起来,返回一个包含商和余数的元组,整数返回地板除和取余操作的结果。对浮点型来说,商是math.floor(num1/num2),对复数来说,商部分是math.floor((num1/num2).real)
pow() 同(**)操作,但是它接受第三个参数,如果有第三个参数,先进行指数运算,然后和第三个参数进行取余运算
round() 对浮点型进行四舍五入运算,它有一个可选的小数位作为第二个参数,如果有这个第二个参数告诉round()函数,将结果精确到小数点后指定位数
>>> import math
>>> for eachNum in range(5):
...     print round(math.pi,eachNum)
... 
3.0
3.1
3.14
3.142
3.1416

 

@@@ int(),round(),math.floor()区别
    • int():直接截去小数部分(返回值为整型)
    • floor():得到最接近原数但是小于原数的整数(返回为浮点型)
    • round():得到最接近原数的整数(返回为浮点型)

Python 数字

标签:

原文地址:http://www.cnblogs.com/mrylong/p/5066806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!