美文网首页
day 11总结

day 11总结

作者: 哗啦噼里啪啦 | 来源:发表于2019-01-07 20:11 被阅读0次

    递归函数

    实际开发的时候,能不用递归就不用
    1.什么是递归函数
    函数中调用函数本身的函数就是递归函数

    2.递归的作用:循环能做的事情递归函数都能做
    3.怎么写递归函数:f(n)
    第一步:确定临界值 - 循环结束的条件,在临界值的地方要让函数结束!
    第二步:找关系 - 找当次循环和上次循环的关系;
    找f(n)和f(n-1)的关系
    第三步: 假设函数f的功能已经实现,通过f(n-1)来实现f(n)的功能
    4.循环能做的事情不能使用递归做!

    模块

    1.什么是模块
    在python中一个py文件就是一个模块
    a.系统模块(标准库) -- python系统提供的模块
    random - 提供随机数
    math - 提供数学运算
    json - 提供json数据相关操作
    re - 提供正则表达式相关操作
    socket - 提供python套接字编程相关操作
    time - 提供时间相关操作
    threading- 提供和线程相关的操作
    b.自定义模块-- 程序员自己创建的文件
    自己写的模块
    别人写的模块 - 第三方库
    标准库和第三方库一般是通过模块提供变量,函数,类
    2.怎么使用模块
    import 模块名 -- 在程序中直接导入指定模块,导入后可以使用模块中所有的全局变量
    导入后通过“模块名.变量”来使用模块中的类容

    from 模块名 import 变量1,变量2... - 导入指定的模块导入后只能使用import后面的变量,
    导入后可以直接使用变量,不用再在前面加模块民.

    from 模块民 import *

    3.导入模块的实质:
    a.不管是使用import还是from import ,导入模块的时候都会执行模块中所有的代码
    b.python中一个模块不会重复导入多次,导入的时候系统会自动检查当前模块是否重复导入

    4.怎么阻止模块中的类容被其他模块导入
    if name == 'main':
    函数的调用放在if里面,声明放在外面
    将不希望被其他模块执行的代码放在if语句里面
    如果希望被其他模块调用的代码就放在if语句外面,

    迭代器

    1.什么是迭代器(iter)
    是python提供的容器性数据类型
    获取迭代器元素的时候,只能从前往后一个一个的取,而且取了之后这个元素在迭代器里就不存在爱了

    2.字面量
    迭代器没有指定格式的字面量,迭代求作为容器,里面的元素只能通过其他序列转换,或者通过生成器生成
    3.获取元素
    迭代器中的元素只支持查,不支持增删改
    迭代器只能通过next方法获取当个元素
    通过遍历,获取所有元素
    不管哪种方式获取,已经获取过的元素,在迭代器中就不存在了
    next(迭代器)---获取迭代器中第一个数据(最顶层)
    for in 循环遍历

    生成器

    1.什么是生成器
    生成器就是迭代器,迭代器不一定是生成器。

    2.生成器是怎么产生元素的
    调用一个带有yield关键字的函数就能得到一个生成器
    带yield 的函数:调用的时候不会执行函数体,也不会获取返回值,而是产生一个生成器
    这个生成器中的元素就是yield关键字后面的值
    3.获取生成器的元素
    next() or for in 来获取

    生成器获取元素的时候实质就是去执行生成器对应的函数,每次执行到yield为止,
    并且会将yield后面的值作为当次获取到的元素
    下次获取元素的时候会接着上次结束的位置往后执行,直到下一个yield为止
    以此类推,直到函数结束为止。如果执行到函数结束没有遇到yield那么就会报StopIteration错误

    相关文章

      网友评论

          本文标题:day 11总结

          本文链接:https://www.haomeiwen.com/subject/wiyprqtx.html