第七章 Python中的函数
一、Python中的函数参数的使用
1、为什么要使用函数
(1)基本概念:
在实现大型项目时,往往会将需要重复使用的代码提取出来,将其定义为函数
(2)I、内置的标椎函数:本身自带的函数,可直接使用
II、自定义函数:即通过将一段有规律的,重复的代码定义为函数
I、内置函数 直接调用
print() 、input() 、sum() 、avg() 、int() 、float() 、range() 、 abs()、pow(x,y)...
II、自定义函数 [多个参数之间用逗号隔开]
def 函数名([参数]):
函数体
return [指定返回值]
(3)目的:去重,函数具有去重化,简化编程工作量,可以提高代码的重复利用率,程序结构简化
2、调用函数(执行函数)
语法:函数名(可选参数实参)
注意:在给形参传递数据时,一定要按照参数的顺序依次进行传递
3、变量的作用域
(1)分类:本地作用域、函数嵌套作用域、文件作用域和内置作用域
I、本地作用域:没有内部函数时,函数体为本地作用域。函数内通过赋值创建的变量,函数参数都属于本地作用域
II、函数嵌套作用域:包含内部函数时,函数体为函数嵌套作用域
III、文件作用域:程序文件(也称模块文件)的内部为文件作用域
IV、内置作用域:Python运行时的环境为内置作用域,它包含了Python的各种预定义变量和函数
(2)内置作用域和文件作用域可称为全局作用域
(3)变量的作用域:有效范围
I、全局变量:定义在函数外部的变量就是全局变量 ,全局变量名一般建议全部大写,在代码中都可以被调用
II、局部变量:定义在函数内部的变量就是局部变量 只能在函数内部使用
(变量在函数里不能直接使用,而是创建了一个一模一样的变量)
4、global关键字
如果直接在函数中修改全局变量,系统会自动在函数内部生成一个与该全局变量同名的局部变量,然后再修改该局部变量
global关键字可以在函数中引入全局变量,引入后就可以对全局变量做修改 多个变量名之间用逗号分隔
5、有参函数创建
语法结构:
def 函数名([参数列表形参]):
"函数_文档 字符串"
函数体
6、参数的分类
(1)函数参数的作用域是传递数据给函数使用,参数有两种形式形参和实际参数
(2)形参:定义函数时的参数,指的是定义函数时函数名后面括号里面的参数。
实参:调用函数时的参数,指的是调用函数时函数名后面的括号中的参数。
说明: 函数中的形参前面不需要指定具体数据类型
# 修改全局变量 w = "我是浩子" def money(apple1,weight2): price = apple * weight #在函数内部有效修改全局变量 global w w = "我变成了耗子" #print("本次消费了"+str(price)+"元") #函数内部访问全局变量 print(w) return price apple = float(input("水果的价格")) weight = float(input("水果的重量")) #将函数返回值保存到SUM_PRICE SUM_PRICE = money(apple,weight) print("总价为"+str(SUM_PRICE)+"元") print(w)
二、函数的参数
1、位置参数:实参按顺序依次传递给形参
def add(a,b): return a+b print(add(10,20))
2、关键字参数:调用函数时将实参指定传递给某一个形参
def add(a,b): return a+b print(add(a=10,b=20))
3、默认值参数:在定义函数时给形参赋初始值
def add(a,b=15): return a+b print(add(a=10,b=20)) print(add(a=1))
4、可变参数:定义函数时在参数名之前加“*” 是一个元组的形式
def add(*b,c): for i in b: print(i) print(len(b)) print(c) return b,c print(add(wang,yuan,12,1.5,c=10))
5、函数的返回值
通过return指定返回值 如果不指定返回值就会返回None
可以一次返回多个值,将多个返回结果封装成一个元组