哈喽,大家好,接下来给大家分享一下基本数字类型与数值计算。
基本数字类型
内置数字类型
python3 支持 int、float、bool、complex(复数)。
- 整型(Int) — 通常被称为是整型或整数,是正或负整数,不带小数点。python3 整型是没有限制大小的,可以当作 Long类型使用,所以 python3 没有 python2的 Long 类型。
- 浮点型(float) — 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2)
- 复数(complex) — 复数由实数部分和虚数部分构成,可以用a + bj,或者com
plex(a,b)表示, 复数的实部a和虚部b都是浮点型。
在 python2中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
进制表示
- 二进制:0b,0B
- 八进制:0o,0O
- 十六进制:0x,0X
var1 = 0b110
var2 = 0o10
var3 = 0x11
print(var1,var2,var3)
执行结果:
6 8 17
isinstance()函数和type()函数
- 内置的type()函数课堂用来查询变量所指的对象类型
- 还可以用isinstance来判断是否为指定的数据类型:
a,b,c,d = 10,3,2,True,4+3j
print(type(a),type(b),type(c),type(d))
print(isinstance(a,int)
print(isinstance(b,str)
执行结果:
<class 'int'><class 'float'><class 'bool'><class 'complex'>
True
False
两者的区别:
- type()不会认为子类是一种父类类型。
- isinstance()会认为子类是一种父类类型。
class A:
pass
class B(A):
pass
print(isinstance(A(),A)
print(type(A()) == A)
print(isinstance(B(),A)
print(type(B()) == A)
执行结果:
True
True
True
False
python数字类型转换
- int(x)将x转换为一个整数
- float(x)将x转换为一个浮点数
- complex(x)将x转换到 一个复数,实数部分为x,虚数部分为0
- complex(x,y)将x和y转换到一个复数,实数部分为x,虚数部分为y。x和y是数字表达式
获取复数的实部和虚部
使用 real 和 imag 可以分别获取复数的实部和虚部
cn = complex(2,3)
print("Complex Number: ",cn)
print("Complex Number - Real part: ",cn.real)
print("Complex Number - Imaginary part: ",cn.imag)
执行结果:
Complex Number: (2+3j)
Complex Number - Real part: 2.0
Complex Number - Imaginary part: 3.0
数字计算和math包
基本的数字计算
加:x+y
减:x-y
乘:x*y
精确除法:x/y (结果是浮点类型,即使整除结果也是浮点类型)
地板除:x//y (结果只保留整数部分)
取余:x%y
幂:x**y,pow(x,y)
取正:+(x)
取负:-(x)
取绝对值:abs(x)
求商取余复合操作:divmod(x,y)
max(x1, x2,…) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,…) 返回给定参数的最小值,参数可以为序列。
round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
math包
使用时需要导入:
import math
- pi 数学常量 pi(圆周率,一般以π来表示)
- e 数学常量 e,e即自然常数(自然常数)。
- 向上取整:ceil
- 向下取整:floor
- 任意x的幂运算:pow
- e的幂运算:exp 以e为底数对数运算:log
- 以10为底对数运算:log
- 以10 开平方运算:sqrt
- 求绝对值:fabs
- modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
- 角度值转换成弧度值:radians 弧度值转换成角度值:degrees
- 三角函数:sin,cos,tan,asin,acos,atan
random 包
- 给随机数生成种子,默认的种子是系统时钟:seed(x)
- 生成0-1.0之间的随机小数:random()
- 生成a-b之间的随机小数:uniform(a,b)
- 生成a-b之间的随机整数:randint(a,b)
- 生成a-b之间以c递增的数:randrange(a,b,c)
- 从列表中随机返回一个数:choice(list)
- 将列表元素随机打乱:shuffle(list)
- 从列表中随机抽取k个元素:sample(lisy,k)
import random
#设置随机数种子
random.seed(1)
#生成一个随机数
print(random.random())
#生成一个1-5之间的随机数
print(random.uniform(1,5))
#生成一个1-10之间的随机数
print(random.randint(1,10))
#生成一个1-10之间以3递增的随机数
print(random.randrange(1,10,3))
# 创建一个列表
list = ['hello','world','any','way']
# 从列表中随机返回一个值
print(random.choice(list))
# 打乱列表元素的顺序
random.shuffle(list)
# 从列表中随机抽取3个元素
print(random.sample(list,3))
执行结果:
0.13436424411240122
4.389734947748931
2
4
hello
['way', 'hello', 'world']
好了,分享到这里也就结束了,我是小圆,我们下篇文章见 ~