一、数字
Python中数字类型包括:- 整数
- 浮点数
- 复数
- 固定精度的十进制数
- 有理分数
- 集合
- 布尔类型
- 无穷的整数精度
- 各种数字内置函数和模块
二、表达式操作符
算数运算符(a=10,b=20)运算符 | 描述 | 实例 |
---|---|---|
+ | 加 - 两个对象相加 | a + b 输出结果 30 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 - x除以y | b / a 输出结果 2 |
% | 取模 - 返回除法的余数 | b % a 输出结果 0 |
** | 幂 - 返回x的y次幂 | a**b 为10的20次方, 输出结果 100000000000000000000 |
// | 取整除 - 返回商的整数部分 | 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 true. |
<> | 不等于 - 比较两个对象是否不相等 | (a <> b) 返回 true。这个运算符类似 != 。 |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | (a < b) 返回 true。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 true。 |
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
三、内置数学函数
math函数|常量 | 说明 | 实例 |
---|---|---|
e | 自然常数e | math.e 2.718281828459045 |
pi | 圆周率π | math.pi 3.141592653589793 |
acos(x) | 返回x的反三角余弦值 | math.acos(math.sqrt(2)/2) 0.7853981633974483 |
acosh(x) | 返回x的反双曲余弦函数 | |
asin(x) | 返回x的反三角正弦值 | math.asin(0.5) 0.5235987755982989 |
asinh(x) | 返回x的反双曲正弦函数 | |
atan(x) | 返回x的反三角正切值 | math.atan(1.7320508075688767) 1.0471975511965976 |
atan2(y, x) | 返回x/y的反三角正切值 | math.atan2(2,1) 1.1071487177940904 |
atanh(x) | 返回x的反双曲正切函数 | |
ceil(x) | 这个方法对i向上取整,x = 1.3 ,返回值为2 | math.ceil(5.2) 6.0 |
copysign(x, y) | 若y<0,返回-1乘以x的绝对值; 否则,返回x的绝对值 |
math.copysign(5.2, -1) -5.2 |
cos(x) | 返回x(弧度)的三角余弦值 | math.cos(math.radians(45)) 0.7071067811865476 |
cosh(x) | 返回x的双曲余弦函数 | |
degrees(x) | 弧度转度 | math.degrees(math.pi) 180.0 |
erf(x) | 返回x的误差函数 | |
erfc(x) | 返回x的余误差函数 | |
exp(x) | 返回e的x次方 | math.exp(2) 7.38905609893065 |
expm1(x) | 返回e的x次方减1 | math.expm1(2) 6.38905609893065 |
fabs(x) | 返回x的绝对值 | math.fabs(-5) 5.0 |
factorial(x) | 返回x的阶乘 | math.factorial(5) 120 |
floor(x) | 正好与上面相反,是向下取整。x = 1.4,返回1 | math.floor(5.8) 5.0 |
fmod(x, y) | 返回x%y(取余) | math.fmod(5,2) 1.0 |
frexp(x) | 返回m和i,满足m乘以2的i次方 | math.frexp(3) (0.75, 2) |
fsum(iterable) | 返回无损精度的和 | 0.1+0.2+0.3 0.6000000000000001 math.fsum([0.1, 0.2, 0.3]) 0.6 |
gamma(x) | 返回x的伽玛函数 | |
hypot(x, y) | 返回以x和y为直角边的斜边长 | math.hypot(3,4) 5.0 |
isinf(x) | 若x为无穷大,返回True;否则,返回False | math.isinf(1.0e+308) False math.isinf(1.0e+309) True |
isnan(x) | 若x不是数字,返回True;否则,返回False | math.isnan(1.2e3) False |
ldexp(x, i) | 返回x乘以2的i次方 | math.ldexp(0.75, 2) 3.0 |
lgamma(x) | 返回x的绝对值的自然对数的伽玛函数 | |
log(x, base=None) | 返回x的以base为底的对数,base默认为e | math.log(math.e) 1.0 math.log(2, 10) 0.30102999566398114 |
log10(x) | 返回x的以10为底的对数 | math.log10(2) 0.30102999566398114 |
log1p(x) | 返回1+x的自然对数(以e为底) | math.log1p(math.e-1) 1.0 |
modf(x) | 返回x的小数和整数 | math.modf(5.2) (0.20000000000000018, 5.0) |
pow(x, y) | 返回x的y次方 | math.pow(5,3) 125.0 |
radians(x) | 度转弧度 | math.radians(45) 0.7853981633974483 |
sin(x) | 返回x(弧度)的三角正弦值 | math.sin(math.radians(30)) 0.49999999999999994 |
sinh(x) | 返回x的双曲正弦函数 | |
sqrt(x) | 返回x的平方根 | math.sqrt(3) 1.7320508075688772 |
tan(x) | 返回x(弧度)的三角正切值 | math.tan(math.radians(60)) 1.7320508075688767 |
tanh(x) | 返回x的双曲正切函数 | |
trunc(x) | 返回x的整数部分 | math.trunc(5.8) 5 |
函数|常量 | 说明 | 实例 |
---|---|---|
random | 用于生成一个0到1的随机符点数0 <= n < 1.0 | |
uniform | 原型:random.uniform(a, b) 用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。 如果a > b,则生成的随机数n: a <= n <= b。 如果 a <b, 则 b <= n <= a。 |
print random.uniform(10, 20) print random.uniform(20, 10) #---- 结果(不同机器上的结果不一样) #18.7356606526 #12.5798298022 |
randint | 原型:random.randint(a, b) 用于生成一个指定范围内的整数。 其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b |
print random.randint(12, 20) #结果永远是20 #print random.randint(20, 10) |
randrange | 原型:random.randrange([start], stop[, step]) 从指定范围内,按指定基数递增的集合中获取一个随机数。 |
random.randrange(10, 100, 2) 结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。在结果上与 random.choice(range(10, 100, 2) 等效。 |
choice | random.choice从序列中获取一个随机元素。 原型:random.choice(sequence) 参数sequence表示一个有序类型。 sequence在python中是泛指一系列的类型。list, tuple, 字符串都属于sequence。 |
print random.choice("学习Python") print random.choice(["JGood", "is", "a", "handsome", "boy"]) print random.choice(("Tuple", "List", "Dict")) |
shuffle | 原型:random.shuffle(x[, random]) |
p = ["Python", "is", "powerful", "simple", "and so on..."] random.shuffle(p) print p #---- 结果(不同机器上的结果可能不一样。) #['powerful', 'simple', 'is', 'Python', 'and so on...'] |
sample | 原型:random.sample(sequence, k) 从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。 |
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] slice = random.sample(list, 5) #从list中随机获取5个元素,作为一个片断返回 print slice print list #原有序列并没有改变。 |