Python基础教程:基本数字类型与数值计算

发布于:2023-01-11 ⋅ 阅读:(174) ⋅ 点赞:(0)

哈喽,大家好,接下来给大家分享一下基本数字类型与数值计算。

基本数字类型

内置数字类型

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 = 1032True4+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']

好了,分享到这里也就结束了,我是小圆,我们下篇文章见 ~
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到