请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
  • 便民服务
  • 关注我们
  • 社区新手
函数好处
代码重复使用
保持一致性,易维护

函数定义规则
函数代码块以def 关键字开头
后面接函数标识名称和小括号(),名称不能用纯数字或python保留字符进行定义
不要以文件名命名
不能出现特殊符合
要简短且见名知意

def dcs():
函数体

def 通过def 来定义函数,顶格写
def dcs(): 定义了一个函数名称叫dcs 函数名称可以进行自定义
函数体 一个tab键也就是4个空格,函数体中就是代码块

def dcs1(a,b):#定义函数
print(a*b)#函数体
def dcs2(a,b):#定义函数
print(a+b)#函数体
dcs1(2,5)#调用函数自己来得到函数中的结果
dcs2(2,5)#调用函数自己来得到函数中的结果

def dcs3():
pass #占位符,函数体中一定要有值,没有则抛异常
dcs3()#函数调用不受规则限制,在任务位置都可以调用

第一种
def dcs4():
print("dcs16")
dcs4()

第二种 主函数
直接输入main 可以关联出来

def dcs4():
print("dcs16")
def dcs5():
print("dcs17")
if _name_== '_main_':
dcs4()

第三种 模块调用
def dcs1(a,b):#定义函数
print(a*b)#函数体
def dcs2(a,b):#定义函数
print(a+b)#函数体

from xiaoliu import day6
day6.dcs1(2,5)
day6.dcs2(3,9)

参数列表可以为空,即没有参数,
也可以包含单个参数、多个参数、默认参数、可变长参数、参数之间使用逗号分隔。

形参:写在函数声明的位置的变量
实参:在函数调用的时候给函数传递的值
传参:给函数传递信息的时候将实参交给形参的过程称为传参

#函数中带有一个形参
def dcs(name):#定义函数包含一个形参
print(name)#打印形参

dcs('zhangsan')#函数调用并且传入实参

#多个形参
def dcs1(name,age):#定义函数包含两个形参
print(name,age)
dcs1("zhangsan",18)#函数调用并且传入实参

如果函数中有形参,函数调用的时候必须赋予实参,且实参个数一定是和形参对等
#一个形参只能一个实参

#带有默认参数
def dcs(name="zhangsan"):
print(name)
dcs()#调用函数未传实参
dcs('lisi')#调用函数传入实参

带有默认值的形参可以不赋予实参;也可以赋予,赋予后会替换原本的默认值

#带有默认值参数后面不能放形参
def dcs(age,name='zhangsan'):
print(name,age)
dcs(16)
没有带默认值的形参一定要放到带有默认值参数的前面

#多个默认参数
def dcs(age=18,name='zhangsan'):
print(name,age)
dcs()
dcs(16,'lisi')

可变长元组和可变长字典
可变长元组:* 一个星号来表示
可变长字典:** 两个星号来表示

def dcs(*name):#把name这个形参变为可变长元组类型
print(type(name))
print(name)
dcs()#可变类型可以赋予实参,也可以不赋予实参
dcs(1,2,3)#可变类型可以有多个实参

#可变长类型后面不能接普通形参
def dcs(*name,age):
print(name,age)
dcs("zhangsan",16,3,24,3545)#抛异常,因为age没有拿到实参

#普通形参一定要放到可变长类型的前面
def dcs(age,*name):
print(name,age)
dcs(16,18,112,"zhansan")

#可变长类型后面一定接的是默认值参数
def dcs(*name,age=24):
print(name,age)
dcs('zhangsan',18,19,20)

可变长字典
def dcs(**name):#定义一个函数 函数中有可变长字典
print(type(name))#
print(name)#{}
dcs()#可变类型在调用函数时可不赋予实参

#可变长字典类型后不能带普通形参
#可变长元组不能在放在可变长字典后面
def dcs(*age,**name):
#可变长元组和字典同时存在只能将元组放在字典的前面
print(name,age)
dcs(1,2,34,5,name='zhansgan')#{'name': 'zhansgan'} (1, 2, 34, 5)

全局变量和局部变量
a = 200#全局变量
def dcs():#定义函数
a = 100#局部变量
print(a)#打印的局部变量100
dcs()
print(a)#打印全局变量200

函数体中有变量则优先引用函数中的变量
如果函数体中没有变量则引用函数体外的全局变量
全局变量可以被任何函数方法引用
局部变量只能被当前函数本身来引用(如需要用可以用函数传递)

#把局部变量变为全局变量
a = 200#全局变量
def dcs1():#定义函数
global a #把函数中的局部变量声明为一个全局变量
a = 100#局部变量
print(a)
dcs1()
print(a)

def dcs2():#定义函数
print(a)
dcs2()

函数传递
return 语句

def dcs1():#定义函数
a =100 #局部变量
return a #返回值 把一个具体的结果赋予给函数就需要用到此方方法

def dcs2():#定义函数
#a =dcs1()#第一种函数传递方式
c = 50 #局部变量
#c +=a
c +=dcs1()#第二种函数传递方式
print(c)
dcs2()

def dcs1():#定义函数
a = 100 #局部变量
c =a/2#除法
return c #返回

def dcs2():#定义函数
d=dcs1()#函数传递
d *=2 #乘法
return d
print(dcs2())#100.0

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册