目录
1. 数字类型
1.1 整型
1.2 浮点数
1.3 复数
1.4 布尔类型
2. 常用内置数值计算函数库
3. 随机数函数
本文记录python中的基本数字类型信息,以及一些其他的相关知识点。
1. 数字类型
python中用于标识数字或者数值的数据类型,主要有如下分类:
- 整型:int
- 浮点型:float
- 复数类型:complex
- 布尔类型:bool
1.1 整型
整形默认为十进制,计算机采用二级制数据。
不同的整型数据可以相互转换,转换函数如下:
- bin():将整型数据转换为二进制,输出形式为字符串
- oct():将整型数据转换为八进制,输出形式是字符串
- hex():将整型数据转换为十六进制,输出形式是字符串
- int():接受一个符合整型规范的字符串,并将字符串转换为整型
>>> a = 100
>>> bin(a)
'0b1100100'
>>> a_bin = bin(a)
>>> print(a_bin)
0b1100100
>>> type(a_bin)
<class 'str'>
>>> a_oct = oct(a)
>>> print(a_oct)
0o144
>>> type(a_oct)
<class 'str'>
>>> a_hex = hex(a)
>>> print(a_hex)
0x64
>>> type(a_hex)
<class 'str'>
>>> a_int = int(a)
>>> print(a_int)
100
>>> type(a_int)
<class 'int'>
>>> str_a = "100"
>>> inta = int(a)
>>> print(inta)
100
>>> type(inta)
<class 'int'>
#可直接转换非十进制数据
>>> bin(0xff)
'0b11111111'
# 转换非整型数据时报错
>>> bin('100')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an integer
>>>
注意:
数字在python是不可变的,如有多个变量指向同一个数值是,该值只会存储在一个内存中,然后不同变量指向同一个内存。
示例如下:
>>> a = 1
>>> b = 1
>>> c = a
>>> print(id(a),id(b),id(c))
140715700289808 140715700289808 140715700289808
可以看出所有变量的di是一样的,id()是python的内置函数,用于读取变量的内存。即上文示例中a、b、c变量指向指向数字1的内存。
>>> a = 1
>>> b = 1
>>> c = a
>>> print(id(a),id(b),id(c))
140715700289808 140715700289808 140715700289808
>>> a = 2
>>> print(id(a),id(b),id(c))
140715700289840 140715700289808 140715700289808
>>>
如上,将a重新赋值为2,只有a的地址改变了,改变a的值时并不是修改数值,而是将新的数值存入内存中,然后将变量重新指向该内存。浮点数、复数等其他数字类型变量具有相同特点。
1.2 浮点数
浮点数就是数学中的小数,特点如下:
- 以十进制表示;
- 可以用科学计数法表示;
- python中的浮点型都是双精度的,每个浮点数占八个字节(64位);
科学计数法的格式如下:
数值x e 数值y(整型)
就是x乘以10的y次幂
示例如下:
>>> a = 1.0
>>> b = 0.1
>>> print(type(a))
<class 'float'>
>>> print(type(b))
<class 'float'>
>>> c = 1e2 # 1 乘以 10 的 2次幂
>>> print(c)
100.0
>>> d = 1e-2 # 1 乘以 10 的 -2次幂
>>> print(d)
0.01
注意:
x是不可获取的部分,若确实,则会报错
>>> d = e-2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'e' is not defined
1.3 复数
复数就是数学中的复数,其特点如下:
- 复数由“实部”和“虚部”两部分组成;
- 实数和虚数部分都是浮点型;
- 虚数部分必须有j或着J;
复数的表达形式
- a + bj;
- complex(a,b):其中a是实部,b是虚部
用法示例如下:
>>> a = 1 + 2j
>>> print(type(a))
<class 'complex'>
>>> b = complex(1,2)
>>> print(type(b))
<class 'complex'>
>>> print(id(a),id(b))
2575329711152 2575329711216
>>> # 获取复数的虚部
>>> print(a.imag)
2.0
>>> print(a.real) #获取s复数的实部
1.0
>>> print(a.conjugate()) # 获取共轭复数
(1-2j)
1.4 布尔类型
布尔类型就是是与否,只有两个状态,基本特点如下:
- 只有True和False两个取值;
- True对应整数1,False对应整数0;
- 常用的bool运算包括and、or、not三种,对应与、或、非运算;
多种数据可以等价于True和False:
2. 常用内置数值计算函数库
数学中的一些常用运算在python标准函数中的表达式。
函数 | 数学表示 | 说明 |
---|---|---|
copysign(x,y) | 复制符号位,用y的正负号替换x的正负号 | |
fabs(x) | |x| | 返回x的绝对值 |
factorial(x) | x! | 返回x的阶乘,x必须为正整数或0,否则会报错 |
floor(x) | 向下取整,返回不大于x的最大整数 | |
fmod(x,y) | x % y | 返回x与y的模 |
frexp(x) | x = m * 2 **e | 返回(m,e),若x为零,则返回(0.0,0) |
fsum(iterable) | 浮点数精度求和 | |
gcd(a,b) | 返回a和b的最大公约数 | |
iscolse(a,b) | 比较a和b的相似性,相近返回True,否则返回False | |
isfinite(x) | 若x不是无穷大,也不是NaN,返回True;否则返回False | |
isnan(x) | x为NaN时返回True,否则返回False | |
ldexp(x,i) | 返回x*(2**i) | |
modf(x) | 返回x的小数部分和整数部分 | |
trunc(x) | 返回x的整数部分 | |
exp(x) | 返回e的x次幂 | |
expm1(x) | -1 | 返回e的x次幂减去1 |
log(x[,base]) | 返回x的自然对数 | |
log1p(x) | ln(1+x) | 返回1+x的自然对数 |
log2(x) | 返回以2为底x的对数 | |
log10(x) | 返回以10为底x的对数 | |
pow(x,y) | 返回x的y次幂 | |
sqrt(x) | 返回x的平方根 | |
sin(x) | sin x | 返回x的正弦函数值 |
cos(x) | cos x | 返回x的余弦函数值 |
tan(x) | tan x | 返回x的正切函数值 |
asin(x) | arcsin x | 返回x的反正弦函数值 |
acos(x) | atccos x | 返回x的反余弦函数值 |
atan(x) | atctan x | 返回x的反正切函数值 |
atan2(x) | 返回y/x的反正切函数 | |
math.erf(x) | 高斯误差函数 | |
math.erfc(x) | 余补高斯误差函数 | |
math.gamma(x) | 伽马函数,也叫欧拉第二积分函数 | |
math.lgamma(x) | 伽马函数的自然对数 |
3. 随机数函数
随机数函数random用于生成置定范围内的随机数。
import random
a = random.random() # 生成一个0-1范围内的随机数
b = random.randint(1,200) # 生成1-200范围内的一个随机整数