ctrl+z撤回上一步
ctrl+d复制粘贴当前行代码
数字类型及操作
- 整数类型
- 浮点数类型
- 复数类型
- 数值运算操作符
- 数值运算函数
整数类型
与数学中整数的概念一致,可正可负,没有取值范围限制
pow(x,y)函数:计算x^y,想算多大算多大
python的整数提供四种表示形式
- 十进制:1010,99,-217
- 二进制,以0b或0B开头:0b010,-0B101
- 八进制,以0o或0O开头:0o123,0O456
- 十六进制,以0x或0X开头:0x9a,-0X89
浮点数类型
与数学中实数的概念一致,带有小数点及小数的数字
浮点数取值范围和小数精度都存在限制,但常规计算可忽略
取值范围数量级约-10^308至10^308,精度数量级10^-16
浮点数间运算存在不确定尾数,不是bug
>>>0.1+0.3
0.4
>>>0.1+0.2
0.30000000000000004
计算机中所有数字都是用二进制表示,由于计算机中二进制和十进制之间不存在严格的对等关系,所以0.1在用二进制表示时是一个无限的小数,计算机只能截取其中的53位,无限接近0.1,但并不是真正等于0.1,再转化为十进制后面有很长的尾数,将浮点数输出时只输出其中的16位小数。
二进制表示小数,可以无限接近,但不完全相同,故使0.1+0.2进行计算的时候,它在计算机内部经过二进制转换,再经过二进制运算,再经过反向转换为十进制小数时,结果无限接近0.3,但可能存在尾数
>>>0.1+0.2==0.3
False
>>>round(0.1+0.2,1)==0.3
True
==在python程序中是等于的一种判断符号
round(x,d):对x四舍五入,d是小数截取位数
浮点数间运算及比较用round()函数辅助
不确定尾数一般发生在10^-16左右,round()十分有效
浮点数可采用科学计数法表示
使用字母e或E作为幂的符号,以10为基数,格式如下:
<a>e<b> 表示a*10^b
eg. 4.3e-3值为0.0043 9.6E5值为960000.0
复数类型
(仅有python语言提供负数类型)与数学中复数的概念一致
a+bj被称为复数,其中,a是实部,b是虚部
数值运算操作符
操作符是完成运算的一种符号体系
操作符及使用 | 描述 |
---|---|
x+y | 加 |
x-y | 减 |
x*y | 乘 |
x/y | 除,x与y之商 10/3结果是3.3333333333333335 |
x//y | 整数除,x与y之整数商 10//3结果是3 |
+x | x本身 |
-y | y的负值 |
x**y | 幂运算,x^y |
x%y | 余数,模运算 10%3的结果是1 |
在python中,x/y产生的是浮点数结果,与数学运算中的除是一致的,但在很多其它语言中并非如此
二元操作符有对应的增强赋值操作符
增强操作符及使用 | 描述 |
---|---|
xop=y | 即x=xopy,其中,op为二元操作符 |
x+=y x-=y x*=y x/=y x//=y x%=y x**=y | |
>>>x = 3.1415 >>>x**=3 #x = x**3 |
类型间可进行混合运算,生成结果为“最宽”类型
三种类型存在一种逐渐“扩展”或“变宽”的关系:
整数->浮点数->复数
eg.123+4.0=127.0(整数+浮点数=浮点数)
数值运算函数
一些以函数形式提供的数值运算功能
函数及使用 | 描述 |
---|---|
abs(x) | 绝对值,x的绝对值 abs(-10.01)结果为10.01 |
divmod(x,y) | 商余,(x//y,x%y),同时输出商和余数 divmod(10,3)结果为(3,1) |
pow(x,y[,z]) | 幂余,(x**y)%z,[..]表示参数z可省略 eg.运算3的3的99次方的后四位: pow(3,pow(3,99),10000)结果为4587 |
round(x[,d]) | 四舍五入,d是保留小数位数,默认值为0 round(-10.123,2)结果为-10.12 |
max(x1,x2,...,xn) | 最大值,返回x2,x2,...,xn中的最大值,n不限 max(1,9,5,4,3)结果为9 |
max(x1,x2,...,xn) | 最小值,返回x1,x2,...,xn中的最小值,n不限 min(1,9,5,4,3)结果为1 |
int(x) | 将x变成整数类型,舍弃小数部分 int(123.55)结果为123;int("123")结果为123 |
float(x) | 将x变成浮点数类型,增加小数部分 float(12)结果为12.0;float("1.23")结果为1.23 |
complex(x) | 将x变成复数,增加虚数部分 complex(4)结果为4+0j |
pow(3,pow(3,99))无法在普通计算机中得到结果,因为数值太大,超过计算机普通内存的大小