python编程基础之二十】的更多相关文章

栈和队列: 栈:先进后出,其他没多少特别之处了,一般可以用列表模拟栈,也可以用双端队列,封死一端. 队列:先进先出,也可以用列表模拟,但是一般用库函数,需要导collections 包:主要是为了解决模块重名的问题,包里面一定会有一个__init__.py文件,这个文件目的就是告诉系统这个文件夹是个包,这也是目录和包的区别 模块:模块是代码组织的一种形式,把功能相近的函数方法放到一块,一个.py都是一个模块,模块名需要把.py去掉, 通过sys模块中的sys.path,可以找到系统搜索模块路径,…
偏函数:当一个函数有大量的参数时候,调用时候非常不方便,于是就可以用偏函数解决,将一些参数固定(默认值),达到简化函数调用的目的 使用偏函数需要导入functools import functoolsdef test(a,b,c,d):    print(a, b, c, d)#从前面固定参数,使用位置参数就行,1=>a,2=>btest1 = functools.partial(test,1,2)test1(3,4)  #3=>c  4=>d 变量的作用域:作用域分为局部作用域L…
装饰器:说白了就是闭包,但是内部函数调用外部变量调用的是函数, 好处:就是在不用修改原函数代码的前提下给函数增加新的功能 装饰器有两种写法 第一种: #被修饰的函数 def say_hello(name): print('我就是人见人爱,花见花开的%s'%name) # 参数是被修饰函数 def wrapper(func): #1.定义装饰器 def inner(name): #2.定义闭包 在闭包中增加功能 print('-' * 50) func(name) #3.调用原函数实现原来的功能…
匿名函数:不用def 定义的函数,没有函数名 lambda只是一个表达式,函数体比def简单的多 lambda的函数体不再是代码块 lambda只有一行,增加运行效率 lambda [参数1][参数2][参数3], ... ,[参数n]  :  表达式 函数也属于一种类型:自定义的函数就是一个函数对象,函数名保存的就是函数的地址 def test():    print('我是测试函数') print(test)  #函数名是变量,指向了函数对象pf = test    #pf变量也指向了函数对…
函数: def 函数名([参数1],[参数2],[参数3], ... ,[参数n]): 函数体代码 函数名命名规则:同标识符命名相同,但是多了一点,不要和系统函数重名,其实所有命名都是一样只要符合标识符命名,然后不要和系统的各种名字相同就行,但是每一种命名一般都有自己不同的风格,函数名命名风格一般是用下划线分隔法 函数参数分为:位置参数,关键字参数,默认值参数,可变参数, 函数形参位置关系:从左至右应该依次是:位置参数,关键字参数,默认参数,可变参数 位置参数:就是要按照顺序,来传参, 关键字参…
字典:字典属于可变对象,但是不属于序列,内部是通过哈希方式存储的,内部保存的是一个个键值对key:value 字典的键是唯一的, 字典查找速度比较快 d1 = {}  #括号里面用键值对表示 d2 = dict() d3 = dict([(1,2),(3,4)]) d4 = dict({'1':'2','3':'4'}) 元素访问:字典名[key]  用键来访问 字典名.get(key) 用内置方法访问 添加元素:字典名[key] = value  当字典中找不到key的时候,就会直接增加一个键…
字符串的其他常用方法: ord(char)  # 返回char字符对应的码值,可以是中文字符 chr(x)  # 输入一个unicode码,返回对应的字符 eval(str)  # 将str 中的内容以代码的形式返回 repr(x) 返回对象的str格式,适合机器执行 字符串格式化 %格式化: %[flags][width][.precision]typecode format格式化: [fill][align][sign][#][width][.precision][type] fill :填…
交互式: 此处以windows为例:开始->运行->cmd,输入python 交互式界面 优点:即时,所见即所得 缺点:代码不可复用,根本无法进行维护 退出:exit() 代码是顺序执行: 从左至右,从上至下 python文件以  .py  结尾 python允许一行多句,每一句之间用分号(:)分隔,但是建议一行一句不使用分号 文件名尽量不要使用中文,print输出的时候可以使用中文,文件名不能使用空格python编码规范遵循PEP8(https://www.python.org/dev/pe…
列表生成式:[exp for iter_var in iterable] 同样也会有字典生成式,集合生成式,没有元组生成式,元组生成式的语法被占用了 字典生成式,集合生成式,就是外面那个括号换成{}  字典里面一个个是键值对,集合可以与之区分 生成器:有两种写法: 一种就是写一个生成式放到()里面,这就是一个生成器, #将列表生成式中的[]替换成() ge = (x for x in range(1,6)) print(ge,type(ge)) #生成器需要通过next()方法获取数据,调用一次…
集合:和数学里面完全一样的,不允许有重复元素,如果添加重复元素,就会被过滤,可以进行交并差的运算  集合是可变对象 本质:无需且无重复的数据结构 创建集合 s1 = set()  括号里面可以放可迭代对象,当给的是字典,则会吧字典的键存入,不可以放单个元素值 s2 = {1,2,3,4}  #空集合不可以直接一个大括号,因为大括号表示字典 集合元素的增加 s1.add() 括号里可以放可迭代对象,也可以具体的元素值 s1.update()括号里面加 集合元素的删减s1.discard()里面写需…