数值
数字类型
概述
- 数字数据类型是用来存储数值
- 数字数据的类型不允许被改变,如果改变类型的值,将会重新分配内存空间
整型类型
通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用。
注意:Python3 没有 Python2 的 Long 类型
可以用八进制(0o|0O)和十六进制(0x|0X)来表示整数
>>> 0xaf
175
>>> 0o31
25
浮点数类型
浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 =2.5x 102= 250)
复数类型
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
数字类型转换
- **int(x)**将x转换为一个整数。
- **float(x)**将x转换到一个浮点数。
- **complex(x)**将x转换到一个复数,实数部分为 x,虚数部分为 0。
- **complex(x, y)**将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
实例:
>>> a = 1.0
>>> int(a)
1
数字运算
在python中,可以把python解释器看作为一个简单的计算机
实例:
>>> 1+1
2
>>> 1-1
0
>>> 1/1
1.0
>>> 1*2
2
>>> (1+2)/2*5+3
10.5
math 模块
数学函数
现在看下数学函数的用法
| 函数 | 返回值 ( 描述 ) |
|---|---|
| abs(x) | 返回数字的绝对值,如abs(-10) 返回 10,注意这个是内置函数,不需要使用math模块 |
| ceil(x) | 返回数字的上入整数,如math.ceil(4.1) 返回 5 |
| copysign(x,y) | 返回一个浮点数,其大小(绝对值)为x,但符号为y,如math.copysign(2.0,-3.0) 返回 -2.0 |
| 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 |
| factorial(x) | 返回x的阶乘。如果x不是整数或者为负,则引发ValueError |
| floor(x) | 返回数字的下舍整数,如math.floor(4.9)返回 4 |
| fmod(x,y) | 返回浮点数之间模运算,比如math.fmod(2.0,3.0) 返回2.0 |
| fsum([x1,x2...]) | 返回迭代中的精确浮点值,比如math.fsum([.1,.2,.3])返回值为0.6,如果使用sum()计算,返回值为0.6000000000000001 |
| gcd(a,b) | 返回a和b之间的最大公约数,比如math.gcd(36,54),返回值为18 |
| isfinite(x) | 如果x既不是无穷大也不是Nan,则返回 |
| isinf(x) | 如果x是正或负无穷大,则返回True,否者返回False |
| isnan(x) | 如果x是NaN(不是数字),则返回True,否则返回False |
| ldexp(x,i) | 返回x*(2**(i+1)),是函数frexp()的反函数,比如math.ldexp(4,3) 返回值为32 |
| log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
| log2(x) | 返回以2为底的对数 |
| log1p(x) | 返回以1+x为基数的x的对数 |
| 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的平方根。 |
| trunc(x) | 返回实数的整数部分 |
| 特殊功能 | |
| erf(x) | 返回标准正太分布值 |
| erfc(x) | 返回1.0-erf(x) |
| gamma(x) | 在x处返回Gamma函数 |
| lgamma(x) | 在返回Gamma函数的绝对值的自然对数x |
三角函数
| 函数 | 描述 |
|---|---|
| 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弧度的正切值。 |
| 双曲函数 | |
| acosh(x) | 返回x的反双曲余弦值 |
| asinh(x) | 返回x的反双曲正弦值 |
| atanh(x) | 返回x的反双曲正切 |
| cosh(x) | 返回x的双曲余弦值 |
| sinh(x) | 返回x的双曲正弦值 |
| tanh(x) | 返回x的双曲正切 |
数学常量
| 常量 | 描述 |
|---|---|
| pi | 数学常量 pi(圆周率,一般以π来表示) |
| e | 数学常量 e,e即自然常数(自然常数)。 |
| tau | 数学常数τ = 6.283185 ......,可达到精度。头是一个圆常数等于2 π,一个圆的周长与其半径的比率 |
| inf | 浮点正无穷大。(对于负无穷大,请使用 -math.inf。)相当于输出float('inf')。 |
| nan | 浮点“非数字”(NaN)值。相当于。的输出 float('nan') |
角度转换
| 函数 | 描述 |
|---|---|
| degrees(x) | 将角度x从弧度转换为度数,比如math.degrees(1)返回值为57.29577951308232 |
| radians(x) | 将角度x从度数转换为弧度 |
random 模块
- random模块为各种分布实现伪随机数生成器
| 整数函数 | 描述 |
|---|---|
| random.randrange(stop) | 从0-end(但不包括end)的序列中随机抽取一个数 |
| random.randrange(start,stop[,step] ) | 从中返回随机选择的元素。这相当于,但实际上并不构建范围对象。range(start, stop, step),choice(range(start, stop, step)) |
| random.randint(a,b ) | 返回一个随机整数N,范围为a<=x<=b |
| random.getrandbits(k) | |
| 序列函数 | |
| random.choice(seq) | 从非空序列seq返回一个随机元素。如果seq为空,则报IndexError |
| random.shuffle(x[, random]) | 打乱序列中元素的顺序,比如:a=[1,2,3,4,],然后使用random.shuffle(a),这样就可以将a序列打乱了 |
| random.sample(population, k) | 随机从population序列中提取k个不同元素的样本 |
| 分布函数 | |
| random.random() | |
| random.uniform(a,b ) | 返回随机浮点数N,a <= N <= b |
| random.triangular(低,高,模式) | 返回一个随机浮点数N,以便在这些边界之间使用指定的模式。该低和高界默认的0和1。所述模式参数默认为边界之间的中点,给人一种对称分布。low <= N <= high |
| random.betavariate(alpha,beta ) | Beta分布。参数的条件是和 。返回值的范围介于0和1之间。alpha > 0beta > 0 |
| random.expovariate(lambd ) | 指数分布。 lambd是1.0除以所需的平均值。它应该是非零的。(该参数将被称为“拉姆达”,但是这是在Python保留字。)返回值的范围从0到正无穷大如果lambd为正,且从负无穷大到0,如果lambd为负 |
| random.gammavariate(alpha,beta) | Gamma分布,参数的条件是和。alpha > 0beta > 0 |
| random.gauss(mu, sigma) | 高斯分布。 mu是平均值,sigma是标准偏差。比normalvariate()函数稍快 |
| random.lognormvariate(mu, sigma) | 记录正态分布 |
| random.normalvariate(mu, sigma) | 正态分布。 mu是平均值,sigma是标准偏差 |
| random.vonmisesvariate(mu, kappa) | mu是平均角度,以弧度表示,介于0和2 * pi之间,kappa 是浓度参数,必须大于或等于零。如果 kappa等于零,则该分布在0到2 * pi的范围内减小到均匀的随机角度 |
| random.paretovariate(alpha) | 帕累托分布。 alpha是形状参数 |
| random.weibullvariate(alpha, beta) | 威布尔分布。 alpha是scale参数,beta是shape参数。 |
>>> random() # Random float: 0.0 <= x < 1.0
0.37444887175646646>>> uniform(2.5, 10.0) # Random float: 2.5 <= x < 10.0
3.1800146073117523>>> expovariate(1 / 5) # Interval between arrivals averaging 5 seconds
5.148957571865031>>> randrange(10) # Integer from 0 to 9 inclusive
7>>> randrange(0, 101, 2) # Even integer from 0 to 100 inclusive
26>>> choice(['win', 'lose', 'draw']) # Single random element from a sequence
'draw'>>> deck = 'ace two three four'.split()
>>> shuffle(deck) # Shuffle a list
>>> deck
['four', 'two', 'ace', 'three']>>> sample([10, 20, 30, 40, 50], k=4) # Four samples without replacement
[40, 10, 50, 30]
布尔值
Python3 布尔类型(bool)是一种内置数据类型,具有两个值:True和False,相当于1和0
| 数据类型 | 满足true的值 | 满足false的值 |
|---|---|---|
| 数字类型 | 除0以外的任意值 | 0 |
| 字符串类型 | 除空字符串("")以外的任意字符串 | 空字符串("") |
>>> bool("")
False
>>> bool(0)
False
>>> bool(1)
True
>>> bool("1")
True
>>> a = 0
>>> if a:
... print("为真")
... else:
... print("为假")
...
为假
空值
在这里提下空值
在python中None表示一个特殊的空值,但是需要注意,None不能理解为0,而只是一个空对象,还需要注意一下,NULL(空字符)也不是None