一、函数的定义
def 函数名(参数):
函数体
来我们来定义⼀一个约x功能:
def yue(): print("拿出⼿手机") print("打开陌陌") print("找个漂亮的妹⼦子") print("问她, 约不不约啊?") print("oK. ⾛走你!")
函数的调用:
# 调用yue()函数 yue() 结果: 拿出⼿手机 打开陌陌 找个漂亮的妹⼦子 问她, 约不不约啊? oK. ⾛走你!
三、函数的返回
1. 函数中遇到return, 此函数结束, 不再继续执⾏
def yue(): print("约你") print("约我") print("约他") return print("约谁呀") # 这句句话不不会被执⾏行行 yue()
2.返回结果
def yue(): print("约你") print("约我") print("约他") return "美⼥一枚" girl = yue() print(girl) # 美⼥一枚
2.1返回多个结果
def yue(): print("约你") print("约我") print("约他") return "美⼥一枚", "萝莉⼀一枚" girl = yue() print(type(girl)) # tuple元组形式
3.总结
1. 遇到return. 此函数结束, 函数后⾯面的东⻄西将不会再执⾏。
2. return 返回值
关于返回值:
如果return什什么都不写 或者 干脆不写return .那么返回的就是None
如果return后面写了了一个值. 则调用者可以接收一个结果
如果return后⾯面写了多个结果, 则调⽤用者可以接收一个tuple, 调⽤用者可以直接解构成
多个变量
OK. 完美. 可以得到结果了. 但是我们的约的⽅式是不是有点⼉儿问题呢?, 陌陌现在还能约到
么? 约不到了吧. 该换探探了了. 那过两天探探也死掉了了呢? 是不是还会有⼀一个替代品. 那你想.
有一个替代的. 你就需要去改一下代码. 是不是不太合适了了. 最好的⽅方式是不是想⽤用什什么约就
⽤用什么约? ok. 我们可以通过函数的参数来给函数传递⼀一些信息.
四、函数的参数
1.形参
写在函数声明的位置的变量叫形参. 形式上的⼀一个完整. 表示这个函数需要xxx
def yue(chat):#chat是形参 print("拿出⼿手机") print("打开"+chat) print("找个漂亮的妹⼦子") print("约不不约")
1.1形参里的位置参数按照位置来赋值
def yue(chat, address, age): print("拿出⼿手机") print("打开"+chat) print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦子") print("约不不约")
1.2默认参数
在函数声明的时候, 就可以给出函数参数的默认值. 在调用的时候可以
给出具体的值, 也可以不给值, 使用默认值.
def stu_info(name, age, sex='男'): print("录⼊入学⽣生信息") print(name, age, sex) print("录⼊入完毕")
注意, 必须先声明位置参数, 才能声明默认值参数.
2.实参
2.1在函数调用的时候给函数传递的值. 叫实参, 实际执行的时候给函数传递的信息.
def yue(chat): # chat 形参 print("拿出⼿手机") print("打开"+chat) print("找个漂亮的妹⼦子") print("约不不约") yue("陌陌") # 实参
2.2位置参数,在输入参数是必须按顺序来
def yue(chat, address, age): # 形参 print("拿出⼿手机") print("打开"+chat) print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦子") print("约不不约") yue("微信", "北北京", 18) # 实参
2.3关键字参数,在输入时直接说明参数等于什么。
def yue(chat, address, age): print("拿出⼿手机") print("打开"+chat) print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦子") print("约不不约") yue(chat="微信", age=18, address="北京") # 关键字参数.
2.4混合参数,可以多种参数一起用,位置参数必须在关键字参数前⾯。
yue("微信", age=18, address="上海海") # 正确.第一个位置赋值给chat, 后面的参数开始指定关键字.