python函数总结一
- 一、函数的定义、调用
- 1、函数的定义
- 2、函数的调用
- 二、函数参数
- 1、要求
- 2、传参方式
- 3、可变参数
- 4、参数解构
一、函数的定义、调用
1、函数的定义
①、函数的语句基本格式为:
def 函数名(参数列表):
函数体(代码块)
return 返回值 #return可以不加,默认返回None
②、函数名就是标识符,和普通命名要求一样
语句块(代码块)必须缩进,约定为4个空格
函数中的参数列表,只是一种符号表达,简称形参
#eg:
def cat(name):
a = "这个猫的名字叫{}".format(name)
return a
print(cat('小花'))
2、函数的调用
①、函数定义,只是为了声明一个函数,它不会被执行,需要调用
②、调用的方式:函数名上加上小括号,括号内写上参数
③、调用时的参数是实际参数,是实实在在传入的值,简称实参
#eg:
def cat(name):
return "这个猫的名字叫{}".format(name)
print(cat('小花'))
a = cat('小杰')
print(a)
def dog(name):
dog = "这个狗的名字叫{}".format(name)
print(dog("旺财")) #返回None
二、函数参数
1、要求
①、参数调用时传入的参数要和定义的个数相匹配(可变参数除外)
②、要求位置参数必须在关键字参数之前传入,位置参数是按位置对应的。
2、传参方式
①、位置参数
位置参数是按位置对应传入的
def people(name,height,age):
print("我叫{}".format(name))
print("我的身高是{}".format(height))
print("我的年龄是{}".format(age))
people("小明",168,18)
②、关键字参数
关键字参数无关顺序
def people(name,height,age):
print("我叫{}".format(name))
print("我的身高是{}".format(height))
print("我的年龄是{}".format(age))
people(name="小明",height=168,age=18)
③、位置,关键字混合
def people(name,height,age):
print("我叫{}".format(name))
print("我的身高是{}".format(height))
print("我的年龄是{}".format(age))
#people("小明",heiget=168,18) 错误事例
#people(168,age = 18,name = "小明") 错误事例
people("小明",168,age = 18) #正确
people("小明",age = 18,height = 168) #正确
④、参数默认值(缺省值)
给定形参一个默认值,如果为传入足够的实参时默认使用
def people(name,height,age=18): # 错误事例def people(name,height=168,age):
print("我叫{}".format(name))
print("我的身高是{}".format(height))
print("我的年龄是{}".format(age))
people("小明",18) # 同样没有缺省值的参数要在缺省值参数前
3、可变参数
①、位置可变参数(元组集合)
#def people(name,height,*score,age=18): # 缺省放在后面的坏处,如果用位置传参,age无法在传入参数
def people(name,height,age=18,*score): # 如果放在前面的坏处,age必须传参数。一般使用此种方法
print("我叫{}".format(name))
print("我的身高是{}".format(height))
print("我的年龄是{}".format(age))
print("我的成绩是{}".format(score))
people("小明",185,39,83,88,94)
②、关键词可变参数(字典集合)
def people(name,height,age=18,**score):
print("我叫{}".format(name))
print("我的身高是{}".format(height))
print("我的年龄是{}".format(age))
print("我的成绩是{}".format(score))
people("小明",185,化学=39,语文=83,数学=88,外语=94) #注意可变位置参数不能放在缺省值前面
③、keyword-only(位置参数)参数另一种形式
在形参前加* 号,则在* 号后所有形参都必须以关键词参数传入
def people(name,height,*,age,**score):
print("我叫{}".format(name))
print("我的身高是{}".format(height))
print("我的年龄是{}".format(age))
print("我的成绩是{}".format(score))
people("小明",185,化学=39,语文=83,数学=88,外语=94,age=20)
④、综上所述:参数列表的一般顺序为,普通参数、缺省参数、可变位置参数、keyword-only参数(后可带缺省值)、可变关键字参数
4、参数解构
①、定义:给函数提供实参的时候,可以在一个集合前使用* 或** ,把集合的结构解开,提取出所有的元素作为函数的实参
②、一般列表使用* 解构成位置参数
def people(name,height,age,*score):
print("我叫{}".format(name))
print("我的身高是{}".format(height))
print("我的年龄是{}".format(age))
print("我的成绩是{}".format(score))
a = ["小明",185,20,39,83,88,94]
people(*a)
③、一般字典使用** 解构成关键字参数
def people(name,height,age,**score):
print("我叫{}".format(name))
print("我的身高是{}".format(height))
print("我的年龄是{}".format(age))
print("我的成绩是{}".format(score))
a = {"化学":39,"语文":83,"数学":88,"外语":94,"age":20}
people("小明",185,**a)
下一节讲解函数作用域、函数嵌套、函数销毁