三种数

Python 支持三种不同的数值类型:

  1. 整型( int ) : 通常被称为是整型或整数,是正或负整数,不带小数点

  2. 浮点型( float ) : 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示 2.5e2

  3. 复数( complex ) : 复数由实数部分和虚数部分构成,可以用 a + bj (注意是 j,或者 complex(a,b) 表示,ab 都将以浮点型存储

相互转换

  • int(x)x转换为一个整数。
  • float(x)x转换到一个浮点数。
  • complex(x)x转换到一个复数,实数部分为 x,虚数部分为 0
  • complex(x, y)xy 转换到一个复数,实数部分为 x,虚数部分为 y

PS:

  • Python3 中的数字是没有限制大小的!
  • Python3 中没有 Python2long 类型,整型简化成只剩一个int类型
  • 布尔(bool)int 的子类型

数中的下划线

Python3.6+ 中书写很大的数时,可以在任意位置加入下划线,使数字更清晰易读

1
universe_age= 14_000_000_000

当然,Python 并不会把下划线也存进去

1
2
print(universe_age)
14000000000

这种方法对整数和浮点数都适用

七种运算

运算符 含义 例子 运行结果
+ 3+1 4
- 40-2 38
* 3*2 6
/ 6/3 2.0
// 整除 3//2 1
** 2**3 8
% 求余 7%2 1

PS,在整数和浮点数的运算中:

  • 混合运算的结果总是浮点数
  • 任意两个数相除(/),结果总是浮点数

简化运算符

这个与 C 中的规则相同

1
n = n + 1

可以简化为

1
n += 1

其他的举一反三

二进制、八进制、十六进制

表示法

Python 中这三个进制的标识方法与 C 中的不完全相同,表示这三个进制的数必须以 0 开头,然后分别跟着不同进制的字母

  • 二进制 : b0b110011
  • 八进制: o0o56432
  • 十六进制: x0xF765A

相互转换

1
2
3
4
5
6
7
8
9
10
print(0b110011)  #输出二进制
print(0o123) #输出八进制
print(0xF1A) #输出十六进制
print(bin(12)) #十进制转二进制
print(int("10110",2)) #二进制转十进制
print(hex(54321)) #十进制转十六进制
print(int("0x35AE",16)) #十六进制转十进制
print(bin(0xF35E)) #十六进制转二进制
print(oct(12345)) #十进制转八进制
print(int("76532",8)) #八进制转十进制

相关函数

数学函数(from math import *

函数名 描述
abs(x) 绝对值
fabs(x) 浮点数的绝对值
ceil(x) 向上取整
floor(x) 向下取整
log(x) e 为底取对数
log(x,y) y 为底取 x 的对数
max/min(x,y,...) 取最大值/最小值
sqrt(x) 开根号
round(x[,n]) 四舍五入,精度 n 可选
sin(x) x 的正弦值
cos(x) x 的余弦值
tan(x) x 的正切值
asin(x) x 的反余弦(弧度)
acos(x) x 的反余弦(弧度)
atan(x) x 的反正切(弧度)
atan2(x,y) 给定的 xy 坐标值的反正切值
hypot(x,y) 欧几里德范数 sqrt(x*x + y*y)
degrees(x) 弧度转角度
radians(x) 角度转弧度

随机数函数(from random import *

Python 中取随机不需要事先设定种子,当然你也可以手动重新设定

函数名 描述
random() [0,1) 中取一个随机数
choice(seq) seq 中随机挑选一个元素,seq 可以是列表,元组或字符串,例:choice(range(10))
randrange([x,]y[,z]) [x,y) 内取一个 z 的倍数,xz 默认为 1
uniform(x,y) [x,y] 中随机取一个浮点数
shuffle(list) 随机打乱一个列表
seed([x]) 改变随机数生成器的种子

数学常量

常量 描述
pi 圆周率 π
e 欧拉常数 e

有趣的问题:0.1+0.2≠0.3

初中的时候对Python为数不多的认识之一就是听说在Python里 0.1 加上 0.2 不等于 0.3 (笑)

1
print(0.1+0.2)

结果为

1
0.30000000000000004

但实际上,这个不是Python的特性,所有语言在处理浮点数时都会发生这样的情况,详情可以查看这个视频这个网站