Python3 数字(Number)
Python 数字数据类型用于存储数值。
数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。
以下实例在变量赋值时 Number 对象将被创建:
var1 = 1
var2 = 10
您也可以使用del语句删除一些数字对象的引用。
del语句的语法是:
del var1[,var2[,var3[…,varN]]]
您可以通过使用del语句删除单个或多个对象的引用,例如:
del var
del var_a, var_b
Python 支持三种不同的数值类型:
-
整型(int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。布尔(bool)是整型的子类型。
-
浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
-
复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
我们可以使用十六进制和八进制来代表整数:
Python 数字类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
- int(x) 将x转换为一个整数。
- float(x) 将x转换到一个浮点数。
- complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
- complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
- bin(x)将x转换为一个二进制数。
- oct(x)将x转换为一个八进制数。
- hex(x)将x转换为一个十六进制数。
演示:
x=1.0
print("x=1.0")
print("int(x)的值:",int(x))
x=1
print("x=1")
print("float(x)的值:",float(x))
x = 1
print("x = 1")
print("complex(x)的值:",complex(x))
x=1
y=2
print("x=1,y=2")
print("complex(x,y)的值:",complex(x,y))
x = 10
print("x =10")
print("bin(x)的值:",bin(x))
x = 10
print("x = 10")
print("oct(x)的值:",oct(x))
x = 20
print("x = 20")
print("hex(x)的值:",hex(x))
演示结果:
Python的数字运算
Python 解释器可以作为一个简单的计算器,您可以在解释器里输入一个表达式,它将输出表达式的值。
1、表达式的语法很直白: +, -, * 和 /, 和其它语言(如Pascal或C)里一样。例如:
注意:在不同的机器上浮点运算的结果可能会不一样。
2、在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 // :
注意:// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。
3、等号 = 用于给变量赋值。赋值之后,除了下一个提示符,解释器不会显示任何结果。
4、Python 可以使用 ** 操作来进行幂运算:
5、变量在使用前必须先"定义"(即赋予变量一个值),否则会出现错误:
6、不同类型的数混合运算时会将整数转换为浮点数:
7、在交互模式中,最后被输出的表达式结果被赋值给变量 _ 。例如:
此处, _ 变量应被用户视为只读变量。
数学函数
函数描述、解释,请看表格,配合下方例子理解。
函数 | 返回值及描述 | 实例 |
---|---|---|
abs(x) | 返回数字的绝对值。 | abs(-10),返回值为10 |
ceil(x) | 返回数字的上入整数。 | math.ceil(4,1),返回值为5 |
exp(x) | 返回e的x次幂。 | math.exp(1),返回值为2.718281828459045 |
fabs(x) | 返回数字的绝对值为浮点数。 | math.fabs(-10),返回值为10.0 |
floor(x) | 返回数字的下舍整数。 | math.floor(4.1),返回值为4 |
log(x) | 对数函数公式(默认为ln函数数) | math.log(math.e),返回值为1;math.log(100,10),返回值为2 |
log10(x) | 返回以10为基数的x的对数 | math.log10(100),返回值为2 |
max(x1,x2,x3…) | 返回给定参数的最大值,参数可以为序列 | - |
min(x1,x2,x3…) | 返回给定参数的最小值,参数可以为序列 | - |
modf(x) | 返回整数部分和小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 | - |
pow(x,y) | x**y 运算后的值。 | - |
round(x,[n]) | 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。(其实准确的说是保留值将保留到离上一位更近的一端。) | - |
sprt(x) | 返回x的平方根。 | - |
演示代码:
#测试数学函数
import math
x = -10
print('abs(x)的返回值为',abs(x))
del(x)
x = 4.1
a = math.ceil(x)
print('ceil(x)的返回值为',a)
del(x)
x = 2
print('exp(x)的返回值为',math.exp(x))
del(x)
x = -10
print('fabs(x)的返回值为',math.fabs(x))
del(x)
x = 4.1
print('floor(x)的返回值为',math.floor(x))
del(x)
x = 100
y = 10
print('log(math.e)的返回值为',math.log(math.e))
print('log(x,y)的返回值',math.log(x,y))
del(x)
del(y)
x = 100
print('log10(x)的返回值',math.log10(x))
del(x)
x = [22,1,12,43,21]
print('max(x)的返回值为',max(x))
print('min(x)的返回值为',min(x))
del(x)
x = 10.22
print('modf(x)的返回值为',math.modf(x))
del(x)
x = 3
y = 4
print('pow(x,y)的返回值为',pow(x,y))
del(x)
del(y)
x = 5.11245
print('round(x,4)的返回值围为',round(x,4))
del(x)
x = 9
print('sqrt(x)的返回值为:',math.sqrt(x))
del(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]范围内。 |
演示代码:
#测试生成随机数函数
import random
print ("从 range(100) 返回一个随机数 : ",random.choice(range(100)))
print ("从列表中 [1, 2, 3, 5, 9]) 返回一个随机元素 : ", random.choice([1, 2, 3, 5, 9]))
print ("从字符串中 'Runoob' 返回一个随机字符 : ", random.choice('Runoob'))
# 从 1-100 中选取一个奇数
print ("randrange(1,100, 2) : ", random.randrange(1, 100, 2))
# 从 0-99 选取一个随机数
print ("randrange(100) : ", random.randrange(100))
# 第一个随机数
print ("random() : ", random.random())
# 第二个随机数
print ("random() : ", random.random())
random.seed()
print ("使用默认种子生成随机数:", random.random())
print ("使用默认种子生成随机数:", random.random())
random.seed(10)
print ("使用整数 10 种子生成随机数:", random.random())
random.seed(10)
print ("使用整数 10 种子生成随机数:", random.random())
random.seed("hello",2)
print ("使用字符串种子生成随机数:", random.random())
list = [20, 16, 10, 5];
random.shuffle(list)
print ("随机排序列表 : ", list)
random.shuffle(list)
print ("随机排序列表 : ", list)
print ("uniform(5, 10) 的随机浮点数 : ", random.uniform(5, 10))
print ("uniform(7, 14) 的随机浮点数 : ", random.uniform(7, 14))
演示结果:
三角函数
Python包括以下三角函数:
函数 | 描述 |
---|---|
acos(x) | 返回x的反余弦弧度值。 |
asin(x) | 返回x的反正弦弧度值。 |
atan(x) | 返回x的反正切弧度值。 |
atan2(y,x) | 返回给定的 X 及 Y 坐标值的反正切值。 |
cos(x) | 返回x的弧度的余弦值。 |
hypot(x,y) | 返回欧几里德范数 sqrt(xx + yy)。 |
sin(x) | 返回的x弧度的正弦值。 |
tan(x) | 返回x弧度的正切值。 |
degrees(x) | 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 |
radians(x) | 将角度转换为弧度 |
演示代码:
#三角函数
import math
print ("反余弦函数:")
print ("acos(0.64) : ", math.acos(0.64))
print ("acos(0) : ", math.acos(0))
print ("acos(-1) : ", math.acos(-1))
print ("acos(1) : ", math.acos(1))
print ("反正弦函数:")
print ("asin(0.64) : ", math.asin(0.64))
print ("asin(0) : ", math.asin(0))
print ("asin(-1) : ", math.asin(-1))
print ("asin(1) : ", math.asin(1))
print ("反正切函数:")
print ("atan(0.64) : ", math.atan(0.64))
print ("atan(0) : ", math.atan(0))
print ("atan(10) : ", math.atan(10))
print ("atan(-1) : ", math.atan(-1))
print ("atan(1) : ", math.atan(1))
print ("坐标反正切值函数:")
print ("atan2(-0.50,-0.50) : ", math.atan2(-0.50,-0.50))
print ("atan2(0.50,0.50) : ", math.atan2(0.50,0.50))
print ("atan2(5,5) : ", math.atan2(5,5))
print ("atan2(-10,10) : ", math.atan2(-10,10))
print ("atan2(10,20) : ", math.atan2(10,20))
print ("余弦值函数:")
print ("cos(3) : ", math.cos(3))
print ("cos(-3) : ", math.cos(-3))
print ("cos(0) : ", math.cos(0))
print ("cos(math.pi) : ", math.cos(math.pi))
print ("cos(2*math.pi) : ", math.cos(2*math.pi))
print ("欧几里得函数:")
print ("hypot(3, 2) : ", math.hypot(3, 2))
print ("hypot(-3, 3) : ", math.hypot(-3, 3))
print ("hypot(0, 2) : ", math.hypot(0, 2))
print ("正弦值函数:")
print ("sin(3) : ", math.sin(3))
print ("sin(-3) : ", math.sin(-3))
print ("sin(0) : ", math.sin(0))
print ("sin(math.pi) : ", math.sin(math.pi))
print ("sin(math.pi/2) : ", math.sin(math.pi/2))
print ("正切值函数:")
print ("(tan(3) : ", math.tan(3))
print ("tan(-3) : ", math.tan(-3))
print ("tan(0) : ", math.tan(0))
print ("tan(math.pi) : ", math.tan(math.pi))
print ("tan(math.pi/2) : ", math.tan(math.pi/2))
print ("tan(math.pi/4) : ", math.tan(math.pi/4))
print ("弧度转角度函数:")
print ("(tan(3) : ", math.tan(3))
print ("tan(-3) : ", math.tan(-3))
print ("tan(0) : ", math.tan(0))
print ("tan(math.pi) : ", math.tan(math.pi))
print ("tan(math.pi/2) : ", math.tan(math.pi/2))
print ("tan(math.pi/4) : ", math.tan(math.pi/4))
print ("角度转弧度函数:")
print ("radians(90) : ", math.radians(90)) # 1 弧度等于大概 57.3°
print ("radians(45) : ", math.radians(45))
print ("radians(30) : ", math.radians(30))
print ("radians(180) : ", math.radians(180)) # 180 度的弧度为 π
print("180 / pi : ", end ="")
print (math.radians(180 / math.pi))
演示结果:
数学常量
常量 | 描述 |
---|---|
pi | 数学常量 pi(圆周率,一般以π来表示) |
e | 数学常量 e,e即自然常数(自然常数) |
演示代码:
import math
print ("pi:" ,math.pi)
print ("e:" , math.e)
演示结果:
总结
本篇分享,总结了python3数字类型的基本用法和常用函数。并没深入的去解释每个函数的逻辑。
如果有同学有问题,关注私信我,我们一起探讨和学习!