python 核心编程&数字

来源:互联网 发布:ui需要编程吗 编辑:程序博客网 时间:2024/06/01 11:18

在上一篇博客《python 核心编程&对象》中提到了几个标准类型对象,那么在接下来的几天,我将详细介绍这几种标准类型对象。这篇文章主要描述数字

1. 基本操作

数字对象的基本操作包含以下三种:
1、创建并赋值
该操作与变量赋值一样

a = 1

2、更新
对于python而言,数字对象为不可变对象,不存在更新操作。而我们口中所说的‘更新’是指在内存中新建一个数值对象,并把它赋给当前变量。

3、删除
可以用del语句删除某个对象的引用

del a

2. 数字分类

粗略来说,数字对象的分类总共有4类:整型、浮点型、复数、十进制浮点型

2.1 整型 interge

对于整型对象而言,又可以分为3类:布尔型、标准整型、长整型。

2.1.1 布尔型 boolean

布尔值只有两种:`TrueFalse,分别对应整型 的10
在python中,一般认为对于值为零的任何数字或空集(空列表、空元组和空字典等)都可以看作是False

2.1.2 标准整型 int

标准整型就是普通的数字类型

2.1.3 长整型 long int

长整型数字可以表示比标准整型更大的整型。定义为在整型后添加后缀L

2.2 双精度浮点型 float

浮点型值通常都有一个小数点和一个可选的后缀e(大写或小写,表示科学计数法)。在e和指数之间可以用正(+)或负(-)表示指数的正负。
举例说明:1.23 = 1.23 2E3 = 2000.0 2.0E-3 = 0.002

2.3 复数 complex

创建复数时,有以下几点需要注意:
1、虚数部分不能单独存在,必须和一个为0.0的实数构建一个复数
2、虚数部分和实数部分均为浮点数
3、表示虚数的语法与表示复数的语法一致,由实数部分和虚数部分组成:real + imagj
4、虚数部分必须有后缀j或J
之前在上一篇博客中也提到了:复数对象拥有数据属性,分别为复数的实部和虚部。

>>> aComplex = 3.0 + 4.0j>>> aComplex.real3.0>>> aComplex.imag4.0>>> aComplex.conjugate()(3.0 - 4.0j)

2.4 十进制浮点型

在双精度浮点型计算中,通常会存在这样一个问题:

>>> a = 0.1 + 0.1 - 0.2 >>> a0>>> a = 0.1 + 0.1 + 0.1>>> a0.30000000000000004

究其原因是实数的无限精度跟计算机的有限内存之间的矛盾所引起的,具体原因详见
因此,诞生了十进制浮点型以解决这个问题

>>> from Decimal import decimal as D>>> a = D('0.1') + D('0.1') + D('0.1')>>> aDecimal('0.3')

3. 操作符

在上一篇博客中,曾经提到数字对象属于标准类型对象的一种。因此,它支持所有标准类型操作符。在这一章节中,将介绍数字的其他操作符

3.1 算术操作符

python支持单目操作符正号(+)和负号(-);双目操作符幂(**)、乘号(*)、除号(/)、取余(%)、加号(+)和减号(-),以上算术操作符的优先级依次降低。其中幂运算符有些特殊:幂运算操作符比其左侧操作数的一元操作符优先级低,比其右侧操作数的一元操作符优先级高。

>>> -3 ** 2-9>>> 4 ** -20.0625

3.2 位操作符(只适用于整型)

python支持标准位运算:取反(~)、按位与(&)、或(’|’)、异或(^)、左移(<<)、右移(>>

4. 函数

python中拥有一系列针对数字类型的内建函数。一些函数(工厂函数)用于数字类型转换,另一些(功能函数)执行一些常用运算。

4.1 工厂函数

函数int()long()float()complex()用来将其他数值类型转换为相应的数值类型。

4.2 功能函数

python中用于数值运算的5个函数:abs()coerce()divmod()pow()round()
1、abs()返回给定参数的绝对值

>>> abs(-1)1>>> abs(3.0 + 4.0j)5.0

2、coerce()执行数值类型转换
在算术运算中,通常会牵扯到数据类型转换。数据类型转换以下述原则为准,若左侧类型数据与右侧类型数据进行算术运算时,将左侧类型数据转换成右侧类型数据
标准整型–>长整型–>浮点型–>复数

>>> coerce(1.3,1.23-41j)((1.3 + 0.0j), (1.23-41j))

3、divmod()把除法和取余运算结合起来,返回一个包含商和余数的元组

>>> div(10,3)(3,1)>>> divmod(2+1j, 0.5-1j)(0j, (2+1j))

4、pow()进行指数运算

>>> pow(1+1j, 3)(-2 + 2j)

5、round()按四舍五入规则进行取整

>>> round(-1.7)-2.0

4.3 仅用于整型的函数

除了适用于所有数值类型的内建函数之外,python还提供一些仅适用于整型(标准整型和长整型)的内建函数。这些函数分为两类:一类用于进制转换,另一类用于ASCII码转换

4.3.1 进制转换函数

python提供了oct()hex()来返回字符串表示的八进制和十六进制整型,它们接收一个整型(任意进制的)对象,并返回一个对应值的字符串对象

>>> hex(255)'0xff'>>> oct(255)'0377'

4.3.2 ASCII转换函数

函数chr()接收一个单字节整型值,返回一个字符串,其值为对应的字符,
函数ord()接收一个字符,返回其对应的整型值
函数unichr()接收Unicode码值,返回其对应的Unicode字符。

>>> chr(97)'a'>>> ord('a')97>>> unichr(1000)u'\u03e8'

5. 相关模块

decimal:十进制浮点数运算类Decimal
array:高效数值数组(字符、整型、浮点型)
math\cmath:标准C库数学运算模型。常规数学运算在math模块中,复数运算在cmath模块
operator:数据操作符的函数实现,比如tor.sub(m,n)等价于m-n
random:多种伪随机数生成器

0 0
原创粉丝点击