1.函数
创建函数 def functionname(parameter): ##parameter 定义函数的形参
' ' ##函数文档 可以由 functionname.__doc__ 查看
return =
调用函数 functionname(argument) ##argument 调用函数的实参
关键字参数 def functionname(parametername=parameter):
默认参数 在定义函数时为形参赋初值,调用函数时没有输入参数也不会报错
收集参数 def functionname(*parameters):
调用时 functionname(,,,)
若参数不仅包含收集参数还有其他参数需要用关键字参数来定义 def functionname(*parameters,parametername):
调用时 functionname(,,,parametername=parameter)
函数有返回值,过程没有返回值。函数可以返回不同类型的值,可以是数也可以是字符串
局部变量local virable 只作用在函数内部,在函数外是无法查到的
全局变量global virable 在函数外定义的可以作用于全局,不能直接修改全局变量,如果要修改需要在修改前声明
global global virable
闭包 def funx(x):
def funy(y): ## funy()是一个闭包,是一个内部函数并且引用了外部函数中的变量
return = x * y
return funy
内部函数中的变量为局部变量,外部函数中的变量为全局变量。不能修改内部函数中的全局变量,如果要修改需要在修改前声明
nonlocal virable
调用 funx(a)(b) ##计算a*b 内部函数不能再外部直接调用
匿名函数 name=lambda x,y : x与y的表达式(返回值)
调用匿名函数 name(x,y)
过滤器 list(filter(None,[list])) ##筛选出列表中为真的元素,所有字符串均为1
list(filter(functionname,[list])) ## 将列表中的元素作为实参带入函数中,筛选出函数返回值为1的列表元素
映射 list(map(functionname,[list])) ##将列表中的元素作为实参带入函数中,得到返回值
递归 有调用函数自身的行为,有正确的返回条件
设置递归的层数 import sys
sys.setrecursionlimit(a)
2.字典
字典 键key 值value 合起来叫做项
字典区别于序列是一种映射类型,序列以数组形式进行存储,通过索引去读取数据
创建字典 dictname={ }
dictname={key1:value1,key2:value2}
dict(key1=value1,key2=value2) ##注意使用关键字参数时key不加引号
调用字典 dictname[key]=value
批量创建字典 dictname.fromkeys((key1,key2),value) ##注意key1和key2均对应value,不能修改只能重新创建
访问字典中的键,值和项
for eachKey in dictname.keys():
for eachValue in dictname.values():
for eachItem in dictname.items():
dictname.get(key,value) ##如果该键在字典中,则可以访问到对应的值,若不在字典中,则访问此时赋予的值
清空字典 dictname.clear()
拷贝字典 dictname.copy()
弹出字典 dictname.pop(key) ##弹出对应的值,然后该项在字典里被删除
dictname.popitem() ##随机从字典里弹出一项,然后删除该项
dictname.setdefault(key,value) ##如果该键在字典中存在,没有影响,若不在字典中则添加赋予的键和值
更新字典 dictname.update(dict)
3.集合
创建集合 setname={ } ##去掉列表里重复的元素
创建集合 set(list/tuple) ##得到的集合元素时无序的
添加元素 setname.add()
删除元素 setname.remove()
不可变集合 frozenset(set)
4.文件
打开文件 f=open(file,'r'只读,'w'写入,'a'追加)
关闭文件 f.close()
读取字符 f.read(size) ##读取前size个字符,若size缺失或者为负则读取全部字符
f.readline() 读取一行
返回当前位置 f.tell()
修改位置 f.seek(offset,from) ##from 为0从文件开头,为1从当前位置,为2从文件结尾。offset代表便宜的字符
将文件转换为列表 list(f)
将文件打印出来 for eachline in f:
print(eachline)
写入文件 f.write(str) ##打开文件时需要时写入模式
f.wrtelines(list)
操作系统 import os
返回当前目录 os.getcwd()
改变工作目录 os.chdir(' ')
列举指定目录的文件名 os.listdir(' ')
创建目录 os.mkdir(' ')
创建多层目录 os.makedirs(' ')
删除文件 os.remove(' ')
删除目录 os.rmdir(' ') ##只有当文件删除以后才能删除目录
删除多层目录 os.removedirs(' ')
重命名文件 os.rename(old,new)
运行系统的shell命令 os.system(' ')
当前目录用'.'来表示,os.curdir,上一级目录用'..'来表示,os.pardir,系统路径分隔符用'\\'来表示,os.sep,当前使用操作平台os.name
去掉目录名返回文件名 os.path.basename(' ')
去掉文件名返回目录名 os.path.dirname(' ')
组合路径 os.path.join(' ',' ')
分隔文件名和路径 os.path.split(' ')
分隔扩展名和文件名 os.path.splitext(' ')
返回文件的尺寸 os.path.getsize(' ')
返回文件的最近访问时间 os.path.getatime(' ')
返回文件的创建时间 os.path.getctime(' ')
返回文件的修改时间 os.path.getmtime(' ')
时间换算 import time
time.localtime()
判断指定路径是否存在 os.path.exists(' ')
判断指定路径是否是绝对路径 os.path.isabs(' ')
判断指定路径是否存在某路径 os.path.isdir(' ')
判断指定路径是否存在某文件 os.path.isfile(' ')
判断指定路径是否是快捷方式 os.path.islink(' ')
判断指定路径是否是挂载点(硬盘) os.path.ismount(' ')
判断两条路径是否指向一个文件 os.path.samefile(' ',' ')
5.pickle模块
import pickle
创建写入 picklename = open('filename','wb')
写入 pickle.dump(listname,picklename)
关闭 picklename.close()
创建读取 picklename = open('filename','rb')
读取 pickle.load(picklename)
6.异常解决
try:
检测范围
except Exceptionname as reason:
出现异常后的处理
except Exceptionname as reason:
finally:
无论如何都要执行的代码
else语句的用法
和if搭配
和while,for搭配
while/for 条件 :
if 条件 :
break ##执行了break语句则跳出循环并且不再执行else语句
else :
##执行完while语句随后执行else语句
和try ecept搭配
try :
except :
##出现异常执行except语句
else :
##没有出现异常执行else语句
with语句 with open(' ','wb') as f: ##不再需要f.close()