Python中的函数概述

1.python中函数概述

概念

模块化编程的思想
有组织,可共享(重复使用,实现特定的功能的代码块)
提高程序的可维护性,提高开发效率,提高代码的重用性

定义一个函数

1.语法:
    def 函数名称(形参列表):
        函数体/代码块
        return 返回值
2.定义参数介绍
def :关键字 用于函数的定义,函数的构建,表示当前正在定义一个函数
函数名称: 函数的名字,方便调用函数
():定义函数,向3函数中传递所有参数    需要在此处定义
函数体:以 冒号开头,缩进表示区域,多行代码组成
return: 表示函数的结束,返回一个结果给调用方,
        可以省略不写,返回一个None
3.函数名称的命名规则
    遵循标识符的命名规则
    不能使用系统内置的函数名称,避免函数的冲突和覆盖

函数的调用

自定义变量 = 函数名称(实参列表)
函数需要调用才执行
调用的次数没有限制

函数的类型

系统内置的函数u()
    print()
自定义函数()

2.函数氵参数

参数的类型

形参: 定义函数时,在()中定义的形式参数,在函数调用时才分配空间,函数调用完毕后回收空间
      形参是有一定的生命周期的
实参: 函数被调用时,在()中填入的参数,实际数据          

2.形参

类型1:普通参数,以正确的顺序和数量声明的参数
类型2:关键字参数,函数调用时使用关键字参数来确定传入的数据,允许函数嗲用是参数顺序和申明时不一致
类型3:默认参数 在调用时,实参可以不传递,当前默认参数需要在普通参数后面定义 

命名关键字参数

这个*就是用来分隔关键字参数和普通参数的
*本身不是一个参数

参数的顺序

普通参数 默认参数 收集参数

在实参前面加上*,会将容器类参数,拆分出来进行传递

4.返回值

有返回值的函数:
    使用 return 返回结果
没有返回值的函数
    执行过程的函数,不需要接受最终的 处理结果+
return 关键字
    返回多个值 也OK

python中函数参数和返回值

python中函数文档

help()查看函数文档
__doc__ 查看函数文档
自定义函数文档
    在函数的代码块的开头使用多行注释 描述函数的说明
    
有一种函数叫做匿名函数,匿名函数就是没有名字呗
    lambda表达式->创建匿名函数
    
    语法:lambda 参数列表 : 函数体(方法体)
    
    案例:
        add = lambda a,b : a+b
        print(add(1,2)        

python中函数参数的传递

python中变量的生命周期

可更改对象和不可更改对象
    可更改对象:在内存中存储的数据是允许更改的
        list dict
    不可更改对象: 在内存中复制一个空间 相当于创建了一个父本一样
        Number String tuple set
        
参数的传递
    传递的参数是不可更改对象: 值传递
    传递的参数是可更改对象: 地址传递

五 变量的生命周期和作用域

变量的作用域

定义在函数内的变量,具有局部作用域
定义在函数外的变量,函数外,具有全局的作用域

作用域

全局变量:
    在函数外部声明的变量,具有全局作用域
    在函数外部和函数内部正常访问和操作
局部变量:
    在函数内部声明的变量,具有局部的作用域
    在函数内部进行访问
    查看当前可以使用的局部变量
    locals() 返回值 字典类型的当前函数的可以使用的局部变量 
    
    globals() 查看当前位置的所有的全局变量

变量作用域的转换

将局部变量转换为全局变量
    global 变量名
    使用global 提升了的变量才是严格意义上的变量,后续可以对其进行各种操作
    而直接在函数外声明的全局变量,只可以才局部进行访问,无法进行修改等而其他 操作
    global 对于当前位置来说,知识当前提升了 
    其他函数也是相当于普通的外部变量,但是无法修改其变量值
    
    
    num1 = 1
    def f1():
        函数内部可以访问,num1,不能修改num1
        在当前位置提升变量的作用域       
    
    def f2():
        num2 = 2,局部变量,在外部访问num2,在当前位置 用global修饰
        就可以在外部访问num2了
        在当前位置,可以修改,无法修改

回顾

重点:
    定义
        格式
    调用
        实际参数 *
    函数文档
        这个可有用的
    函数参数
        各种 类型的参数 的传递
    函数返回值
        多个值的情况
    变量的作用域
        global
    变量的声明周期(可变对象和不可变对象)
        参数的值传递和地址传递
        能不能改的问题

作业

1. 打印1-100之间所有能被7整除但是不能被5整除的所有数
    
2. 简易计算器: 实现 加 减 乘 除
    编写计算器函数 (调用这个计算器函数)        
    
1. 从控制台打印如下图形
    123456
    234567
    345612
    456123
    561234
    612345        
原文地址:https://www.cnblogs.com/victorfengming/p/11930947.html