在python中,数据采用了对象的形式(无论是python内置对象还是使用python工具和像C语言自行创建的对象)。
Python数字类型工具:
整数和浮点数
复数
固定精度的十进制数
有理分数
集合
布尔类型
无穷的整数类型
各种数字内置函数和模块
python数字类型在程序中的显示方式之一是作为常量(还有一个是调用模块使用函数):
数字 常量
12,-12 整数
1.23 浮点数
0o177,0x9ff,0b0000100 八进制、十六进制、二进制
3+4j 复数
内置数学工具和扩展:
表达式操作符
+-*/>>**&
内置数学函数
pow,abs,round,int等
公共模块
random,math等
表达式是大多数数字类型的基本工具。
在实际应用中的数字:
变量和基本的表达式
变量和对象不一样,无需声明
变量在给它第一次赋值时创建
变量在表达式中使用将被替换为他们的值
变量在表达式中使用时需要先赋值,否则会报错。
常用表达式1、简单加减乘除:
>>> a=4
>>> b=5
>>> a+b,a-b
(9, -1)
>>> a*3,b/2
(12, 2.5)
>>> a%3,b**2
(1, 25)
>>> a<b
True
>>> a>b
False
>>> a==b
False
常用表达式二、除法:真除法、Floor除法
x/y:在python3.0中是真除法,无论任何类型都会保留小数部分。
>>> 5/1
5.0
>>> 9/3
3.0
x//y:截掉余数并针对数字类型保留类型
>>> 5//3
1
>>> 9//2
4
>>> 5.0//3
1.0
>>> 5//2.0,5//-2.0
(2.0, -3.0)
整数精度,在python3.0中整数可以使用无穷的长度,只要内存足够大。
常用表达式三、十六进制、八进制、二进制计数
>>> 0o7,0o11,0o377
(7, 9, 255)
>>> 0x01,0xF,0xFF
(1, 15, 255)
>>> 0b1,0b1000,0b11111111
(1, 8, 255)
>>> oct(64),hex(64),bin(64) 将十进制转换为八进制、十六进制、二进制函数
('0o100', '0x40', '0b1000000')
int函数将一个数字字符串变换成一个整数,第二个数字是指定的数字的进制。
>>> int('64'),int('100',8),int('40',16),int('1000000',2)
( 64, 64, 64, 64)
常用表达式四、复数
>>> 2+2j
(2+2j)
以上介绍了核心数据类型:整数、浮点、复数,他们是通过常量表达式创建的,接下来介绍其他数据类型。
1、小数数字,是通过导入模块调用函数后创建的,使用小数数字有固定的精度浮点值。
>>> from decimal import Decimal
>>> Decimal('0.2')+Decimal('0.01')
Decimal('0.21')
a、设置全局精度
>>> import decimal
>>> decimal.Decimal(1)/decimal.Decimal(7)
Decimal('0.1428571428571428571428571429')
>>> decimal.getcontext().prec=4 #通过调用decimal模块的getcontext函数指定保留小数位数,来指定精度
>>> decimal.Decimal(1)/decimal.Decimal(7)
Decimal('0.1429')
b、设置临时精度
>>> import decimal
>>> decimal.Decimal('1.00')/decimal.Decimal('7.00')
Decimal('0.1428571428571428571428571429')
>>> with decimal.localcontext() as ctx: #通过调用decimal模块的localcontext函数临时保留小数位数
... ctx.prec=2
... decimal.Decimal('1.00')/decimal.Decimal('7.00')
...
Decimal('0.14')
>>> decimal.Decimal(1)/decimal.Decimal(7)
Decimal('0.1428571428571428571428571429')
2、分数类型(fraction)
类似小数数字,也是通过模块的导入后函数创建。
>>> from fractions import Fraction
>>> x=Fraction(1,4)
>>> x
Fraction(1, 4)
>>> print(x)
1/4
也可以通过浮点数创建
>>> Fraction(.25)
Fraction(1, 4)
>>> Fraction('.25')
Fraction(1, 4)
3、集合
集合是无序的且不会将键匹配到值,既不是序列也不是映射类型。使用内置函数set来创建集合类型。
注:一个项只能在集合中出现一次。最重要的一个使用原因。。
>>> set('sspa')
{'a', 's', 'p'}
以下是创建集合的方式:
通用方式
>>> x=set('abcde')
>>> y=set('efghj')
>>> x,y
({'e', 'b', 'd', 'c', 'a'}, {'j', 'f', 'h', 'e', 'g'})
>>> x-y
{'c', 'd', 'a', 'b'}
>>> x|y
{'j', 'f', 'h', 'e', 'b', 'd', 'g', 'c', 'a'}
>>> x&y
{'e'}
3.0的添加方式:
>>> set([1,2,3,4])
{1, 2, 3, 4}
>>> set(['spam'])
{'spam'}
>>> set('spam')
{'m', 'a', 's', 'p'}
>>> set() #空集合必须使用set创建
set()
>>>
4、布尔型
true和false