• Python基础(六)


    1.函数

    全局变量:定义在函数外部的变量,能够在所有的函数中被使用

    局部变量:只在函数的内部定义的变量,只作用于函数的内部,因此允许存在相同变量名的局部变量

    全局变量和局部变量同名时,就认为是定义了一个局部变量

    在函数内部修改全局变量:使用关键字global声明局部变量,然后在函数内部进行修改后即是对全局变量进行修改

    2.函数返回值

    如果函数的return后面跟的是多个数据,则默认是元组

    3.缺省参数、不定长参数

    在函数中,如果缺省参数的值没有传入,则调用默认值;在形参中有默认值的参数,称为缺省参数,带有默认值的参数一定要在最后面

    在函数中,有时需要传入大量的数据,需要处理比声明时更多的参数,这些参数称为不定长参数,声明时也不会命名

    在形参中,加入*args、**kwargs来接收实参传递的不定长参数,*args会存放未命名的参数,*args是元组

    **kwargs接收存放实参传递的命名的参数,**kwargs是字典

    在形参中,缺省参数的位置在*args的后面

    4.拆包

    对返回对个值时,需要作出拆包操作,那么拆包的时候,需要拆的数据的个数要与变量的个数相同,否则程序会异常

    除了对元组拆包之外,还可以对列表、字典等拆包

    5.引用

    在函数中,变量是可以被调用的,值是靠引用来传递的。可以使用id()来判断两个变量是否是同一个值的引用,id()的返回值是一个类似内存的地址标识

    6.可变不可变类型

    所谓可变类型与不可变类型是指:数据能够直接进行修改,如果能直接修改那么就是可变,否则是不可变

    可变类型有: 列表、字典、集合

    不可变类型有: 数字、字符串、元组

    7.lambda函数

    lanbda函数,又被称为匿名函数,虽然在语言形式上看起来简便。但是对于刚接触的初学者来说阅读起来并不容易。

    例子:lambda a: a**2 , 2   

    按照通俗的函数写法可以如下:

    def square(a):

      return a**2

    a=square(2)

    好处:

    1. 不需要定义函数名称(临时函数)
    2. 只做简单运算,并返回值,没有复杂的函数体

    8.map()

    map()函数并不多见,但是还是有必要了解一下。map(a,b) 中的a一般是作为一个函数,而b则是作为一个变量类型容器,比如列表,整型等。

    例子:map(lambda a: a**2 , [1, 3, 4, 6])

    结果:[1, 9, 16, 36] 

    作用即对函数中的可迭代的变量类型进行全覆盖的操作

     9.递归函数

    递归函数就是在函数内部调用自己本身,称为递归函数;最典型的递归操作就是斐波那契数列

    10.列表推导式

    列表推导式,就是指的轻量级循环创建列表

    基本方式:a=[x for x in range(0,5) ]    -->     a = [0,1,2,3,4]

    在循环中使用if: a = [x for x in range(0,5) if x%2==0]      -->  a=[0,2,4]

    在两个循环中使用:a = [(x,y) for x in range(1,3) for y in range(3) ]        -->   a = [(1,0),(2,0),(1,1),(2,1),(1,2),(2,2)]

    同理,也可以三个for循环

    例子:请写出一段 Python 代码实现分组一个 list 里面的元素,比如 [1,2,3,...100]变成 [[1,2,3],[4,5,6]....]

    a = [x for x in range(1,101)]
    b = [a[x:x+3] for x in range(0,len(a),3)]
    

    11.set、list、tuple

    set是集合类型

    set、list、tuple之间可以相互转换

    使用set,可以快速的完成对list中的元素去重复的功能

  • 相关阅读:
    如何实现Canvas图像的拖拽、点击等操作
    HTML5新增核心工具——canvas
    Java API 之 Object
    浅显回顾 Java 面向对象的最后方面的知识
    草叶集 | 在看惠特曼的大路之歌时的一些想法
    关于 static 和 final 的一些理解
    面向对象中的一些概念的理解
    关于前面知识的一些试题
    关于方法的一些浅见和对象的一些理解
    数组的一些应用场景
  • 原文地址:https://www.cnblogs.com/zxh1297/p/9445105.html
Copyright © 2020-2023  润新知