函数
函数是Python中非常重要的概念,函数可以将代码封装起来,方便重用。
函数的定义
函数是组织好的,可以重复使用的。用来实现单一,或者复杂的代码逻辑,可以将函数看作是一个小的代码块。 函数可以自己定义,也可以调用python内置函数。 函数定义的格式如下:
自定义函数
-
def 函数名(参数列表): 2.函数参数和自变量必须放在括号()内。 3.函数飞调用不运行。 4.函数的返回值:函数执行完后,返回的内容会返回给调用者。 5.函数的调用:函数名() 6.函数的参数: 形参 实参
函数的参数
函数的参数分为两种: 1.形参 :**def 函数名(形参)** 具有实际意义的 在函数定义的时候,函数名+参数列表 2.实参 :**函数名(实际参数)** 具有实际意义的 3.位置参数: 它跟函数中的参数对应起来。保持一一对应. 4.关键字参数: 以形参作为关键字,不论参数的位置 def sum_num(num1, num2): res = num1 + num2 print(res) num_input1 = int(input("请输入第一个数:")) num_input2 = int(input("请输入第二个数:")) sum_num(num2=num_input2, num1=num_input1) 5.默认值参数 (1) 直接在形参处来进行赋值,调用是就可以不传入参数,使用默认值。 (2) 如果按照参数类型进行传递,会覆盖默认值 6.可变长度参数 (1)在形参前 加 * 代表不定长参数 ~~~.python def average(*args): sum_num = 0 for i in args: sum_num += i print(sum_num) print(f"平均值为:{sum_num / len(args)}") average(1.5, 2, 3, 4, 4, -2.5) (2)** 代表传入的类型为字典类型 注意:代表传入的值为字典类型 def demo(**num): print(num) demo(a=1,b=3,c="ss",d=[1,2,3,4,5])
1.无参无返回值的函数
def eat(): print('今天中午吃什么?')
###函数的调用 函数名()
eat() 控制台 今天中午吃什么?
2.有参无返回值的函数
##有参无返回值 def study(name): print(f'{name}在学习python') study('小明') **控制台** 小明在学习python
3.无参有返回值的函数
##无参有返回值 def study(): name="小吴" return name #接受返回值 res=study() print(res) **控制台** "小吴"
4.有参有返回值的函数
##有参有返回值 def sum_num(num1,num2): return num1+num2 #接受返回值 res=sum_num(1,1) print(res) **控制台** 2
5.可变类型的参数 和 不可变数据类型的参数
不可变数据类型的参数: 它在函数体内被修改后,相当于开辟了一块新的内存。 函数体内的会被修改,函数体外的不会被修改。我们可以将函数体内的修改 后的数据return返回给调用处。调用处可以接收这个返回值并将其赋值给其他变量 进行其他的操作。
可变数据类型的参数:函数体内的修改后,会修改函数体外的数据。 如:list() set() dict() 函数体内对这些数据类型进行修改,函数体外的数据也会被修改。
函数的调用
函数名()--------------------函数名+英文括号
函数的返回值
使用单个返回值,两个函数接,互相使用了内部的变量,就可以设置返回值。 注意: 1.return 后面跟要返回的内容 2.将内容返回到函数的调用处,进行接收 3.如果没有返回值,函数接收时;使用默认返回参数None 也被称为隐含返回值。 多个返回值传参 注意返回的值要是 元组格式,调用处取值时按照索引取值。
函数的作用域
1.L (local) : 局部变量,在函数中未定义的变量 2.E (Enclosing) : 嵌套在父级元素局部的作用域 3.G (global) : 全局变量 4.B (bulid-in): 内建作用域
如果需要局部变量更改全局变量,需要使用global关键字声明。 ==注意,global只能修饰没有被赋值的变量
def demo(): # global a a = 30 # print(a) return a res = demo() print("demo函数中的a值为:", res) print("最外层的a值为:", a)
重点 定义在函数内部的变量,局部变量 定义在整个py文件里面的,代表的是全局的作用域 局部变量:无法修改全局变量
####