1. 本节学习体会、心得
尽量少地处理文件或操作数据库(用户信息和锁定状态写到同一个文件,减少文件操作)
名词是数据,动词是算法
程序是数据+算法
数据结构设计的好坏,直接影响了算法的实现复杂度
编码规范,PEP8
应不断地优化自己的代码,阅读他人优秀的思路
2. 学习到的知识点总结函数
函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()等。也可以创建用户自定义函数。
函数定义的简单规则:
函数代码块以def关键词开头,后接函数标识符名称和圆括号(),任何传入参数和自变量必须放在圆括号中间。函数内容以冒号起始,并且缩进。若有返回值,Return[expression] 结束函数;不带return 表达式相当于返回None。函数通常使用三个单引号 ‘‘‘......‘‘‘来注释说明函数:函数体内容不可为空,可用pass来表示空语句。
函数调用
定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。
通过return语句返回函数的返回值
函数体内的语句执行到return时,函数就执行完毕,并将结果返回;如果函数体内没有return语句,函数执行完毕后返回None;也可以直接写成return None,该语句可简写为return;另外python中函数可以返回多个值。
函数的参数
python的所有变量其实都是指向内存中的对象的一个指针,都是值的引用,而其类型时跟着对象走的。在python中,string,tuples和numbers时不可变对象,而list,dict等则是可以修改的对象。普通参数的传递并没有个数和数据类型的限制,可以传递字符串,数字,列表和字典。也不限定个数,需要注意的是:函数需要多少参数,调用的时候就要按照它定义时的顺序和数据类型传递过去。默认参数是给参数加上一个默认的值,但我们调用函数的时候,如果传递了这个参数,那么使用我们传递过来的值;如果不传则使用默认的值,默认参数可以有多个,但是必须放在所有参数的最后。当我们有多个默认参数的时候,调用函数的时候可以使用参数名指定其中的某一个参数,以保证参数能准确的传递给被调用的函数。def func(*args) 接受多个参数,内部自动构造元组,序列前加*,避免内部构造元组;def func(**kwargs) 接收多个参数,内部自动构造字典,序列前加**,直接传递字典;def func(*args,**kwargs):接受多个参数,既可以自动构造元组,又可以自动构造字典。
装饰器
装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象。有了装饰器,我们就可以抽离出大 量与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。装饰器还有更大的灵活性,例如带参数的装饰器。装饰器的语法允许我们在调用时,提供其它参数。
原文:https://www.cnblogs.com/fishyfishy/p/9242758.html