初识函数
⼀. 什么是函数
函数: 对代码块和功能的封装和定义
⼆. 函数的定义, 函数名, 函数体以及函数的调⽤
我们使⽤def关键字来定义函数, 函数的定义语法:
def 函数名():
函数体(代码块)
函数体: 就是函数被执⾏之后要执⾏的代码
1 def yue(): 2 print("拿出⼿机") 3 print("打开陌陌") 4 print("找个漂亮的妹⼦") 5 print("问她, 约不约啊?") 6 print("oK. ⾛你!")
函数的调⽤: 使⽤函数名可以调⽤函数,
写法: 函数名(), 这个时候函数的函数体会被执⾏
1 # 调⽤yue()函数 2 yue() 3 结果: 拿出⼿机 打开陌陌 找个漂亮的妹⼦ 问她, 约不约啊? oK. ⾛你!
三. 函数的返回
执⾏完函数之后. 我们可以使⽤return来返回结果. 函数中return的使⽤:
1. 函数中遇到return, 此函数结束, 不再继续执⾏.
1 def yue(): 2 print("约你") 3 print("约我") 4 print("约他") 5 return 6 print("约谁呀") # 这句话不会被执⾏ 7 yue()
2. 给函数的调⽤者⼀个访问结果
1 def yue(): 2 print("约你") 3 print("约我") 4 print("约他") 5 return "美⼥⼀枚" 6 girl = yue() 7 print(girl) # 美⼥⼀枚
遇到return. 此函数结束, 函数后⾯的东⻄将不会再执⾏
返回值:
1.如果函数什么都不写,不写return,没有返回值,得到是None
2.在函数中间或者末尾写return,返回值是None
3.在函数中写return值,返回一个值.
4.在函数中可以返回多个返回值 ,return 值1,值2,值3. 接的是元组
四. 函数的参数
参数, 函数在调⽤的时候指定具体的⼀个变量的值. 就是参数.
语法:
def 函数名(参数列表):
函数体
1 def yue(chat): 2 print("拿出⼿机") 3 print("打开"+chat) 4 print("找个漂亮的妹⼦") 5 print("约不约")
6 yue("陌陌") 7 yue("微信") 8 yue("探探")
1. 形参 写在函数声明的位置的变量叫形参. 形式上的⼀个完整. 表⽰这个函数需要xxx
2. 实参 在函数调⽤的时候给函数传递的值. 叫实参, 实际执⾏的时候给函数传递的信息. 表⽰给函数 xxx
3. 传参 给函数传递信息的时候将实际参数交给形式参数的过程被称为传参
1 def yue(chat): # chat 形参 2 print("拿出⼿机") 3 print("打开"+chat) 4 print("找个漂亮的妹⼦") 5 print("约不约")
6 yue("陌陌") # 实参 7 len("字符串") # "字符串"在这⾥就是实参 8 print("麻花藤") # "麻花藤"就是实参
实参中 位置参数
1 def yue(chat, address, age): # 形参 2 print("拿出⼿机") 3 print("打开"+chat) 4 print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦") 5 print("约不约")
6 yue("微信", "北京", 18) # 实参 7 结果: 8 拿出⼿机 9 打开微信 10 找个北京附近漂亮的18岁妹⼦ 11 约不约
分析: 在访问yue()的时候, 我们按照位置的顺序分别把"微信", "北京", 18 赋值给 chat, address, age. 在传参过程中. 系统会默认按照位置把实参赋值到形参.
练习: 编写函数, 给函数传递两个参数a, b. 比较a, b的⼤⼩, 返回 a, b中最⼤的那个数
1 def my_max(a, b): 2 if a > b: 3 return a 4 else: 5 return b 6 # 有点⼉麻烦, 我们在这⾥学⼀个三元运算符. 7 def my_max(a, b): 8 c = a if a > b else b # 当a>b成⽴返回a, 否则返回b 9 return c
关键字参数
1 def yue(chat, address, age): 2 print("拿出⼿机") 3 print("打开"+chat) 4 print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦") 5 print("约不约") 6 yue(chat="微信", age=18, address="北京") # 关键字参数. 8 结果: 拿出⼿机 打开微信 找个北京附近漂亮的18岁妹⼦ 约不约
混合参数
可以把上⾯两种参数混合着使⽤. 也就是说在调⽤函数的时候即可以给出位置参数, 也可 以指定关键字参数.
1 # 混合参数 2 yue("微信", age=18, address="上海") # 正确.第⼀个位置赋值给chat, 后⾯的参数开始 3 指定关键字. 4 yue(age="18", "微信", address="⼴州") # 错误, 最开始使⽤了关键字参数, 那么后⾯的 5 微信的位置就串了, 容易出现混乱
在形参⾓度看 位置参数.
1 def yue(chat, address, age): 2 print("拿出⼿机") 3 print("打开"+chat) 4 print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦") 5 print("约不约")
默认值参数
1 def stu_info(name, age, sex='男'): 2 print("录⼊学⽣信息") 3 print(name, age, sex) 4 print("录⼊完毕") 5 stu_info("张强强", 18)
注意, 必须先声明位置参数, 才能声明默认值参数.