Python核心数据类型——数字

数字

数字分为:整数(没有小数部分的数)、浮点数(有小数部分的数)、长整型(无限大或无限小的整数)、复数(分为实部和虚部的数)、十进制数(精度固定的浮点数)和集合。

  • 浮点数带一个小数点,也可以加上一个科学计数标志e或E,3.14e-10,4.0e+10。浮点数如果为纯小数,书写时可以省略整数部分,如0.10可以写成.10。
  • 如果整数以l或L结尾,则表示长整型数,如345L, 345l。长整型的数精度是无限的,即可以任意大和任意小,在Python中,如果一个整数的值超过32位时,将会自动升级为长整型,而不需要自己输入L。
  • 复数写成实部+虚部,虚部以j或J结尾,如2 + 3j, 2.1 + 3.2J,实际上复数就是两个浮点数。
  • 八进制以数字0开头,如000,001,077,如果整数以0开头就被认为是八进制数。
  • 十六进制数以0x或0X开头,后面大小写均可。如0xff,0x00,0xAA。

1. 操作符

除了+,-,*,/外的基本操作符如下所示:

操作符 描述
x << y,x >> y 左移y位,右移y位
x | y 位或
x ^ y 位异或
x & y 位与
x % y 异或
~x 按位求补,如~1 == -2
x // y Floor除法,不包含正常除法得到结果的小数部分
x ** y x的y次幂

2. 强制类型转换

>>> int(3.1415) #转换成整型
3
>>> float(3)    #转换成浮点型
3.0
>>> long(4)     #转换成长整型
4L

3. 进制转换

>>> oct(64)  #十进制转换成8进制
'0100'
>>> hex(64)  #十进制转换成16进制
'0x40'
>>> int('0100'), int('0100', 8), int('0x40', 16)#转换成十进制
(100, 64, 64)

int函数会将一个数字的字符串转换成一个整数,int(字符串,进制),第2个参数为可选,默认为十进制。

4. 小数对象

小数对象就像浮点数,但是其小数位数是固定的,如只保留2位小数。十进制数(精度固定的浮点数)是小数对象。由于浮点数在精确方面存在一定的缺陷,因此额外添加了小数对象。例如,下面的计算结果应该为0,但是却没有。

>>> 0.1 + 0.1 + 0.1 - 0.3
5.551115123125783e-17

而使用小数对象可以解决这个问题。

>>> from decimal import Decimal #导入模块
>>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
Decimal('0.0')

5. 集合

集合的创建方法如下:

>>> x = set('abc')
>>> x
set(['a', 'c', 'b'])
>>> y = set([1, 2, 3])
>>> y
set([1, 2, 3])
>>> z = set(['ab', 'c'])
>>> z
set(['c', 'ab'])
>>> z = set(['ab', 'c', 'c']) #集合会自动去掉重复的元素
>>> z
set(['c', 'ab'])              #集合是没有顺序的概念的

集合还支持差、并、交的运算:x - y,x | y,x & y

posted @ 2011-11-22 23:57  NaN-Hax  阅读(1999)  评论(0编辑  收藏  举报