断言assert:当这个关键字后面的条件为假,程序自动崩溃并抛出异常
assert 3>4
可以利用他置入检查点
8、 循环语句
while 条件:
满足条件执行语句
for 临时变量 in 可迭代对象:
action
else:
不满足条件action
break 跳出整个循环
continue 结束本次循环进入下一次循环
他们只能在循环中使用,作用于当前循环
9、 字符串 列表 元组 字典
字符串:
我想应该都不陌生,以下是他的一些常用的方法
count(sub) 统计字符串中出现sub的数量
endswith(sub) 以sub结束,返回布尔值
startswith(sub) 以sub开始,返回布尔值
find(sub) 查询sub是否存在,如存在返回下标,否者返回-1
join(sub) 以字符串做分割符,分割sub
replace(old, new) 替换
split(“sub”) 以sub分割字符串
strip() 去除字符串左右两边的空格
字符串切片的使用:>>> tes ="123456" >>>tes[0:4] 结果:’1234’
列表:
List = [1, ‘dafd’, 12.6,True ]
列表的元素可以是不同类型的
列表是一个可变、可迭代的对象
列表的访问方式:下标索引,for循环迭代输出,while循环输出
列表的常见操作:
添加(append, extend, insert):
append() 在列表后面追加元素
extend() 可以将集合中的元素逐一添加到列表中去
insert(index, a) 在指定index前添加a元素
修改:List[index] = value
查找:in ,not in 返回布尔值
删除(del, pop, remove):
del 根据下标进行删除
pop 删除最后一个元素
remove 根据元素的值进行删除
排序(sort, reverse):
sort() 对自身进行排序,默认从小到大,参数reverse=True可改为倒序
reverse() 将list进行逆置
元组:
元组也可以存放不同的数据类型
元组只一个不可变、可迭代的对象
(python中不可修改元组的元素,元素不可删除,只能进行访问)
元组的访问方式:下标索引,for循环迭代输出,while循环输出
元组常见的操作:
元组切片(其原本数据不变):
>>> tt =(1,2,3,"dfsf",12.4)
>>> tt[1:3]
(2, 3)
删除整个元组:del 元组名
查询:in, not in 返回布尔值
count(sub) 查找元组中sub元素的数量
字典:
字典是按照键值对的方式存放数据的
字典是一个可变、可迭代的对象
字典常见的操作:
修改与添加:
变量名['键'] = 数据
若字典中‘键’存在,则修改其值
否则添加新的键值
删除(del, clear):
del 即可以删除字典元素,又可以删除整个字典
clear() 清空整个字典
len() 测试字典的长度,即键值对的个数
keys() 返回一个包含字典所有key的列表
values() 返回一个包含字典所有value的列表
items() 返回一个包含字典所有(键:值)元组的列表 例:[(‘name’:’fcd’),(‘age’:20)]
has_key(key) 判断字典中是否存在key,返回布尔值
10、函数
全局变量和局部变量:
Python同其他的语言一样存在全局变量和局部变量,但在python的函数中如果不改变全局变量的值,可以不必声明,直接引用即可。如果需要改变需要使用global先进行声明,再使用
函数定义与调用:
def 函数名():
action
函数名()
同其他语言一样python的函数也有返回值、参数,不过python可以在函数内写说明文档
查看函数说明文档help(函数名)
与其他语言相比python比较有特点的参数:收集参数(*args), 自定义参数(**kwargs)
Python中内嵌函数:内部函数调用外部函数变量需要nonlocal声明
函数递归同其他语言一样
匿名函数:使用lambda 返回值:表达式 (这种短小的匿名函数可以当作函数参数进行传参)
11、模块导入
以random模块为例:
import random
s = random.randint(1,10) #随机产生一个1~10的整数
from random import randint()
s = randint(1,10)
12、文件
文件的打开与关闭:
fp = open(“文件名称”,”打开方式”)
文件打开方式
访问模式
说明
r
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w
打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb
以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+
打开一个文件用于读写。文件指针将会放在文件的开头。
w+
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
关闭文件:fp.close()
文件的读写:
fp.write() 向文件中写数据
fp.read() 从文件中读数据
fp.readlines() 将文件中的数据一次性读取,把每一行当做一个元素存入列表
fp.tell() 获取文件当前的位置
fp.seek(offset,from) 定位操作
offset:偏移量
from: 0 表示文件开头
1 表示当前位置
2 表示文件末尾
文件系统操作:
模块:打包的文件系统
os模块:
常用方法:
os.getcwd():返回工作目录
os.chdir(path):改变工作目录
os.listdir(path=''):列出文件目录
os.mkdir(path):创建目录
os.makedirs(path):创建递归目录
os.remove(path):删除文件
os.removedirs(path):递归删除
os.rename(old,new):文件重命名
os.system(command):运行系统的shell命令
os.curdir:指代当前目录.等价于‘。’
os.pardir:指代上一级目录
os.sep:输出操作系统的路径分隔符
os.linesep:当前平台使用的行终止符
os.name:指出当前使用的操作系统
13、类和对象
定义类
class 类名:
方法列表
类名开头最好大写
创建对象
对象名 = 类名()
属性:
Python中定义私有属性是变量名前加双下划线,如 __name
否则是公有属性
魔法方法:
__init__(self)方法:初始化函数,设置一些默认值。在创建对象后立即被调用
__str__(self)方法:设置对象的返回值
__del__(self)方法:当删除对象时,python解释器会自动调用
继承:
单继承:class NameClass(BaseClass1)
多继承:class NameClass(BaseClass1, BaseClass2,BaseClass3)
重写父类方法:
所谓重写,就是子类方法与父类方法同名,子类中的方法将会覆盖父类中的方法
多态
所谓多态就时定义与执行不一致
静态方法和类方法
类方法:类对象所拥有的方法,需要用装饰器@clsaamethod来标记为类方法,对于类方法第一个参数必须是类对象,一般以cls作为第一个参数。它可以通过实例对象引用,也可通过类对象引用
静态方法:需要通过@staticmethod类进行修饰,不必有参数。它可以通过实例对象引用,也可通过类对象引用
14、异常
常见标准异常:
AssertionErron/AttributeError/EOFError/IndexError/KeyError
/NameError/OSError/OverflowError/SyntaxError/TypeError/ZeroDivisionError
捕获异常:
try:
检测范围
exceptException[as reason]:
出现异常后的处理代码 print('代码')
exceptException[as reason];
出现异常后的处理代码 print('daimai'+str(reason))
except(Error1,Error2):
处理异常的代码
try:
检测范围
except Exception[as reason]:
处理异常的代码
finally:
无论如何都会处理的代码
raise语句抛出异常
raise Exception('指示代码')