一,函数的定义和调用
定义: 函数就是对一个代码块或者功能的封装,什么时候用,什么时候执行
语法:
def 函数名():
函数体(代码块)
函数的调用:
1,函数名()--前边不能有缩进,要从一行的开头写,所有的()都是函数的调用
函数名和变量名一样:(此处省略变量的命名规范)
def hobby(): print("吃饭") print("睡觉") print("打豆豆") hobby() #顶头写,没有缩进 print("休息一会儿") hobby() # 吃饭 # 睡觉 # 打豆豆 # 休息一会儿 # 吃饭 # 睡觉 # 打豆豆
2,返回值: 谁调用的就返回给谁
函数在执行过程中或者执行完毕,可以使用return返回给调用者,只要函数执行到return,函数就会停止,后面的内容就不会再执行
二,函数的返回
有三种情况:
1, 直接写个return 或者不写return,不返回任何内容(接收到的事None)
def hobby(): print("吃饭") print("睡觉") return print("打豆豆") hobby() #顶头写,没有缩进 # 吃饭 # 睡觉
2,return 一个变量或者值(返回值)
def hobby(): print("吃饭") print("睡觉") print("打豆豆") return "累了" new_hobby = hobby() #顶头写,没有缩进 print(new_hobby) # 吃饭 # 睡觉 # 打豆豆 # 累了
3,return后面可以跟多个变量或者值,返回的时候,解释器会帮我们把多个返回值组合成一个元祖,接收多个变量的话可以使用解构
def hobby(): print("吃饭") print("睡觉") print("打豆豆") return "累了","歇会", a,b = hobby() #顶头写,没有缩进 print(a,b) # 吃饭 # 睡觉 # 打豆豆 # 累了 歇会
三,函数的参数
参数:函数在调用的时候指定具体的一个变量的值,就是参数,参数写在()里面
1,形参:在函数声明的位置给出的变量的声明,形式参数
2,实参:在函数调用的时候,给函数传递的
def hobby(a): #a 形参 print("吃饭") print("睡觉") print("打"+a) return "累了","歇会", hobby("豆豆") #顶头写,没有缩进 "豆豆"是实参 # 吃饭 # 睡觉 # 打豆豆
参数的分类:
先看实参:
1, 位置参数:按照位置吧实参赋值给形参
def hobby(a,age,hobby): print("吃饭") print("睡觉") print("打"+ a+"已经%s岁了,喜欢%s" %(age,hobby)) hobby("豆豆",100,"吃",) # 吃饭 # 睡觉 # 打豆豆已经100岁了,喜欢吃
2,关键字参数: 对照形参给每个参数复制
def hobby(a,age,hobby): print("吃饭") print("睡觉") print("打"+ a+"已经%s岁了,喜欢%s" %(age,hobby)) hobby(hobby = "吃",age=100,a = "豆豆") # 吃饭 # 睡觉 # 打豆豆已经100岁了,喜欢吃
3,混合参数:位置参数和关键字参数混合使用,要先写位置参数,再写关键字参数
def hobby(a,age,hobby): print("吃饭") print("睡觉") print("打"+ a+"已经%s岁了,喜欢%s" %(age,hobby)) hobby("豆豆",hobby = "吃",age=100) #第一个位置赋值给a,后面的参数指定关键字 # 吃饭 # 睡觉 # 打豆豆已经100岁了,喜欢吃
三元运算符(表达式):
a = 50
b = 60
c= a if a > b else b
#两个数,谁大打印谁 def get_max(a,b): if a > b: return a else: return b print(get_max(1,5))
再看一下形参
1,位置参数:按照位置赋值,到目前位置,我们编写的函数都是这种
def hobby(a,age,hobby): print("吃饭") print("睡觉") print("打"+ a+"已经%s岁了,喜欢%s" %(age,hobby)) hobby("豆豆",100,"吃",) # 吃饭 # 睡觉 # 打豆豆已经100岁了,喜欢吃
2,默认值参数 必须先声明位置参数,才能声明默认值参数
当出现很多重复参数的时候,考虑使用默认值参数,默认值参数必须在位置参数后面
当调用的地方不给出值得时候,会使用默认值
比如, 我们录入咱们班学⽣生的基本信息. 通过调查发现. 我们班⼤大部分学⽣生都是男⽣生. 这个时 候就可以给出⼀一个sex='男'的默认值
def stu_info(name,age,sex="男"): print(name,age,sex) stu_info("小明",18) #小明 18 男
小练习:
def fun1(): print("小明") def fun2(): fun1() print("小红") def fun3(): print("小花") fun1() print("小黑") fun2() fun3() # 小花 # 小明 # 小黑 # 小明 # 小红