Python 数字
Python 数字数据类型用于存储数值。
数字类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。
以下实例在变量赋值时, 数字对象将被创建:
age_1 = 13
age_2 = 14
您也可以使用del语句 删除 一些数字对象引用。
del语句的语法是:
del var1[,var2[,var3[....,varN]]]]
通过使用del语句,可以 删除 单个或多个对象,例如:
del var
del var_1, var_2
Python 支持四种不同的数值类型:
- 整型(Int) – 通常被称为是整型或整数,是正或负整数,不带小数点。
- 长整型(long integers) – 大整数,整数最后是一个大写或小写的L。
- 浮点型(floating point real values) – 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(5.2e2 = 5.2 x 102 = 520,谐音:我愛妳)
- 复数( (complex numbers)) – 复数的虚部以字母 J 或 j 结尾 。如:6+7i
int | long | float | complex |
---|---|---|---|
13 | 51924361L | 0.0 | 3.14j |
520 | -0x19323L | 15.20 | 45.j |
-486 | 0122L | -21.9 | 9.322e-36j |
080 | — | 32.3+e18 | .876j |
-0140 | — | -90. | — |
-0x267 | — | -32.54e100 | 3e+26J |
0x67 | — | 70.2-E12 | 4.53e-7j |
- 长整型也可以使用小写”L”,但是还是建议您使用大写”L”,避免与数字”1″混淆。Python使用“L”来显示长整型。
- Python还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj ,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
Python数字类型转换
转换函数 | 含义 |
---|---|
int(x [,base ]) | 将base进制表示的x字符串,转换为一个整数,例如: int(“0xff”,16), 返回: 255 |
long(x [,base ]) | 将base进制表示的x字符串,转换为一个长整数,例如: long(“0103”,8), 返回: 67L |
float(x ) | 将x转换到一个浮点数,例如: float(“67”), 返回: 67.0 |
complex(real [,imag ]) | 创建一个复数, 例如: complex(5,20), 返回: (5 + 20j) |
chr(x ) | 将一个整数转换为一个字符,例如: chr(97), 返回: ‘a’ |
unichr(x ) | 将一个整数转换为Unicode字符, 例如: unichr(97), 返回: u’a’ |
str(x ) | 将对象 x 转换为字符串, 例如: str(520), 返回: ‘520’ |
oct(x ) | 将一个整数转换为一个八进制字符串, 例如: oct(67), 返回: ‘0103’ |
hex(x ) | 将一个整数转换为一个十六进制字符串,例如: hex(255), 返回: ‘0xff’ |
tuple(s ) | 将序列 s 转换为一个元组, 例如:tuple(“beyond”), 返回:(‘b’, ‘e’, ‘y’, ‘o’, ‘n’, ‘d’) |
list(s ) | 将序列 s 转换为一个列表, 例如:list(“beyond”), 返回: [‘b’, ‘e’, ‘y’, ‘o’, ‘n’, ‘d’] |
repr(obj ) | 将对象 obj 转换为表达式字符串,具体见附录:repr函数详解 |
eval(str ) | 用来计算在字符串中的有效Python表达式,并返回一个对象;例如: i = 7;eval(“2**i”),返回: 128 |
ord(x ) | 将一个字符转换为它的整数值, 例如: ord(‘a’), 返回: 97 |
Python数学常量
常量 | 描述 |
---|---|
pi | 数学常量 pi(圆周率,一般以π来表示, 3.1415926…) |
e | 数学常量 e,e即自然常数(自然常数, 2.718281828…)。 |
Python math 模块、cmath 模块
Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。
Python math 模块提供了许多对浮点数的数学运算函数。
Python cmath 模块包含了一些用于复数运算的函数。
cmath 模块的函数跟 math 模块函数基本一致,
区别是 cmath 模块运算的是复数,
math 模块运算的是数学运算。
要使用 math 或 cmath 函数必须先导入:
import math
import cmath
查看 math 查看包中的内容:
查看 cmath 查看包中的内容:
实例:
>>> import cmath
>>> cmath.sqrt(-1)
1j
>>> cmath.sqrt(9)
(3+0j)
>>> cmath.sin(cmath.pi/2)
(1+0j)
>>> cmath.log10(100)
(2+0j)
>>>
Python数学函数
函数 | 返回值 ( 描述 ) |
---|---|
abs(x) | 返回数字的绝对值,如abs(-13) 返回 13 |
ceil(x) | 返回数字的上入整数,如math.ceil(-13.14) 返回 -13.0, 沿x箭头方向取整数 -> |
cmp(x, y) | 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1 |
exp(x) | 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
fabs(x) | 返回数字的绝对值,如math.fabs(-13) 返回13.0 |
floor(x) | 返回数字的下舍整数,如math.floor(4.9)返回 4 |
max(x1, x2,…) | 返回给定参数的最大值,参数可以为序列?
序列比较的不是长度,而是逐个从第0位开始比较。 例如: max([2],[1,8]) 输出结果: [2] 例如: max(range(10)) 输出结果: 9 |
min(x1, x2,…) | 返回给定参数的最小值,参数可以为序列 |
pow(x, y) | x**y 运算后的值, 即x的y次幂。 |
round(x [,n]) | 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 |
sqrt(x) | 返回数字x的平方根,返回类型为实数,如math.sqrt(4)返回 2.0 or 2+0j |
log10(x) | 返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
log(x,[base]) | 返回以自然常数e为基数的x的对数,比如math.log(math.e)返回1.0;
也可通过可选参数二,手动指定基数base,比如:math.log(100,10)返回2.0 |
modf(x) | 返回一个元组tuple,其中元组第0位是x的小数部分,元组第1位是x整数部分,
两部分的数值符号与x相同,整数部分也以浮点型表示。 例如:math.modf(-5.20) 结果为: (-0.20000000000000018, -5.0) |
Python随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,
用以提高算法效率,并提高程序的安全性。
Python random模块包含以下常用随机数函数:
函数 | 描述 |
---|---|
choice(seq) | 从序列的元素中随机挑选一个元素,
比如random.choice(range(10)),从0到9中随机挑选一个整数。 再比如random.choice([5,2,6,7]), 输出结果只会是5267其中之一 |
random() | random.random()会随机生成一个实数,它在[0,1)范围内。 |
seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) | 洗牌,将序列的所有元素随机排序 |
uniform(x, y) | 随机生成一个实数,它在[x,y]范围内。 |
randrange ([start,] stop [,step]) | 前闭后开,从指定范围内,按指定step递增的集合中获取一个随机数,step缺省值为1
例如: random.randrange(6,15,3)的结果: 只会是6或9或12其中之一,前闭后开 |
Python三角函数
Python包括以下三角函数:
函数 | 描述 |
---|---|
degrees(x) | 将弧度转->角度,如math.degrees(math.pi/2) , 返回90.0 |
radians(x) | 将角度->弧度,如math.radians(180.0), 返回3.141592653589793 |
hypot(x, y) | 返回欧几里德范数 sqrt(x*x + y*y)。例如勾股定理: math.hypot(3,4), 返回5.0 |
sin(x) | 返回的x弧度的正弦值,如math.sin(math.pi/6), 返回0.49999999999999994
在直角三角形中,∠α(非直角)的对边与斜边的比叫做∠α的正弦,记作sinα,即sinα=∠α的对边/∠α的斜边 。 |
cos(x) | 返回x的弧度的余弦值,如math.cos(math.pi/3), 返回0.5000000000000001
在直角三角形中,∠α(非直角)的邻边与斜边的比叫做∠α的余弦,记作cosα,即cosα=∠α的邻边/∠α的斜边 。 |
tan(x) | 返回x弧度的正切值,如math.tan(math.pi/4), 返回0.9999999999999999
tan是正切的意思,角θ在任意直角三角形中,与θ相对应的对边与邻边的比值叫做角θ的正切值。若将θ放在直角坐标系中即tanθ=y/x。tanA=对边/邻边。在直角坐标系中相当于直线的斜率k。 |
asin(x) | 返回x的反正弦弧度值。因为math.sin(math.pi/6)值为0.5, 所以:math.asin(0.5)*6, 返回: 3.14159626… |
acos(x) | 返回x的反余弦弧度值。因为math.cos(math.pi/3)值为0.5, 所以:math.acos(0.5)*3, 返回: 3.14159626… |
atan(x) | 返回x的反正切弧度值。因为math.tan(math.pi/4)值为1.0, 所以:math.atan(1.0)*4, 返回: 3.14159626… |
atan2(y, x) | 返回给定的 X 及 Y 坐标值的反正切值, 参数为:数字,返回结果为弧度。例如: atan2(1,1)*4, 返回: 3.1415926… |
附: repr(obj)函数 详解
还有一个__repr__函数,也是对应 repr(obj) 这个函数。
repr是representation (描述)的意思
意思是: 当需要显示一个对象在屏幕上时,将这个对象的属性或方法整理成一个可打印输出的格式。
这个功能与eval也可以对应, 如果将打印出的结果直接放到eval里,通常可以重新获得原来的对象。
比如:
>>> import datetime
>>> t1 = datetime.datetime.now()
>>> print repr(t1)
结果是:
>> datetime.datetime(2018, 9, 1, 14, 11, 0, 162221)
与此相类似的功能是 __str__
比如你有一个Girl类,当打印时你只希望它打印出女孩的姓名时,
那么你可以在 __str__ 函数里写上return self.name ,
这样当需要Girl当作一个字符串时,返回的就是女孩的姓名。
你使用:
>> print str(t1) 时, 结果是
>>> 2018-09-01 14:11:00.162221
如果想使用print(Obj)显示Girl类的对象,那就需要重写Girl类的__str__方法。
当你打印一个类的时候,那么print首先调用的就是类里面的定义的__str__
比如:
再比如: