初识函数
函数定义:定义一个事情或者功能. 等到需要的时候直接去用就好了了. 那么这里定义的东西就是一个函数
即函数: 对代码块和功能的封装和定义
1.1常用形式:
def 函数名():
函数体
1.2 函数调用
需要调用的时候,直接 函数名() 即可使用函数
1.3 函数的返回
执行完函数之后.我们可以使用return来返回结果.
1.3.1 函数中遇到return, 此函数结束, 不再继续执⾏行行.
1.3.2 给函数的调⽤用者⼀一个访问结果
总的来说,有如下情况
1. 遇到return. 此函数结束, 函数后面的东西将不会再执行
2. return 返回值
关于返回值:
如果return么都不写 或者 干脆不写return .那么返回的就是None
如果return后面写了⼀个值. 则调⽤用者可以接收一个结果
如果return后面写了多个结果, 则调用者可以接收一个tuple, 调用者可以直接解构成多个变量
1.4函数的参数
参数, 函数在调用的时候指定具体的⼀个变量的值. 就是参数.
语法:
def 函数名(参数列表):
函数体
1.4.1关于参数:
1. 形参
写在函数声明的位置的变量量叫形参. 形式上的一个完整. 表⽰这个函数需要xxx
2. 实参
在函数调⽤用的时候给函数传递的值. 叫实参, 实际执行的时候给函数传递的信息. 表⽰给函数xxx
3. 传参
给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.
def yue(chat): # chat 形参
print("拿出手机")
print("打开"+chat)
print("找个漂亮的妹子")
print("约不约")
yue("陌陌") # 实参
len("字符串") # "字符串"在这里就是实参
print("麻花藤") # "麻花藤"就是实参
1.4.2参数的分类:
首先我们先看实参:
1.位置参数
def yue(chat,address,age): # 形参
print("拿出手机")
print("打开"+chat)
print("找个"+address+"附近漂亮的"+str(age)+"岁妹子")
print("约不约")
yue("微信", "北京", 18) # 实参
yue("探探", "深圳", 21)
分析: 在访问yue()的时候, 我们按照位置的顺序分别把"微信", "北京", 18 赋值给 chat,address, age.
在传参过程中. 系统会默认按照位置把实参赋值到形参.
2. 关键字参数 不需要记住每个参数的位置. 只要记住每个参数的名字就可以了
def yue(chat, address, age):
print("拿出手机")
print("打开"+chat)
print("找个"+address+"附近漂亮的"+str(age)+"岁妹子")
print("约不约")
yue(chat="微信", age=18, address="北京") # 关键字参数.
3 混合参数 可以把上面两种参数混合着使用. 也就是说在调用函数的时候即可以给出位置参数, 也可以指定关键字参数.
yue("微信", age=18, address="上海") # 正确.第一个位置赋值给chat, 后面的参数开始指定关键字.
yue(age="18", "微信", address="广州") # 错误, 最开始使⽤用了了关键字参数, 那么后⾯面的微信的位置就串了了, 容易易出现混乱
注意: 在使⽤用混合参数的时候, 关键字参数必须在位置参数后⾯面
综上: 在实参的⾓角度来看. 分为三种:
1. 位置参数
2. 关键字参数
3. 混合参数, 位置参数必须在关键字参数前面
在形参⾓角度看. 一共分为三种. 今天我们学习两种
1 位置参数. 按照位置来赋值, 到目前为止, 我们编写的函数都是这种
def yue(chat, address, age):
print("拿出⼿手机")
print("打开"+chat)
print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦子")
print("约不约")
2 默认值参数. 在函数声明的时候, 就可以给出函数参数的默认值. 在调用的时候可以给出具体的值, 也可以不给值, 使用默认值.
比如, 我们录入咱们班学生的基本信息. 通过调查发现. 我们班基本都是生. 这个时候就可以给出一个sex='男'的默认值.
def stu_info(name, age, sex='男'):
print("录⼊学⽣生信息")
print(name, age, sex)
print("录入完毕")
stu_info("张强", 18)
stu_info("alex",18,"女") #不使用默认值时。给出具体的参数值即可
注意, 必须先声明位置参数, 才能声明默认值参数.
综上: 在形参的角度来看,
1. 位置参数
2. 默认值参数(⼤多数传进来的参数都是一样的, 一般⽤用默认参数)