Python 函数定义 调用 迭代器 生成器 递归和推导式
1 函数定义
- 什么是函数
- 函数定义, 函数名, 函数体以及函数的调⽤用
- 函数的返回值
- 函数的参数
函数: 对代码块和功能的封装和定义,这⾥里里的函数名的命名规则和使⽤用和变量量基本⼀一样
def 函数名():
函数体 #函数体: 就是函数被执⾏行行之后要执⾏行行的代码
函数的调⽤用: 使⽤用函数名可以调⽤用函数, 写法: 函数名(), 这个时候函数的函数体会被执⾏
def apple(): print("你好") print("中国") apple() 结果如下: 你好 中国
执行效果如下
执行结果怎么来描述和获得呢? 这个就涉及到函数的返回值的问题.
函数的返回
执⾏行行完函数之后. 我们可以使⽤用return来返回结果.
- 函数中遇到return, 此函数结束, 不再继续执⾏
- 给函数的调⽤用者⼀一个访问结果
总结:
- 如果return什什么都不写 或者 ⼲干脆不写return .那么返回的就是None
- 如果return后⾯面写了了⼀一个值. 则调⽤用者可以接收⼀一个结果
- 如果return后⾯面写了了多个结果, 则调⽤用者可以接收⼀一个tuple, 调⽤用者可以直接解构成 多个变量
def apple(): print("你好") print("中国") return "晚安" # 返回一个结果,返回的将是字符串 print("早安") # 上方有return 将不执行 changan = apple() print(changan) print(type(changan)) print("---------完美分割线-----------") def apple1(): print("你好") print("中国") return "晚安","早安" #返回多个结果,由于是逗号分割,结果将为元组 changan1 = apple1() print(changan1) print(type(changan1)) 结果如下: 你好 中国 晚安 <class 'str'> ---------完美分割线----------- 你好 中国 ('晚安', '早安') <class 'tuple'>
函数的参数
参数, 函数在调⽤用的时候指定具体的一个变量量的值. 就是参数.
语法:
def 函数名(参数列表):
函数体
使用如下所示,调用apple时,参数 "中国"传递进入代码块.
def apple(chat): print("你好", chat) # 可以用逗号, print("你好" + chat) # 可以用+ apple("中国") 结果如下 你好 中国 你好中国
关于参数:
- 形参 写在函数声明的位置的变量量叫形参. 形式上的⼀一个完整. 表⽰示这个函数需要xxx
1.位置参数 按照位置来赋值, 到⽬目前为⽌止, 我们编写的函数都是这种
def apple(a, b, c): print(a) # 对"你好" print(b) # 对"中国" print(c) # 对"早安" apple("你好", "中国", "早安")
2.默认参数 在函数声明的时候, 就可以给出函数参数的默认值. 在调⽤用的时候可以 给出具体的值, 也可以不给值, 使⽤用默认值. 默认参数必须在位置参数之后.
def apple(a, b, c="台湾"): print(c) # 可以用逗号, print(b) # 可以用+ print(a) # 可以用+ apple("你好", b="中国") print("------------") apple("你好", b="中国", c="上海") 结果如下: 台湾 中国 你好 ------------ 上海 中国 你好
3.动态传参,分为两种,动态接受位置参数*任意参数名 和动态接受关键字参数*args
- 实参 在函数调⽤用的时候给函数传递的值. 叫实参, 实际执⾏行行的时候给函数传递的信息. 表⽰示给函数 xxx
1.位置参数 函数调用时,按顺序归为apple("你好","中国","早安")
def apple(a, b, c): print(a) # 对"你好" print(b) # 对"中国" print(c) # 对"早安" apple("你好", "中国", "早安") 结果如下: 你好 中国 早安
2.关键字参数 函数调用时,将部分或全部参数指定好,我们不需要记住每个参 数的位置. 只要记住每个参数的名字就可以了了
def apple(a, b, c): print(c) # 对"早安" print(b) # 对"中国" print(a) # 对"你好" apple(a="你好", b="中国", c="早安") 结果如下:
早安
中国
你好
3.混合参数(位置参数与关键字参数混合),在调⽤用函数的时候即可以给出位置参数, 也可 以指定关键字参数. 要求位置参数必须在 关键字参数前面.
def apple(a, b, c): print(c) # 可以用逗号, print(b) # 可以用+ print(a) # 可以用+ apple("你好", c="中国", b="早安") 结果如下: 中国 早安 你好
- 传参 给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.
如果我们需要给⼀一个函数传参, ⽽而参数⼜又是不确定的. 或者我给⼀一个 函数传很多参数, 我的形参就要写很多.可以考虑使⽤用动态参数. 形参的第三种: 动态参数