Python基础⑤:函数

1、函数的定义与调用

1)函数的定义与调用:参数+函数体+返回值
  ① 定义

# 定义函数格式
def 函数名(参数):
	函数体
	return 返回值
# 例子:求正方形面积
def area_of_square(length_of_side):
	square_area = pow(legth_of_side,2)
	return square_area

  ② 调用

# 例子:求正方形面积
def area_of_square(length_of_side):
	square_area = pow(legth_of_side,2)
	return square_area
# 调用定义的函数
area = area_of_square(5)

2)参数的传递
  ① 位置参数:按照位置顺序用实参对形参赋值,实参形参个数一一对应

def function(x,y,z):
	return x,y,z
function(1,2,3) # x=1,y=2,z=3

  ② 关键字参数

def function(x,y,z):
	return x,y,z
function(y=1,z=2,x=3) # x=3,y=1,z=2
# 两个可以混着用,但位置参数必须要在关键字参数前面
def function(x,y,z):
	return x,y,z
function(1,z=2,y=3) # x=1,y=3,z=2

  ③ 默认参数:在定义函数阶段就给形参赋值

# 默认参数应该设置为不可变类型(数字、字符串、元组)
# 将z设为默认参数,值为3
def function(x,y,z=3):
	return x,y,z
function(y=1,x=3) # x=3,y=1,z=3

  ④ 可选参数:让参数变成可选的

def name(first_name,last_name,middle,name = None):
	if middle_name:
		return first_name+middle_name+last_name
	else:
		return first_name+last_name
print(name("Cheng","Liu")) # 结果是:"ChengLiu"
print(name("Cheng","Liu","JR"))  # 结果是:"ChengLiuJR"

  ⑤ 可变长参数 *args

def foo(x,y,z,*args):
	print(x,y,z)
	print(args)
foo(1,2,3,4,5,6)  # x=1,y=2,z=3,剩下打包成元组传给args
foo(1,2,3,[4,5,6])  # x=1,y=2,z=3,剩下打包成元组传给args
foo(1,2,3,*[4,5,6])  # x=1,y=2,z=3,剩下的打散后打包成元组给args

  ⑥ 可变长参数 **kwargs

def foo(x,y,z,**kwargs):
	print(x,y,z)
	print(kwargs)
foo(1,2,3,a=4,b=5,c=6)  # x=1,y=2,z=3,剩下打包成字典传给args

3)函数体与变量作用域
  ① 局部变量:在函数内部定义的变量,仅在函数内部起作用
  ② 全局变量:在函数外部或使用global修饰的变量
4)返回值
  ① 单个返回值:就是用return返回
  ② 多个返回值:通过元组的形式

def foo(x=1):
	return 1,x,x**2,x**3
print(foo(3))  # (1,3,9,27)
a,b,c,d = foo(3) # 解包赋值

2、匿名函数

1)定义格式:lambda 变量:函数体
2)常用用法
  ① 列表排序sort()

ls = [(93,88),(79,100),(86,71),(85,85),(76,94)]
ls.sort(key = lambda x:x[1])  # 根据元组第2个元素排序
ls.sort(key = lambda x:x[0]+x[1])  # 根据元组两个元素之和排序

  ② max()和min()

ls = [(93,88),(79,100),(86,71),(85,85),(76,94)]
n = max(ls,key = lambda x:x[1])
m = min(ls, key = lambda x:x[1])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值