Python脱产8期 Day014 2019/4/28】的更多相关文章

一 带参装饰器 1.通常,装饰器为被装饰的函数添加新功能,需要外界的参数 # -- outer参数固定一个,就是func # -- inner参数固定同被装饰的函数,也不能添加新参数 # -- 可以借助函数的嵌套定义,外层给内层传参 2.例子解析: def wrap(info): def outer(func): # info = 0 def inner(*args, **kwargs): print('新:拓展的新功能,可能也需要外界的参数%s' % info) res = func(*arg…
一 函数的嵌套定义 1在一个函数的内部定义另一个函数. 2.为什么有函数的嵌套定义: # 1)函数fn2想直接使用fn1函数的局部变量,可以讲fn2直接定义到fn1的内部,这样fn2就可以直接访问fn1的变量# 2)函数fn2名字就变成fn1的局部变量了,正常只能在fn1中使用,想在外部使用,可以讲fn2函数对象作为fn1函数的返回值# 3)在外部也用同名的变量fn2来接收fn1函数的执行结果(fn1函数的返回值),那么fn2也就是可以在外部被调用 二 global关键字 # 作用:将局部的变量…
一 函数默认值的细节 1.如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值 例: a = 100def fn(num=a): print(num) # 100a = 200fn() 二 三元表达式:就是if...else...的语法糖 # 三目运算符:用于简化 if...else...的语法结构 # -- 1) 只能解决if...else...结构,其他if分支结构都不管# -- 2)一个分支提供一个结果: 如果一个分支提供了多个结果, 将多个结果通过元组返回…
一 函数 1.定义:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数>>工具. 2.函数的优点:1.避免代码的冗余:2.让程序结构代码更加清晰:3.让代码更加具有复用性,便于维护. 3.函数的组成:1.函数名:使用函数的依据:2.参数:完成功能的需要的条件信息.3函数体:完成功能的代码块.4.返回值:功能完成的返聩结果 5def:定义函数的关键字. 二 函数的使用 1.注意:函数必须先定义后调用. 2.使用的函数: 1.根据需求定义函数 2.通过函数名找到函数所在位…
一 变量的命名规范 1.只能由 字母, 数字,  _, 组成. 2. 不能以数字开头 3.避免与系统关键字重名:重名不会报错,但系统的功能就被自定义的功能屏蔽掉了(严重不建议这样来做) 4.以_开头的变量都有特殊含义5.以__开头与结尾的叫魔法变量:内置变量 命名风格:6.纯小写加下划线(在python中,变量名的命名推荐使用该方式) age_of_oldboy=73 8.支持大驼峰体和小驼峰体 owenName | OwenName 二 常量 python中没有严格的常量语法: -- 常量:在…
一 字符串比较 1.字符串比较:字符串对应的ascii进行比较 2.多个字符的字符串进行比较:从前往后逐个字符进行比较,一旦哪个位置的字符出现了大小关系就结束比较. 二 形参与实参 1.参数介绍: 函数为什么要有参数:因为内部的函数体需要外部的数据怎么定义函数的参数:在定义函数阶段,函数名后面()中来定义函数的参数怎么使用函数的参数:在函数体中用定义的参数名直接使用 2.实参:有实际意义的参数 -- 在函数调用的时候,()中传入的参数形参:参数本身没有意义,有实参赋予形参值后,该形参就具备了意义…
内存管理 一.引用计数:垃圾回收机制的依据 1.变量的值被引用,该值的引用计数 +12.变量的值被解绑,该值的引用计数 -13.引用计数为0时就会被垃圾回收机制回收 二.引用计数会出现循环引用问题:相互引用无法释放 1.两个变量引用其值,值之间又相互引用 2.变量与值进行解绑,但是值之间还存在相互引用,导致值得引用计数永远 >0 3.引用计数>0的值永远无法被引用计数机制回收,导致内存泄露 三.标记清除:解决循环引用问题 # 所有线程能访问到的栈区变量,称之为 gc roots对象1.所有gc…
一.三种字符串 1.普通字符串:u'以字符作为输出单位‘  #print(u‘abc’)#用于显示 2.二进制字符串:b'以字节作为输出单位’#用于传输 3.原义字符串:r‘以字符作为输出单位,原样输出’ 二 .文件操作的三步骤 1.打开文件:硬盘空间被操作系统持有,文件对象被应用程序持有 2.操作文件 3.释放文件:释放操作系统对硬盘空间的持有 三 .基础的读 1. f = open('source.txt', 'r', encoding='utf-8')f.read() # 将所有内容一次性…
一 数据类型的相互转化 1.哪些类型可以转换为数字类型 2.数字转换为字符串 print(str(10)) 3.字符串与列表相互转换 1.字符串转化为列表:list(字符串) 2.列表转换为字符串:''.join(列表) 4.字符串切割成列表:字符串.splist()    字符串.splist(字符串里的值) # s1 = 'a b c 1 2 3 呵 呵'# res = s1.split() # 默认按空格拆>>字符串切割成列表s1 = 'a b c 1 2 3 呵 呵'res = s1.…
一 深浅拷贝 例:ls = [1, 'abc', [10]] 1.值拷贝:s1 = ls    # ls1直接将ls中存放的地址拿过来,>ls内部的值发生任何变化,ls1都会随之变化. 2.浅拷贝:ls2 = ls.copy()  # ls内部的可变类型值发生改变,ls2会随之变化3.3.深拷贝:ls3 = deepcopy(ls)  # 新开辟列表空间,ls列表中的不可变类型的地址直接拿过来,但是可变类型的地址一定重新开辟空间, ls内部的所有类型的值发生改变,ls3都不会随之变化 二 元组类…