③ Python3.0 数字类型

Posted shawwey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了③ Python3.0 数字类型相关的知识,希望对你有一定的参考价值。

Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

数字类型

Python中数字有四种类型:整数、布尔型、浮点数和复数。

int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
bool (布尔), 如 True和False。
float (浮点数), 如 1.23、3E-2
complex (复数), 如 1 + 2j、 1.1 + 2.2j

Python支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
内置的 type() 函数可以用来查询变量所指的对象类型,

print(type(1))

此外还可以用 isinstance 来判断:

isinstance(1, int)

两者的区别在于:
type()不会认为子类是一种父类类型。isinstance()会认为子类是一种父类类型。执行结果如下:

技术图片

可以通过使用del语句删除单个或多个对象

在使用过程中注意以下几点:

1、Python可以同时为多个变量赋值,如a, b = 1, 22、一个变量可以通过赋值指向不同类型的对象。
3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
4、在混合计算时,Python会把整型转换成为浮点数。

 布尔类型

1、在数值上下文环境中,True 被当作 1,False 被当作 0,例如:

技术图片

2、其他类型值转换 bool 值时除了 ‘‘、""、‘‘‘‘‘‘、""""""、0、()、[]、、None、0.0、0L、0.0+0.0j、False 为 False 外,其他都为 True 例如:

技术图片

数学函数 

函数返回值 ( 描述 )
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5

cmp(x, y)

如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x<y) 替换
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,...) 返回给定参数的最小值,参数可以为序列。
modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y) x**y 运算后的值。
round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x) 返回数字x的平方根。

随机数函数

随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

Python包含以下常用随机数函数:

函数

描述

choice(seq)

从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

randrange ([start,] stop [,step])

从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1

random()

随机生成下一个实数,它在[0,1)范围内。

seed([x])

改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。

shuffle(lst)

将序列的所有元素随机排序

uniform(x, y)

随机生成下一个实数,它在[x,y]范围内。

三角函数

Python包括以下三角函数:

函数

描述

acos(x)

返回x的反余弦弧度值。

asin(x)

返回x的反正弦弧度值。

atan(x)

返回x的反正切弧度值。

atan2(y, x)

返回给定的 X 及 Y 坐标值的反正切值。

cos(x)

返回x的弧度的余弦值。

hypot(x, y)

返回欧几里德范数 sqrt(x*x + y*y)。

sin(x)

返回的x弧度的正弦值。

tan(x)

返回x弧度的正切值。

degrees(x)

将弧度转换为角度,如degrees(math.pi/2) , 返回90.0

radians(x)

将角度转换为弧度

数学常量

常量描述
pi 数学常量 pi(圆周率,一般以π来表示)
e 数学常量 e,e即自然常数(自然常数)。

其他

1、Python 所谓的奇进偶弃,因为浮点数的表示在计算机中并不准确,用的时候可能要注意一下。尽量避免使用round()。
当个位为奇数,小数部分>=0.5入,其余为舍
当个位为偶数,小数部分>0.5入,其余为舍。

 技术图片

2、python 不支持复数转换为整数或浮点数

技术图片 

3、random.sample(sequence,length) 可以从指定的序列中,随机的截取指定长度的片断,不修改原序列。

 技术图片

random.randint(x,y) #随机生一个整数int类型,可以指定这个整数的范围

技术图片 

4、一定要注意 += 和 =+ 的不同。一定要分清 += 和 =+ 哦!另外要注意 Python 可是没有 a++ 指令的!可以理解b=+6其实就是正数6。

 技术图片

5、字符转为数字

var=‘1234‘

num=int(var) # 如果是小数可用 float

字符转为列表

num_list=list(var)

列表转为数组

技术图片

可以用 numpy 模块:

import numpy as np

num_array=np.array(num_list)

也可以是 num_array=[int(i) for i in num_list]。

技术图片

 

6、Python3中已经不能使用cmp()函数了,被如下五个函数替代:

import operator       #首先要导入运算符模块
operator.gt(1,2)      #意思是greater than(大于)
operator.ge(1,2)      #意思是greater and equal(大于等于)
operator.eq(1,2)      #意思是equal(等于)
operator.le(1,2)      #意思是less and equal(小于等于)
operator.lt(1,2)      #意思是less than(小于)

7、针对前面有人提到复数不能强转为int或者float的问题:

其实在Python中,复数提供了2个函数,一个函数是real,返回复数的实数部分,另一个函数是imag,返回复数的虚数部分。因为实数跟复数是差异很大的类型,所以不支持强制转换是可以理解的。因为在强制转换过程中,虚数部分到底该怎么转换,是没有定义的,而int和float只有实数部分

 技术图片

以上是关于③ Python3.0 数字类型的主要内容,如果未能解决你的问题,请参考以下文章

python3.0练习100题——001

Python_Day_01(使用环境为Python3.0+)

python基本数据类型-python3.0学习笔记

Python3 基本数据类型

Python3 实例

Python3 字典