函数
- 定义函数:def 函数名():
- 函数名._doc_ 打印函数文档
- 关键字参数(函数在调用的时候,带上参数的名字去指定具体调用的哪个参数),默认参数(设置默认参数),收集参数(*参数)(元组)
- 局部变量和全局变量名称相同,也是互不干扰的
- Global关键字:将变量变成全局变量
- 内嵌函数:内部函数整个作用域都在外部函数之内
- 闭包:在嵌套函数的情况下,内部函数引用外部函数的局部变量
- Nonlocal:不是一个局部变量
- 在函数中修改全局变量的值应该使用global关键字
- 希望在内部函数中修改外部函数的局部变量,应该使用nonlocal关键字
- 内部函数只能被外部函数调用
- Lambda x:2*x+1 返回一个函数对象
- G = lambda x :2 * x +1
- G(5)
- 11
- Filter(function or none,iterable)过滤器只返回为真的元素,map返回加工后的所有元素
- Filter(none,[1,0,false,true])
- Map
递归
- 在编程上,递归表现为函数调用本身这么一个行为
- 递归必须满足两个基本条件:一、函数调用自身 二、设置了正确的返回条件
- 递归的优缺点:优点:1、递归的思想是把规模大的问题转变为规模小的问题,从而简化问题的解决难度 2、有些问题使用递归使得代码变得简洁
缺点:1、由于递归的原理是函数调用自个儿,所以一旦大量调用函数本身空间和时间消耗是奢侈的 2、初学者很容易错误的设置了返回条件,导致代码无休止调用,最终栈溢出,程序崩溃
分支和循环
- 优先级:幂运算>正负号>算术操作符(* / // + -)>比较操作符 >逻辑运算符(not > and >or)
- If循环:if(执行完还会执行下面的语句)
If-else(很多缩进)
If-elif(执行完可以跳过)
- 三元操作符:语法:x if 条件 else y
Eg:small = x if x < y else y
- Assert 断言:当这个关键字后边的条件为假时,程序自动崩溃并抛出异常
- While循环:语法:while 条件:
循环体
- for循环:语法:for 目标 in 表达式:
循环体
- Range函数:range(5)=range(0,5)
Range(2,9)=2345678
Range(1,10,2)=13579
- Break:终止循环并跳出循环体
- Continue:终止本轮循环并开始下一轮循环