python学习笔记(二)

模块和包
模块(Module):模块是一个python文件,以.py结尾,包含了python对象定义和python语句
包(Package):python中的包就是一个包含_init_.py文件的目录(文件夹)
 
模块导入
1.import 模块名
2.from XXX import XX
包导入
1.from 包名 import 模块名
2.from 包名.模块名 import 函数名(变量名)
 
文件内容读取
read():
readline():读取一行内容
readlines():按行读取所有的内容,每一行作为一个元素,放入列表中
r:只读内容,文件不存在会报错
 
文件的打开与关闭
打开:open('文件名','模式')
关闭:close()
 
文件内容写入
write:写入数据(内容必须是字符串)
writelines:写入多条数据(内容是可迭代对象:列表)
w:以写入的方式打开文件(文件不存在,创建一个新的文件,文件存在,清空原先的内容,重新写入)
a:以写入的方式打开文件(文件不存在,创建一个新的文件,文件存在,在原内容尾部,追加写入)
 
os模块:可以处理文件和目录,是Python系统和操作系统进行交互的一个接口
os模块常用方法:
  os.getcwd():  获取当前工作目录,(即当前Python脚本工作的目录路径)
  os.chdir('dirname'):  改变当前脚本的工作目录,相当于shell下的cd
  os.system('bash command'):  运行shell命令,直接显示(相当于启动一个全新的shell,然后去执行那条命令,命令执行完成过后,shell直接退出)
 
异常处理
try:放有可能会出现错误的代码
except:try里面的代码出现了错误之后,对错误处理的代码
else:try中的代码没有发生错误,执行else中的代码
finally:不管try中的代码有没有发生错误都会执行
 
raise 语句的基本语法格式为:
raise [exceptionName [(reason)]]
其中,用 [] 括起来的为可选参数,其作用是指定抛出的异常名称,以及异常信息的相关描述。如果可选参数全部省略,则 raise 会把当前错误原样抛出;如果仅省略 (reason),则在抛出异常时,将不附带任何的异常描述信息。
 
也就是说,raise 语句有如下三种常用的用法:
  1. raise:单独一个 raise。该语句引发当前上下文中捕获的异常(比如在 except 块中),或默认引发 RuntimeError 异常。
  2. raise 异常类名称:raise 后带一个异常类名称,表示引发执行类型的异常。
  3. raise 异常类名称(描述信息):在引发指定类型的异常的同时,附带异常的描述信息。
 
 
函数的返回值:只需要在函数中使用关键字return,后面跟着的就是指定要返回的值
形参和实参:形参指的是函数定义的过程中小括号里的参数
实参指的是函数在被调用的过程中传递进来的参数
函数文档:函数的文档字符串可以通过特殊属性_doc_获取,也可以通过help()函数来查看函数的文档
关键字参数:在传入实参时明确指定形参的变量名
局部变量:定义在函数内部的变量是局部变量,局部变量的作用范围只能在函数内部生效,不能在函数外被引用
全局变量:在整个函数中都可以访问到,但不要试图在函数内部修改全局变量的值,因为Python会创建一个新的局部变量替代(名字与全局变量相同),但真正的全局变量是不动的
内嵌函数:在函数内部定义另一个函数,也称为内部函数。内部函数整个作用域都在外部函数之内。
内部函数可以引用外部函数的局部变量
闭包:如果在一个内部函数里,对在外部作用域但不是在全局作用域的变量进行引用(就是在嵌套函数的环境下,内部函数引用了外部函数的局部变量),那么内部函数就被认为是闭包
lambda关键字:语法是使用冒号(:)分隔函数的参数及返回值,:冒号的左边放置函数的参数,如果有多个参数,使用逗号(,)隔开,冒号右边是函数的返回值
filter()函数是一个过滤器,作用就是再海量的数据里面提取有用的信息。 包含两个参数,第一个参数可以是函数也可以是None,如果是一个函数,则将第二个可迭代对象里的每一个元素作为函数的参数进行计算,把返回True的值筛选出来;如果第一个参数为None,则直接将第二个参数中为True的值筛选出来。
map()内置函数是映射函数,包含两个参数,也是一个函数和一个可迭代对象。将可迭代对象的每一个元素作为函数的参数进行运算加工,直到可迭代序列每个元素都加工完毕
 
字典:用大括号({})定义,有键和值共同构成,每一对键值组合称为项。字典的键必须独一无二,但值不必,值可以去任何数据类型,但必须是不可变的,如字符串,数或元组
也可以使用dict()内置函数来创建字典。字典不允许同一个键出现两次,如果同一个键被赋值两次,后一个值会被记住
字典的内置方法:
1.fromkeys(seq[,value])
formkeys()方法用于创建并返回一个新的字典,它有两个参数:第一个参数是字典的键;第二个参数是可选的,是传入键对应的值,如果不提供,那么默认是None
2.keys(), values(), 和 items()
keys()用于返回字典中的键,values()用于返回字典中所有的值,items()用于返回字典中所有的键值对
3.get(key[,default])
当键不存在时,get()方法不会报错,会默认返回一个None,表示啥都没找到。如果希望找不到数据时返回指定的值,可以在第二份参数设置对应的默认返回值。
如果不知道一个键是否在字典中,可以使用成员操作符(in或not in)来判断
4.copy()
copy()方法是用于拷贝(浅拷贝)整个字典
5.pop(key[,default])和popitem()
pop()是给定键弹出对应的值,popitem()是弹出一个项
6.setdefault(key[,default])
setdefault()与get()方法类似,但是setdefault()在字典中找不到对应的键时会自动添加
7.update([other])
用来更新字典
 
集合:用大括号{}括起来一堆数字但没有体现出映射关系,就是一个集合
创建集合:一直接把一堆元素用大括号{}括起来,二用set()内置函数
由于set()创造的集合内部是无序的,再调用list()将无序的集合转换成列表就不能保证原来的列表顺序了
不可变集合:使用frozenset()函数定义的集合
 
OS模块--os.函数()
1.os.getcwd():获得应用程序当前的工作目录
2.os.chdir(path):改变当前工作目录
3.os.listdir(path='.'):列举当前目录下有哪些文件和子目录,path参数用于指定列举的目录,默认值是‘.’,代表当前目录。也可以使用'..'代表上一层目录
4.os.mkdir(path):用于创建文件夹,如果该文件夹存在,则跑出FileExistsError异常
5.os.makedirs(path):可以用于创建多层目录
6.os.remove(path),os.rmdir(path)和os.removedirs(path)
remove()函数用于删除指定的文件,注意是删除文件,不是删除目录
rmdir()函数用于删除目录。
removedirs()函数用于删除多层目录
7.os.rename(old,new):用于重命名文件或文件夹
8.os.walk(top) :用于遍历top参数指定路径下的所有子目录,并将结果返回一个三元组(路径,[包含目录],[包含文件])
 
 

处在这个俗世,也得让自己变得更好吧
原文地址:https://www.cnblogs.com/butaileng7/p/14345958.html