一. 什么是函数
我们使用def关键字来定义函数,
函数的定义语法:
def 函数名(): 函数体
这里的函数名的命名规则和使用和变量基本一样. 函数体: 就是函数被执行之后要执行的代码
def yue(): print("我想约会") print("打开微信") print("找到小白") print("约") yue() print("上课")
函数的调用: 使用函数名可以调⽤函数,写法:函数名(),这个时候函数的函数体会被执⾏行 yue() yue()
二. 函数的返回
执行完函数之后. 我们可以使用return来返回结果.
函数中return的使用:
1. 函数中遇到return, 此函数结束, 不再继续执行.
def chi(): print("饿了") print("吃什么") return print("去哪里吃") #这句话不会被执行
chi()
饿了
吃什么
def chi(): print("饿了") print("吃什么") return "盖饭" ret=chi() print(ret) 饿了 吃什么 盖饭
函数的返回值可以有多个结果 def chi(): print("饿了") print("吃什么") return "盖饭","面条","炒饼" ret=chi() print(ret) 吃什么 饿了 吃什么 ('盖饭', '面条', '炒饼') def chi(): print("饿了") print("吃什么") return "盖饭","面条","炒饼" a,b,c=chi() print(a,b,c) 吃什么 饿了 吃什么 盖饭 面条 炒饼
总结一下: 1. 遇到return. 此函数结束, 函数后面的东西将不会再执行 2. return 返回值关于返回值:如果return什么都不写或者干脆不写return .那么返回的就是None 如果return后面写了一个值. 则调用者可以接收一个结果如果return后面写了多个结果, 则调用者可以接收一个tuple, 调用者可以直接解构成多个变量
# 只要函数执行到return 函数就会停止执行
# 1. 每个函数如果在函数中不写return, 默认返回None
# 2. 我们也可以只写一个return, 也是返回None, 停止函数的执行
# 3. return 一个返回值. 你在调用方能接受到一个返回值
# 4. return 多个返回值. 多个值需要用,隔开 接收的位置. 接收的是元组.
三.函数的参数
参数, 函数在调⽤用的时候指定具体的一个变量量的值. 就是参数.
语法:
def 函数名(参数列表): 函数体
def kan(方式,年份): print("看世界杯") print("打开%s" % 方式) print("梅西") print("年份%s" % 年份) print("精彩瞬间") kan("电视",2016) kan("手机",2018) 看世界杯 打开电视 梅西 年份2016 精彩瞬间 看世界杯 打开手机 梅西 年份2018 精彩瞬间
1. 形参写在函数声明的位置的变量叫形参. 形式上的一个完整. 表示这个函数需要xxx
2. 实参在函数调用的时候给函数传递的值. 叫实参, 实际执行的时候给函数传递的信息. 表示给函数 xxx
3. 传参给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.
def kan(方式): #形参 print("看世界杯") print("打开%s" % 方式) print("梅西") print("精彩瞬间") kan("电视") # 实参 kan("手机")
def fn(a,b,c): print(a) print(b) print(c) fn(1, 2, 3) 1 2 3 fn(b=3, a=2, c=1) 2 3 1
在实参调用的时候 . 可以指定参数的值是多少. 关键字(形参)参数
参数的分类:
首先我们先看实参: 位置参数,关键字参数,混合参数
def gn(name,age,address,id,sex,hobby): print("他叫%s,今年%s,家住%s,id是%s,性别是%s,爱好%s" % (name,age,address,id,sex,hobby)) gn("詹姆斯",34,"美国",3,"男","打篮球") 他叫詹姆斯,今年34,家住美国,id是3,性别是男,爱好打篮球 gn(name="詹姆斯",age=34,address="美国",id=3,sex="男",hobby="打篮球") 他叫詹姆斯,今年34,家住美国,id是3,性别是男,爱好打篮球 gn(id=3,name="詹姆斯",hobby="打篮球",address="美国",sex="男",age=34) 他叫詹姆斯,今年34,家住美国,id是3,性别是男,爱好打篮球 gn("詹姆斯",id=3,"美国") 报错
注意: 在使用混合参数的时候, 关键字参数必须在位置参数后面
默认值参数. 在函数声明的时候, 就可以给出函数参数的默认值. 在调用的时候可以 给出具体的值, 也可以不给值, 使用默认值.
def r(id,name,sex="男"): print("录入学生信息:id是%s,名字是%s,性别是%s" % (id,name,sex)) r(1,"科比","男") r(2,"姚明","男") r(3,"麦迪") r(4,"郭晶晶","女") 录入学生信息:id是1,名字是科比,性别是男 录入学生信息:id是2,名字是姚明,性别是男 录入学生信息:id是3,名字是麦迪,性别是男 录入学生信息:id是4,名字是郭晶晶,性别是女
总结:
参数: 在函数执行的时候给函数传递的信息
形参: 在函数声明的位置.声明出来变量
实参: 在函数调用的时候. 实际你给函数传递的值
函数的参数个数是没有要求的 但是,在运行的时候. 形参和实参要匹配. 按照位置把实参赋值给形参
参数的分类:
站在实参的角度:
1. 位置参数
2. 关键字参数
3. 混合参数, 注意顺序. 先写位置参数, 然后在写关键字参数. 否则会报错
站在形参的角度:
1. 位置参数
2. 默认值参数
3. 默认值参数和位置参数混合使用. 顺序: 先写位置参数. 然后在写默认值参数
四.实际应用
1+2+3+4+5+6+7+8+9+....+100 = ? 对功能的封装 def sum(n): s = 0 count = 1 while count <= n: s = s + count count = count + 1 return s ret = sum(100) print(ret)
5050
算n是奇数还是偶数 def fn(n): if n%2 == 0: return "偶数" return "奇数" print(fn(5642))
偶数