目录
本文记录python中的基本数字类型信息,以及一些其他的相关知识点。
python中用于标识数字或者数值的数据类型,主要有如下分类:
整形默认为十进制,计算机采用二级制数据。
不同的整型数据可以相互转换,转换函数如下:
- >>> 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 "
" , line 1, in - 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的值时并不是修改数值,而是将新的数值存入内存中,然后将变量重新指向该内存。浮点数、复数等其他数字类型变量具有相同特点。
浮点数就是数学中的小数,特点如下:
科学计数法的格式如下:
数值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 "
" , line 1, in - NameError: name 'e' is not defined
复数就是数学中的复数,其特点如下:
复数的表达形式
用法示例如下:
- >>> 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)
布尔类型就是是与否,只有两个状态,基本特点如下:
多种数据可以等价于True和False:
数学中的一些常用运算在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) | 伽马函数的自然对数 |
随机数函数random用于生成置定范围内的随机数。
- import random
-
- a = random.random() # 生成一个0-1范围内的随机数
- b = random.randint(1,200) # 生成1-200范围内的一个随机整数