关键字
python 具有特殊功能的标识符就是关键字
import keyword
print(keyword.kwlist)
[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘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’]
运算符
算术运算符
+ 加
- 减
* 乘
/ 除
// 整除
% 取余
** 幕, 比如 2**3 为2的3次方,输入结果为8
例如:
赋值运算符
= 等号
复合运算符
+=
-=
*=
/=
%=
**= 幂等
//= 取整除
比较运算符
==
!=
>
<
>=
<=
逻辑运算符
and
or
not
返回结果为 True 或者 False
位运算符
数字按二进制进行位运算
& 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 左移
>> 右移
运算符优先级
优先级从高到底依次是:
函数调用、寻址、下标
幂运算 **
取反运算符 ~
正负号
* / %
+ -
控制语句
if 条件控制语句
if 用法
if
if else
if elif
if elif else
if 嵌套
循环控制语句
while 循环
for 循环
(break, continue 用法)
数据结构
number
string
list
dictionary
tuple
set
number
int
float
bool
complex
string
字符串下标
字符串切片:[起始:结束:步长] ; 左闭右开
list
增:append、extend、insert
删:del、pop、remove
改:直接修改
查:in, not in
排序: sort
dictionary
结构:{key: value, key: value}
增
删
改
查: .get() , .keys(), .values() , .items()
清空: .clear()
tuple
不可修改的 list
set
一组 key 的集合,不存储 value ; 其中 key 不重复
增: add
删: remove
改: update
查: for
集合的交集与并集
交集 &
并集 |
函数
函数定义
def 函数名():
代码
函数调用
函数参数
形参:函数定义时的参数
实参:函数调用时的参数
函数返回值
函数类型
有无参数、有无返回值 (默认返回值为 None)
函数嵌套调用
关键字参数
默认参数(缺省参数)
不定长参数(可变参数)
语法如下:
def function_name(a,b,*args,**kwargs):
匿名函数
不使用 def 来定义,通过lambda来创建匿名函数
回调函数
回调函数就是通过函数指针来调用的函数;
如果把函数的地址通过参数传递给另外一个函数,当这个地址被用来调用指向的函数的时候,回调函数不是由改函数的实现方来调用,而是通过特定的事件或条件由另外一方调用。
面向对象
面向对象思想
⾯面向对象(object-oriented ;简称: OO) ⾄至今还没有统⼀一的概念 我这⾥里里把它定义为: 按⼈人们 认识客观世界的系统思维⽅方式,采⽤用基于对象(实体) 的概念建⽴立模型,模拟客观世界分析、设 计、实现软件的办法。
⾯面向对象编程(Object Oriented Programming-OOP) 是⼀一种解决软件复⽤用的设计和编程⽅方法。 这种⽅方法把软件系统中相近相似的操作逻辑和操作 应⽤用数据、状态,以类的型式描述出来,以对象实例例的形式在软件系统中复⽤用,以达到提⾼高软件开发效率的作⽤用。
类
类是抽象的,在使⽤用的时候通常会找到这个类的⼀一个具体的存在,使⽤用这个具体的存在。一个类可以找到多个对象
由三个部分组成:类名、数据、类方法
(名词提炼法)
对象
某一个具体事物的存在 ,在现实世界中可以是看得⻅见摸得着的。
定义类
class 类名:
方法列表
创建对象
对象名 = 类名()
init 初始化函数
用来完成实例的一些默认设定
封装
数据封装:保护隐私
方法封装:隔离复杂度
继承
单继承
多继承
多态
多态的概念是应⽤用于Java和C#这⼀一类强类型语⾔言中,⽽Python崇尚“鸭子类型”。
所谓多态:定义时的类型和运行时的类型不一样,此时就成为多态
Python伪代码实现Java或C#的多态
一个⽗类有多个子类
类属性 与 实例属性
如果需要在类外修改类属性,必须通过类对象去引用然后进⾏修改。
如果通过实例例对象去引⽤,会产⽣生一个同名的实例属性,这种方式修改的是实例属性,不会影响到类属性,并且之后如果通过实例对象去引⽤该名称的属性,实例属性会强制屏蔽掉类属性,即引用的是实例属性,除非删除了该实例例属性。