Python是一种解释型,面向对象,动态数据类型的高级语言
基础语法
单行注释 #
多行注释 '''...''',"""..."""
缩进 同个代码块的语句必须包含相同的缩进空格数
多行语句 \,[] {} ()多行不需要反斜杠
input()等待输入 ,print()打印
import/from ... import导入模块
变量
变量不需要申明,在使用前必须赋值,赋值后变量才会创建
变量没有类型,“类型”是变量所指内存中对象的类型
多个变量赋值
a = b = 1 或 a, b = 1, 2
运算符
算术运算符
** 幂,% 取余,// 取整除
逻辑运算符
and,or,not
标准数据类型
不可变数据:Number(数字),String(字符串),List(列表)
可变数据:Tuple(元组),Set(集合),Dictionary(字典)
数字
int/bool/float/complex
字符串
单双引号完全相同,三引号可以指定多行字符串
列表
截取拼接
l[-2]
l[1:]
l = [1,2,3]
l.append()
l.count()
l.extend()
l.reverse()
l.clear()
l.copy()
max(l)/min(l)
元组
使用小括号,元组数据不能修改
除了修改元素,列表其他功能元组都有
字典
键必须唯一,值不必
值可取任何数据类型,键必须不可变(数字,字符串,元组)
创建空字典用
dict()
或者{}
访问不存在的key会报错
del()
删除,str(dict)
以字符串表示字典
d = {'Name':'Tom', 'Age':10}
d.clear()
d.items()
d.keys() # 返回迭代器,list()转换为列表
d.values()
集合
无序,不重复
使用
{}
或者set()
创建集合,创建空集合用set()
,{}
默认创建空字典
s = {1,2,3}
s.add() # 添加元素是数字,字符串,元组或者布尔类型,不能是列表,字典,集合
s.update() # 添加元素可以是列表,字典
s.remove() # 不存在会报错
s.discard() # 不存在不会报错
s.clear()
s.pop() # 随机移除
s.union() # 返回并集
s.difference() # 返回差集
控制语句
if xxx:
xxx
elif xxx:
xxx
else:
xxx
while xxx:
xxx
for i in range(5):
xxx
函数
- 不带return相当返回None
- 不可变类型,类似c++的值传递
- 可变类型,类型c++的引用传递
def 函数名(参数列表):
函数体
参数类型
必须参数
关键字参数
默认参数
不定长参数
def test(*vartuple) # 元组形式导入
def test(**vardict) # 字典形式导入
模块
搜索路径,sys.path
,空串代表当前目录
面向对象
构造函数__init__
类变量/成员变量,成员变量比类变量优先级更高
pass
,不想在类里添加任何属性或方法,使用pass
super()
,不用使用父类的名称,自动从父类继承方法和属性
super(Child,c).XXX
,用子类对象调用父类已被覆盖的方法
错误和异常
try/except
ZeroDivisionError, NameError, TypeError
try:
except:
else:
finally:
-
else
子句在try
子句没有发生任何异常时执行 -
finally
无论是否发生异常都会执行 -
raise
抛出异常
自定义异常继承自Exception类
迭代器
可以记住遍历位置
迭代器对象从集合的第一个元素开始访问,直到所有元素都被访问结束,只能前进,不能后退
iter()/next()
字符串,列表,元组都可以创建迭代器
list = [1, 2, 3, 4]
it = iter(list)
for x in it:
print()