python课堂整理12---递归】的更多相关文章

一.list   类, 列表 li = [1, 12, 9, "age", ["大白", "小黑"], "alex"] 1. 中括号括起来 2. 逗号分割每个元素 3. 列表中的元素可以是数字.字符串.列表.布尔值等 4. 索引取值 5. 切片取值---->得到的还是列表 6. for循环 7. while 循环 8. 支持 in 操作 列表在内存中是以链表形式存储,可以被修改 二.列表灰魔法 1.修改 li = [1,…
  1.变量 变量只能由字母.数字.下划线组成 特例:1.变量不能用数字开头    2.不能是python的关键字 3.最好不要和python内置的东西重复 让变量名有意义 些 python3的关键字如下: False, None, True, and, as, assert, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is lambda, n…
一.概念 • 迭代器协议: 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么引起一个stopIteration异常,以终止迭代(只能往后走,不能往前退) • 协议是一种约定,python中的 for sum min max map reduce 等,使用迭代器对象访问对象 • 迭代器就是可迭代对象 • 可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__(方法)) next()函数,next -------->iter_l.__next__(), 本…
一.b模式,字节方式(二进制的单位),rb wb ab f = open('test.py', 'rb', encoding = 'utf-8') 报错,因为用了b模式,就不能再指定编码格式了,已经指定读成二进制. f = open('test.py', 'rb') data = f.read() print(data) 因为test文件内容是以utf-8的格式写入的,一个中文占三个字节 在Windows下,换行符就是 \r\n #字符串------->转为二进制-------->硬盘 即:‘…
1. abs :求绝对值 print(abs(-1)) 2. all()传入一个可迭代对象,对该对象进行bool值运算,若都为True 就返回True,有一个为假,就返回False print(all([12,'asds',345])) print(all('')) #特例 若参数为空也返回True print(all((0,))) print(all([])) 3. any () 和all()相反,只要有一个为真就返回Ture print(any([1231, 0])) print(any([…
一.分类 当下主流的编程方法大体分为三类 1. 面向过程 2. 函数式 3. 面向对象 二.函数式编程:函数式 = 编程语言定义的函数 + 数学意义的函数 特征:1. 不可变数据 2. 第一类对象 3. 尾调用优化(尾递归) 例一.不可变:不用变量保存状态,不修改变量 #非函数式 a = 1 def test1(): global a a += 1 return a b = test1() print(b) #函数式 n = 1 def test2(n): return n + 1 print(…
一.递归特性 1.必须有一个明确的结束条件 2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少 3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会 减少一层栈帧,由于栈的大小不是无限的,所以递归调用的次数越多,会导致栈溢出) 二.一个简单的递归 def calc(n): print(n) if int(n / 2) == 0: return n res = calc(in…
一.局部变量与全局变量 1. 没有缩进,顶头写的变量为全局变量 2. 在子程序里定义的变量为局部变量 3. 只有函数能把变量私有化 name = 'lhf' #全局变量 def change_name(): name = '大帅比' #局部变量 只在这一段函数里生效 print(name) #先从当前作用域找name,找不到再往外层找 change_name() print(name) 二.修改全局变量 1.  global 总是把最外层的全局变量拿来用 NAME = 'lhf' def cha…
一.字符串格式化(% 和 format) 1. % s  主要接收字符串类型,也可以接收任意类型 tp1 = "i am %s my hobby is alex" % 'lhf' print(tp1) tp1 = "i am %s my hobby is %s" % ('lhf', 'dabai') print(tp1) . tp1 = "i am %s my age is %d" % ('lhf', 11) tp2 = "1 am %…
前面小节: sep 用来控制每个元素间的间隔符号 print("alex", "dabai", "liu", sep = "") 按可变不可变: 1.可变:列表,字典 2.不可变:字符串, 数字, 元组 修改了变量的值,而id号跟着改变,即不可变类型 name = 'alex' print(id(name)) name = 'sb' print(id(name)) 按访问顺序: 1.顺序访问:字符串, 列表, 元组 2.映射:…