• Python复习知识点(三)


    • 循环结构

    一,while循环

            使用方式和之前学的一致,这里只说新加入的

            while...else    当while语句条件为false时候执行else    (else和while平级)

    二,for循环

            和之前的有差别,它支持序列和迭代器作为参数

            简单用法:

     新增的for-else语句

                和while-else用法一致    for -  else中 for 和else是平级关系,在for循环结束后,会执行else语句

    • 函数定义

                def关键字开头,后面接函数名,函数名后面接()参数列表。还有冒号起始

                函数体要缩进,函数可以不写return,不写默认返回None,函数返回值可以是列表

            这里对python函数参数的问题分析分析:

            首先要明白python中,类型属于对象,而变量是没有类型的。对于这句话的理解看一下代码

            a= [ 1 , 2 , 3 ]

            a= " Runoob "

            以上代码中,[1,2,3]是List类型,而" Runoob "是string类型。变量a是没有类型的,她仅仅是一个对象的引用

            它可以是list,也可以是string

            明白了上面的理论,再回过头来看函数参数的问题,传参的类型可以是可变类型,也可以是不可变类型

            可变类型:列表,字典

            不可变类型:string  tuples  number都是不可变的

             那具体什么叫可变,什么叫不可变。这就和上面提到的类型属于对象,变量没有类型 有关系

            不可变类型:          

                      例如 a=10,    然后我们在赋值  a=5    这里实际是新生成了一个对象 10(int类型),然后我们让a去指向了它

                      我们并没有改变a的值,只是让他重新指向了一个值,之前的5被丢弃了

             可变类型:

                        list=[1,2,3,4] 我们现赋值list[2]=10      这里将第三个元素的值改变了,但是!list本身并没有动,它只是内容的一部分被修改了

      

              综上理论,我们可以得出:我们在函数传参的时候

              1.    如果传入的是不可变类型(类似于c++的值传递),我们传递进去后,函数内无论怎么去改变这个参数的值,都不会影响原有的参数  

                                def   fun ( a ) :

                                         a=10

                                b=2

                                fun(2)

                                print ( b )            #这里输出的还是2,我们并没有去改变b        (这是传入不可变类型的对象)

                2.    如果传入可变对象的时候,就相当于我们在传c++中的引用传递,我们如果穿list 或者字典。在函数里面去修改值,原来的参数也会随之发生改变

            匿名函数

        我们使用lambda来创建匿名函数,它只是一个表达式,我们可以在调用的时候给他传参,用法如下

    • 全局局部变量

            分三个例子说明变量作用域问题:

        例1:

     例2:global声明全局变量

    例3:nonlocal声明嵌套函数内部修改局部变量(python3中适用)

    • 模块

        模块是一个python文件,以py结尾

        导入模块的方式有三种:

        1.    import + 模块名

               我们在使用的时候就可以使用 模块名 . 函数名

                一个模块导入只有一次,无论执行多少次import

        2.    from 模块名 import 对象名

            这个声明是将部分我们需要导入的函数或者变量导入进来

        3.    from 模块名 import *

            将一个模块所有内容导入进来

    • 异常处理

         我们可以使用try+except来捕获异常

        我们只需在try中执行我们需要保护的代码,在except中去测试是否有误,如果有误我们也不会终端我们的代码

    如果在except中不写错误类型,我们就默认所有错误类型

        try-finally 机制,为finally里面的代码块无论如何都会执行,哪怕前面有return 退出函数,他也会执行完finally代码后,再去return   

        我们也可以自己去主动抛出异常,让except捕获:

    Python中特殊语法:

    闭包:    在函数嵌套中使用

    filter函数用于过滤序列,过滤掉不符合条件的元素

        filter ( function, 可迭代对象)        其中函数为判断函数,将结果为真的组成一个序列返回

    reduce函数,用于对参数序列中元素进行累积(这里不能理解为累计相加!,用传给reduce中的两个元素进行操作,得到*的结果在于第三个数据给函数运算,最后得到一个结果

    map函数,会对指定序列进行函数操作,并返回一个列表

    • Python中时间日期time模块,random模块

        这里简单的知道

    显示本地相应时间:

        import    time                导入time模块

        print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime() ))

     

    • 文件操作

    文件操作和c语言的文件操作基本一致

    我们进行文件操作必须先的到一个文件对象,才能去进行相关的操作

        先来看open函数

  • 相关阅读:
    如何使用Python进行机器学习?
    存储bag文件并转csv,一键启动思路、默认python3
    EZMISC
    Dhtmlx Event Calendar 付费版使用
    svg之全局组件,配合雪碧图解决vue2的svg优化问题
    ASO优化如何做?3个核心要点必须掌握
    BI 如何让SaaS产品具有 “安全感”和“敏锐感”(上)
    java计算机毕业设计机械生产企业办公设备管理系统源码+mysql数据库+系统+lw文档+部署
    线性代数复习CH2:矩阵
    AWS无服务器 应用程序开发—第十六章 CI/CD CodeBuild
  • 原文地址:https://blog.csdn.net/sinat_40572875/article/details/127859180