zoukankan      html  css  js  c++  java
  • python之函数入门

    python之函数入门

      一. 什么是函数
      二. 函数定义, 函数名, 函数体以及函数的调用
      三. 函数的返回值
      四. 函数的参数

      五.函数名->第一类对象

      六.闭包

    一,什么是函数

        函数: 对代码块和功能的封装和定义

    二. 函数定义, 函数名, 函数体以及函数的调用

        我们使用def关键字来定义函数

        函数的定义语法:  def 函数名()

                  函数体

    如下

    def fuc():
        lst=[1,2,3,4,5,6,7,8,9]  #函数体
    fuc()  #函数的调用

        这里的函数名的命名规则和使用和变量基本一样

        函数体: 就是函数被执行之后要执行的代码

        函数的调用: 使用函数名可以调用函数, 写法: 函数名(), 这个时候函数的函数体会被执行

    三. 函数的返回值

        执行完函数之后. 我们可以使用return来返回结果.

    如下:

    def fuc():  
        ls= []
        lst= [1,2,3,4,5,6,7,8,9]
        for i in range(len(lst)):
            if int(i) % 2 ==0:
                ls.append(lst[i])
        return ls    #返回值
    
    ls_1=fuc()
    print(ls_1)

        函数中return的使用:
          1. 函数中遇到return, 此函数结束, 不再继续执⾏.      

          2. 关于返回值:          

            如果return什么都不写 或者 干脆不写return .那么返回的就是None          

            如果return后面写了一个值. 则调用者可以接收一个结果          

            如果return后面写了多个结果, 则调用者可以接收一个tuple, 调用者可以直接解构成多个变量

    四. 函数的参数

        参数, 函数在调用的时候指定具体的一个变量的值. 就是参数

        参数语法:  def 函数名(参数列表):
                函数体

    def func(形参)
        a = 10
    ret=func(实参)
    

      

    关于参数:
    1. 形参
      写在函数声明的位置的变量叫形参. 形式上的一个完整. 表示这个函数需要xxx
    2. 实参
      在函数调用的时候给函数传递的值. 叫实参, 实际执行的时候给函数传递的信息. 表示给函数xxx
    3. 传参
      给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.

    参数的分类:

      在实参的角度来看. 分为三种:
        1. 位置参数
        2. 关键字参数
        3. 混合参数, 位置参数必须在关键字参数前面

      在形参的⾓角度来看,
        1. 位置参数
        2. 默认值参数(大多数传进来的参数都是一样的, 一般用默认参数)

    五.第一类对象-> 函数名 -> 变量名 

    • 函数名可以像变量一样进行赋值

    • 还可以作为列表的元素进行使用

    • 还可以作为返回值返回

    • 还可以作为参数进行传递

    例子1.

    def func1():
        print("字符串")
    
    def func2():
        print("列表")
    
    def func3():
        print("字典")
    
    def func4():
        print("元组")
    
    lst = [func1, func2, func3, func4] # 函数+() 就是调用.
    print(lst)
    
    for el in lst: #  el是列表中的每一项.
        el() # 拿到函数. 执行函数
    

     例子2.

    def wrapper():
        def inner():
            print("哈哈哈")
        return inner  # 函数名可以像返回值一样返回
    
    ret = wrapper()#这里的ret就是inner
    ret() # 在函数外面访问了函数内部的函数
    

      例子3代理proxy.

    # 函数可以作为参数进行传递
    def func1():
        print("字符串")
    
    def func2():
        print('列表')
    
    def func3():
        print('字典')
    
    def func4():
        print("元组")
    
    # proxy即代理. 装饰器的雏形
    def proxy(a): # a就是变量. 形参
        a()
    proxy(func1)#把func1赋值给a
    proxy(func3)#把func2赋值给a
    proxy(func4)#把func3赋值给a
    

    六.闭包

      闭包 -> 函数的嵌套
      内层函数对外层函数中的变量的使用  

      闭包的优点:

        1, 可以保护变量不被其他人侵害

        2, 保持一个变量常驻内存

    def wrapper(): name = "周杰伦" # 局部变量常驻与内存 def inner(): print(name) # 在内层函数中使用了外层函数的局部变量 return inner # 返回函数名 ret = wrapper() # ret是一个内层函数 ret() # ret是inner, 执行的时机是不确定的, 必须保证里面的name必须存在

      如何通过代码查看一个闭包
        __closure__: 有东西就是闭包. 没东西就不是闭包

      

       

     

  • 相关阅读:
    Android自定义之仿360Root大师水纹效果
    Android之TextView的Span样式源码剖析
    Android之TextView的样式类Span的使用详解
    随着ScrollView的滑动,渐渐的执行动画View
    仿微信主界面导航栏图标字体颜色的变化
    android自定义之 5.0 风格progressBar
    Android性能优化之内存篇
    Android性能优化之运算篇
    How to install Zabbix5.0 LTS version with Yum on the CentOS 7.8 system?
    How to install Zabbix4.0 LTS version with Yum on the Oracle Linux 7.3 system?
  • 原文地址:https://www.cnblogs.com/l1222514/p/10077063.html
Copyright © 2011-2022 走看看