一.函数
1 .函数的定义:对代码块和功能的封装和定义
2.函数定义的语法:
def 函数名()
函数体
这里的函数名的命名规则和使用和变量基本一样.
def yue(): print("拿出手机") print("打开陌陌") print("找个漂亮妹子") print("约不约")
这个时候去执行.会发现什么都没有发生.因为我只定义一个函数,但是还没有执行过这个函数.
3.函数的调用:使用函数名可以调用函数,写法:函数名(),这个时候函数的函数体会被执行
yue()
结果:
拿出手机
打开陌陌
找个漂亮妹子
约不约
二.函数的返回
执行完函数之后,我们可以使用return来返回结果.
1.函数中return的使用,此函数结束,不在继续执行.
def yue(): print("约你") print("约我") print("约他") return print("约谁呀") # 这句话不会被执⾏ yue()
2.给函数的调用者一个访问结果
def yue(): print("约你") print("约我") print("约他") return "美⼥⼀枚" girl = yue() print(girl) # 美⼥⼀枚
函数的返回值可以有多个结果
def yue(): print("约你") print("约我") print("约他") return "美⼥⼀枚", "萝莉⼀枚" girl = yue() print(type(girl)) # tuple
总结一下:
1. 遇到return.此函数结束,函数后面的东西将不会再执行
2.return返回值
(1)如果return什么都不写,或者干脆不谢return,那么返回的就是None
(2)如果return后面写了一个值,则调用者可以接收一个结果
(3)如果return后面写了多个结果,则调用者可以接受一个tuple,调用者可以直接解构成多个变量
三.函数的参数
参数,函数在调用的时候指定具体的一个变量的值.就是参数.
语法:
def 函数名(参数列表): 函数体
def yue(chat): print("拿出⼿机") print("打开"+chat) print("找个漂亮的妹⼦") print("约不约") yue("陌陌") yue("微信") yue("探探") 结果: 拿出⼿机 打开陌陌 找个漂亮的妹⼦ 约不约 拿出⼿机 打开微信 找个漂亮的妹⼦ 约不约 拿出⼿机 打开探探 找个漂亮的妹⼦ 约不约
2.关于参数:
(1).形参:
写在函数声明的位置的变量叫形参,形式上的一个完整,表示这个函数需要xxx
(2)实参
在函数调用的时候给函数传递的值.叫实参.实际执行的时候给函数传递的信息.xxx
(3)传参
给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.
def yue(chat): # chat 形参 print("拿出⼿机") print("打开"+chat) print("找个漂亮的妹⼦") print("约不约") yue("陌陌") # 实参 len("字符串") # "字符串"在这⾥就是实参 print("麻花藤") # "麻花藤"就是实参
3.参数的分类:
实参:
(1)位置参数:按照形参的参数位置, 给形参传值
def yue(chat, address, age): # 形参 print("拿出⼿机") print("打开"+chat) print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦") print("约不约") yue("微信", "北京", 18) # 实参 结果: 拿出⼿机 打开微信 找个北京附近漂亮的18岁妹⼦ 约不约
在访问yue()的时候, 我们按照位置的顺序分别把实参赋值给行参
练习:编写函数,给函数传递两个参数a,b.比较a,b的大小,返回a,b中最大的那个数
答案:
def my_max(a, b): if a > b: return a else: return b # 有点⼉麻烦, 我们在这⾥学⼀个三元运算符. def my_max(a, b): c = a if a > b else b # 当a>b成⽴返回a, 否则返回b return c
(2)关键字参数:按照形参的名字给形参传值
def yue(chat, address, age): print("拿出⼿机") print("打开"+chat) print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦") print("约不约") yue(chat="微信", age=18, address="北京") # 关键字参数.
结果:
拿出⼿机
打开微信
找个北京附近漂亮的18岁妹⼦
约不约
(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)
注意, 必须先声明位置参数, 才能声明默认值参数
综上: 在形参的⾓度来看,
1. 位置参数
2. 默认值参数(⼤多数传进来的参数都是⼀样的, ⼀般⽤默认参数)