前言导读
本章介绍了python自带的各类应用函数

保留字

保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']


运算符

1 算术运算符

运算符

描述

+

-

*

/

%

取模

**

//

取整除

2 比较运算符

运算符

描述

==

等于

!=

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

3 赋值运算符

运算符

描述

=

简单的赋值运算符

+=

加法赋值运算符

-=

减法赋值运算符

*=

乘法赋值运算符

/=

除法赋值运算符

%=

取模赋值运算符

**=

幂赋值运算符

//=

取整除赋值运算符

4 位运算符

运算符

描述

&

按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

|

按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1

^

按位异或运算符:当两对应的二进位相异时,结果为1

~

按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1

<<

左移动运算符:运算数的各二进位全部左移若干位,由”<<“右边的数指定移动的位数,高位丢弃,低位补0

>>

右移动运算符:把”>>“左边的运算数的各二进位全部右移若干位,”>>“右边的数指定移动的位数

5 逻辑运算符

运算符

逻辑表达式

描述

and

x and y

布尔”与” - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值

or

x or y

布尔”或” - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值

not

not x

布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True

6 成员运算符

运算符

描述

in

如果在指定的序列中找到值返回 True,否则返回 False

not in

如果在指定的序列中没有找到值返回 True,否则返回 False

7 身份运算符

运算符

描述

实例

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

8 运算符优先级

运算符

描述

​(expressions...)​​, ​​[expressions...]​​, ​​{key: value...}​​, ​​{expressions...}​

表示绑定或元组、表示列表、表示字典、表示集合

​x[index]​​, ​​x[index:index]​​, ​​x(arguments...)​​, ​​x.attribute​

下标、切片、调用、属性引用

​**​

指数 (最高优先级)

​~​​ ​​+​​ ​​-​

按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

​*​​ ​​/​​ ​​%​​ ​​//​

乘,除,取模和取整除

​+​​ ​​-​

加法减法

​>>​​ ​​<<​

右移,左移运算符

​&​

位 ‘AND’

​^​​ ​​ |​


​<=​​ ​​<​​ ​​>​​ ​​>=​

比较运算符

​<>​​ ​​==​​ ​​!=​

等于运算符

​=​​ ​​%=​​ ​​/=​​ ​​//=​​ ​​-=​​ ​​+=​​ ​​*=​​ ​​**=​

赋值运算符

​is​​ ​​is not​

身份运算符

​in​​ ​​not in​

成员运算符

​and​​ ​​or​​ ​​not​

逻辑运算符

​if - else​

条件表达式

​lambda​

Lambda 表达式

具有相同优先级的运算符将从左至右的方式依次进行。用小括号​​()​​可以改变运算顺序。

数学函数

注:以下函数的使用,需先导入 math 包。

函数

描述

abs(x)

返回数字的整型绝对值,如 ​​abs(-10)​​ 返回 10

ceil(x)

返回数字的上入整数,如 ​​math.ceil(4.1)​​ 返回 5

cmp(x, y)

如果 x < y 返回 -1,如果 x == y 返回 0,如果 x > y 返回 1。​​Python 3​​ 已废弃 。使用 使用 ​​(x>y)-(x<y)​​ 替换。

exp(x)

返回 e 的 x 次幂(ex),如 ​​math.exp(1)​​ 返回2.718281828459045

fabs(x)

返回数字的浮点数绝对值,如 ​​math.fabs(-10)​​ 返回10.0

floor(x)

返回数字的下舍整数,如 ​​math.floor(4.9)​​ 返回 4

log(x)

如 ​​math.log(math.e)​​ 返回 1.0,​​math.log(100,10)​​ 返回 2.0

log10(x)

返回以 10 为基数的 x 的对数,如 ​​math.log10(100)​​ 返回 2.0

max(x1, x2,…)

返回给定参数的最大值,参数可以为序列

min(x1, x2,…)

返回给定参数的最小值,参数可以为序列

modf(x)

返回 x 的整数部分与小数部分,两部分的数值符号与 x 相同,整数部分以浮点型表示

pow(x, y)

幂等函数, x**y 运算后的值

round(x [,n])

返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数

sqrt(x)

返回数字 x 的平方根

1 随机数函数

注:以下函数的使用,需先导入 random 包。

函数

描述

choice(seq)

从序列的元素中随机挑选一个元素,比如​​random.choice(range(10))​​,从0到9中随机挑选一个整数

randrange ([start,] stop [,step])

从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1

random()

随机生成下一个实数,它在​​[0,1)​​范围内

seed([x])

改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed

shuffle(lst)

将序列的所有元素随机排序

uniform(x, y)

随机生成下一个实数,它在​​[x,y]​​范围内

2 三角函数

注:以下函数的使用,需先导入 math 包。

函数

描述

acos(x)

返回 x 的反余弦弧度值

asin(x)

返回 x 的反正弦弧度值

atan(x)

返回 x 的反正切弧度值

atan2(y, x)

返回给定的 X 及 Y 坐标值的反正切值

cos(x)

返回 x 的弧度的余弦值

hypot(x, y)

返回欧几里德范数 ​​sqrt(x*x + y*y)​

sin(x)

返回的 x 弧度的正弦值

tan(x)

返回 x 弧度的正切值

degrees(x)

将弧度转换为角度,如 degrees(math.pi/2) 返回 90.0

radians(x)

将角度转换为弧度

3 数学常量

常量

描述

pi

数学常量 pi(圆周率,一般以π来表示)

e

数学常量 e,e 即自然常数(自然常数)

转义字符

转义字符

描述

\

在行尾时,续行符

\

反斜杠符号

\‘

单引号

\“

双引号

\a

响铃

\b

退格(Backspace)

\e

转义

\000

\n

换行

\v

纵向制表符

\t

横向制表符

\r

回车

\f

换页

\oyy

八进制数,yy代表字符,例如:\o12代表换行

\xyy

十六进制数,yy代表字符,例如:\x0a代表换行

\other

其它的字符以普通格式输出

1 字符串运算符

操作符

描述

实例

+

字符串连接

​'Hello' + 'Python'​​ 输出结果:’HelloPython’

*

重复输出字符串

​'Hello' * 2​​ 输出结果:’HelloHello’

[]

通过索引获取字符串中字符

​'Hello'[1]​​ 输出结果 e

[ : ]

截取字符串中的一部分

​'Hello'[1:4]​​ 输出结果 ell

in

成员运算符,如果字符串中包含给定的字符返回 True

​'H' in 'Hello'​​输出结果 True

not in

成员运算符,如果字符串中不包含给定的字符返回 True

​'M' not in 'Hello'​​ 输出结果 True

r/R

原始字符串,所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法

​print(r'\n')​​ 或 ​​print(R'\n')​

%

格式化字符串


2 字符串格式化

在 Python 中,字符串格式化不是 sprintf 函数,而是用 ​​%​​ 符号。例如:

print("我叫%s, 今年 %d 岁!" % ('小明', 10))  
// 输出:
我叫小明, 今年 10 岁!


格式化符号:

符号

描述

%c

格式化字符及其 ASCII 码

%s

格式化字符串

%d

格式化整数

%u

格式化无符号整型

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

作用同 %e,用科学计数法格式化浮点数

%g

%f 和 %e 的简写

%G

%f 和 %E 的简写

%p

用十六进制数格式化变量的地址

辅助指令:

指令

描述

*

定义宽度或者小数点精度

-

用做左对齐

+

在正数前面显示加号

在正数前面显示空格


#

在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)

0

显示的数字前面填充’0’而不是默认的空格

%

’%%‘输出一个单一的’%’

(var)

映射变量(字典参数)

m.n.

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

Python 2.6 开始,新增了一种格式化字符串的函数 ​​str.format()​​,它增强了字符串格式化的功能。

序列操作符和函数

1 列表操作符

  • ​+​​ 用于合并列表
  • ​*​​ 用于重复列表元素
  • ​in​​ 用于判断元素是否存在于列表中
  • ​for ... in ...​​ 用于遍历列表元素
[1, 2, 3] + [3, 4, 5]           # [1, 2, 3, 3, 4, 5]
[1, 2, 3] * 2 # [1, 2, 3, 1, 2, 3]
3 in [1, 2, 3] # True
for x in [1, 2, 3]: print(x) # 1 2 3


2 列表函数

  • ​len(list)​​ 列表元素个数
  • ​max(list)​​ 列表元素中的最大值
  • ​min(list)​​ 列表元素中的最小值
  • ​list(seq)​​ 将元组转换为列表
li = [0, 1, 5]
max(li) # 5
len(li) # 3


注: 对列表使用 max/min 函数,2.x 中对元素值类型无要求,3.x 则要求元素值类型必须一致。

3 元组函数

  • ​len(tuple)​​ 元组元素个数
  • ​max(tuple)​​ 元组元素中的最大值
  • ​min(tuple)​​ 元组元素中的最小值
  • ​tuple(tuple)​​ 将列表转换为元组

4 字典函数

  • ​len(dict)​​ 计算字典元素个数,即键的总数
  • ​str(dict)​​ 输出字典,以可打印的字符串表示
  • ​type(variable)​​ 返回输入的变量类型,如果变量是字典就返回字典类型
  • ​key in dict​​ 判断键是否存在于字典中

5 集合(set)

集合是一个无序不重复元素的序列

6 创建集合

  • 可以使用大括号 ​​{}​​ 或者 ​​set()​​ 函数创建集合
  • 创建一个空集合必须用 ​​set()​​ 而不是 ​​{}​​,因为 ​​{}​​ 是用来创建一个空字典
  • ​set(value)​​ 方式创建集合,value 可以是字符串、列表、元组、字典等序列类型
  • 创建、添加、修改等操作,集合会自动去重
{1, 2, 1, 3}            # {} {1, 2, 3}
set('12345') # 字符串 {'3', '5', '4', '2', '1'}
set([1, 'a', 23.4]) # 列表 {1, 'a', 23.4}
set((1, 'a', 23.4)) # 元组 {1, 'a', 23.4}
set({1:1, 'b': 9}) # 字典 {1, 'b'}


(本章完)

所有资源均有PDF目录版,如想获得请扫码关注右侧公众号自动获取