zoukankan      html  css  js  c++  java
  • 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函数

  • 相关阅读:
    poj 2728 Desert King
    uva 439 Knight Moves
    hdu 1875 畅通工程再续
    scau实验题 8600 骑士周游问题(有障碍物)
    scau实验题 8596 Longest Ordered Subsequence
    poj 1679 The Unique MST
    uva 527 Oil Deposits
    poj 2533 Longest Ordered Subsequence
    .net 程序员 java 开发入门
    Collation conflict occur at operation on User define funtion & table's column
  • 原文地址:https://www.cnblogs.com/Tempt/p/9987711.html
Copyright © 2011-2022 走看看