Python基础之数字(Number)超级详解

共 3268字,需浏览 7分钟

 ·

2021-05-24 20:54

Python中有6个标准的数据类型:Number(数字)String(字符串)List(列表)Tuple(元组)Set(集合)Dictionary(字典),每种类型有其固有的属性和方法,学会这六种数据类型及基础的方法,很多代码基本上都能看得懂,很多功能也都能实现了。要是实现面向百度编程到面向自己编程的转变,必须搞搞清楚这六大数据类型的属性和方法。

标准的数据类型又分为可改变的数据类型和不可变的数据类型,数字、字符串、元组属于不可变类型;列表、字典、集合都属于可变类型。

什么是可变类型?在值改变的情况下, 内存地址(ID)不变, 证明改变的是原值即可变类型-->也叫不可 hash 类型

'''修改前'''ls = ['aaa', 'bbb', 'ccc']id(ls)#1744975906560'''修改后'''ls[0] = 'AAA'id(ls)#1744975906560

什么是不可变类型?在值改变的情况下, 内存地址也改变了, 证明这改变的值是产生的新值即原值不可变-->也叫可 hash 类型他们都是一个不可分割的整体

'''修改前'''x = 'xiaowuge'id(x)#1744975676080'''修改后'''x = "XiaoWuGe"id(x)#1744996503344

本文将对其中的数字类型进行详解。


一、Python支持的数字类型

Python支持的数值类型有四种:整数(int)、浮点数(float)、复数(complex), 此外,布尔值(bool)属于整数的子类型。

1、整数类型

与数学中整数概念一致,共有4种进制表示:十进制,二进制,八进制和十六进制。默认情况,整数采用十进制,其它进制需要增加相应的引导符号,如下表所示。

进制种类

引导符号

描述

备注

十进制

默认情况


二进制

0b 或 0B

由字符0和1组成

bin将一个整数转换为一个二进制字符串

bin(43):'0b101011'

八进制

0o 或 0O

由字符0到7组成

oct(x) 将一个整数转换为一个八进制字符串

oct(43):'0o53'

十六进制

0x 或 0X

由字符0到9、a到f、A到F组成,不区分大小写

hex(x) 将一个整数转换为一个十六进制字符串

hex(43):'0x2b'

整数类型的取值范围在理论上没有限制,实际上受限制于运行Python程序的计算机内存大小。

2、布尔型

布尔型(bool),关键字TrueFalse,分别表示真和假,他们的值是1和0,还可和数字相加。

True+True23*True31+True-False2

可以用内置函数type()来查询变量所指的对象类型

a, b, c, d = 13, 2.5, True, 5+4jtype(a),type(b),type(c),type(d)(int, float, bool, complex)


3、浮点数类型

浮点数类型表示有小数点的数值,浮点数有两种表示方法:小数表示科学计数法表示。整数具有无限的精度。浮点数通常使用C中的double来实现,有关你的程序运行所在机器上浮点数的精度和内部表示法可在 sys.float_info 中查看。

import syssys.float_infosys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308min=2.2250738585072014e-308min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

4、复数类型

表示数学中的复数,复数可以看作二元有序实数对(a, b),表示a + bj,其中,a是实数部分,b为虚数部分。在Python语言中,复数的虚数部分通过后缀 'J' 或 'j' 来表示。复数包含实部和虚部,分别以一个浮点数表示。要从一个复数 z 中提取这两个部分,可使用 z.real 和 z.imag。

#创建一个复数complex(3, 4)(3+4j)#复数 c 的共轭c = complex(3, 4)c.conjugate()(3-4j)

二、Pyhon支持的运算

1、运算操作概述

所有数字类型(复数除外)都支持下列运算(有关运算优先级,请参阅:运算符优先级):

Python提供了9个基本的数值运算操作符。这些操作符不需要引用标准或者第三方函数库,也叫内置操作符。

运算

结果:

注释

完整文档

x + y

x 和 y 的和



x - y

x 和 y 的差



x * y

x 和 y 的乘积



x / y

x 和 y 的商



x // y

x 和 y 的商数,并取整

(1)


x % y

x / y 的余数

(2)


-x

x 取反



+x

x 不变



abs(x)

x 的绝对值或大小


abs()

int(x)

将 x 转换为整数

(3)(6)

int()

float(x)

将 x 转换为浮点数

(4)(6)

float()

complex(re, im)

一个带有实部 re 和虚部 im 的复数。im 默认为0。

(6)

complex()

c.conjugate()

复数 c 的共轭



divmod(x, y)

(x // y, x % y)

(2)

divmod()

pow(x, y)

x 的 y 次幂

(5)

pow()

x ** y

x 的 y 次幂

(5)


注释:

1)也称为整数除法。结果值是一个整数,但结果的类型不一定是 int。运算结果总是向负无穷的方向舍入: 1//2 为 0, (-1)//2 为 -1, 1//(-2) 为 -1 而 (-1)//(-2) 为 0。

2)不可用于复数。而应在适当条件下使用 abs() 转换为浮点数。

3)从浮点数转换为整数会被舍入或是像在C语言中一样被截断;请参阅math.floor() 和math.ceil()函数查看转换的完整定义。

4)float 也接受字符串 "nan" 和附带可选前缀 "+" 或 "-" 的 "inf" 分别表示非数字 (NaN) 以及正或负无穷。

5)Python 将 pow(0, 0) 和 0 ** 0 定义为1,这是编程语言的普遍做法。

6)接受的数字字面值包括数码 0 到 9 或任何等效的 Unicode 字符(具有 Nd 特征属性的代码点)。

注意:表中所有的二元数学操作符(+、-、*、/、//、%、**)都有与之对应的增强赋值操作符(+=、-=、*=、/=、//=、%=、**=)。即x op= y 等价于 x = x op y ,op 为二元数学操作符。

 

浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报