二、函数的声明和调用函数
自定义函数:
1、可以使用def关键字来创建Python自定义函数,其基本语法结构如下:
def 函数名(参数列表)
函数体
函数名() #调用函数
2、参数列表可以为空,即没有参数,也可以包含单个参数、多个参数、默认参
数、可变长参数、参数之间使用逗号分隔。
3、函数中无参数:
def func()
函数体
func() #调用函数
4、函数的三种调用方式
a、在本模块中调用 :
def dcs(a, b): print(a * b)dcs(2,3)
b、if __name__ == '__main__': 主函数调用
def dss(a, b): print(a * b)if __name__ == '__main__': dss(2,3)
c、在其他模块中调用主函数的解释:
解释:
if __name__ == '__main__': 是函数的入口,也称为主函数
__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ ,这句话的
意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,
代码块不被运行。
if __name__ == '__main__': from jqx import day4作业 day4作业.dcs(2,3)
from 项目包 import 项目包下的文件名
文件名.函数名(实参)
函数定义时:
1、调用函数有形参多少个,必须有多少个实参
2、带有默认值的形参,可以不赋予实参
3、带有默认值的形参,后面不能放形参,只能把默认值形参放在后面
4、默认值的形参一定要

可变长元组类型:
def dcs (*name): # 一个*输出为元组
print (type(name)) #元组
print(name)
dcs(1,2,3) #可变类型可以赋予实参,也可以不赋予实参
def dcs (*name,age):
print(name,age)
dcs('zhangsan',16,13) 报错 age没取到实参
①所以可以将*name 放到age后面 :
def dcs (age,*name):print(name,age)
dcs('zhangsan',16,13)
②也可以调用时指定形参=实参:
def dcs (*name,age):print(name,age)
dcs('zhangsan',16,age=13)
可变类型字典:
def dcs (*name): # 一个**输出为字典
print (type(name)) #字典
print(name)
1、可变长**字典类型 后面不能接普通形参 普通在前*元组在后面
2、可变长**字典与可变*元组同时出现,*元组在前面**字典在后面
当元组和字典同时出现时, 调用函数后面字典必须指定 键=键值 ,否则将被前面元组全部包含
例如:
def dcs (*name,**age):
print(name,age)
dcs('zhangsan',age='18,20')
全局变量、局部变量
1、在函数中也可以定义变量,在函数中定义的变量被称之为局部变量,局部变量
只在定义它的函数内部有效。
2、在函数体之外定义的变量,我们称之为全局变量。
3、将局部变量声明为全局变量 globe a
四、函数的返回值
Python中,用 def 语句创建函数时,可以用 return 语句指定应该返回的值,
该返回值可以是任意类型。需要注意的是,return 语句在同一函数中可以出
现多次,但只要有一个得到执行,就会直接结束函数的执行。
函数中,使用 return 语句的语法格式如下:
return [返回值]
其中,返回值参数可以指定,也可以省略不写(将返回空值 None)。
返回值的作用
1、在程序开发中,有时候会希望一个函数执行程序结束后,告诉
调用者一个结果,以便调用者针对具体的结果做后续的处理。
2、返回值是函数完成工作后,最后给到调用者的一个结果。
3、在函数中使用return关键字可以返回结果。
4、调用函数的一方可以使用变量来接收函数的返回结果。
def dcs1(): #定义函数
a=100 #局部变量
return a #返回值 将具体结果赋予dcs1()函数
def dcs2():
a=dcs1 #接收dcs1的值
c=50
c+=a
print(a)
或者:def dcs2():
c=50
c+=dcs1() 直接使用dcs1()的值
print(a)
|
|