dickrong 发表于 2018-8-5 12:05:06

python数字类型

  在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}
  >>> set(['spam'])
  {'spam'}
  >>> set('spam')
  {'m', 'a', 's', 'p'}
  >>> set()                  #空集合必须使用set创建
  set()
  >>>
  4、布尔型
  true和false
页: [1]
查看完整版本: python数字类型