Python函数

函数

定义函数

  1. 不带参数
语法: def 函数名():
		def say():
			print("世界真美好")
			
调用函数:   注1:必须放到定义函数的后面
			say()

在这里插入图片描述

  1. 带一个参数的函数
    注2:函数和函数之间空格两行
语法: def 函数名(参数):
		def say(what):
			print(f"{what}")
			
调用函数:调用带参数的函数,如果不带参数过去,编译不报错,但是运行报错(跟java不同)
			say("真好")

在这里插入图片描述

  1. 带两个参数的函数
def test(a, b):
			print(f"a={a}")
			print(f"b={b}")
		
调用函数:
			1.位置方式
				test(22, 11)
			
			2.关键字方式
				test(b=22, a=11)
			
			3.缺省参数(默认值)  注意:有默认值的参数必须放在没有默认值参数的后面
				def test(a, b=444):
				
				# test(b=11,11)  错误:因为b有默认值
				test(11,b=11)  

在这里插入图片描述

  1. 可变参数
    1. 参数是元组类型
    def test1(*args):
    				"""这是一个求多个值和的函数"""
    				sum = 0
    				for i in args:
    					sum += i
    				else:
    					print(f"和为{sum}")
    					
    调用函数:
    				print(test1(1, 2, 3))
    

在这里插入图片描述

2. 参数为字典类型
```bash
def test2(**kwargs):
				for k, v in kwargs.items():
					print(k, v)
					
调用函数:
				test2(name="zs", age=19)
```

在这里插入图片描述

函数返回值

函数的说明文档:
help(print())

  1. 返回值为多个(跟java不同)
def test3(a, b, c):
			"""
			这是一个测试函数,测试函数为多个返回值
			:param a: 值1
			:param b: 值2
			:param c: 值3
			:return: 返回多个值
			"""
			a += 100
			b += 100
			c += 100
			return a, b, c
		
		help(test3)

在这里插入图片描述

函数嵌套调用

def test1(*args):
		"""这是一个求多个值和的函数"""
		sum = 0
		for i in args[0]:
			sum += i
		else:
			# print(f"和为{sum}")
			#         返回值
			return sum
	
	# 计算多个值的平均值
	def test4(*args):
		sum = test1(args)
		return sum / len(args)   

	print(test4(12,5,3))

在这里插入图片描述

测试变量范围

a=9
	def test5():
		# 在函数内部修改全局变量的值
		# 必须声明 变量为全局变量
		global a
		a = 333
		print(f"函数内:{a},地址为:{id(a)}")


	print(f"函数外:{a},地址为:{id(a)}")

	test5()

	print(f"函数外:{a},地址为:{id(a)}")
	

在这里插入图片描述
在这里插入图片描述

递归:函数内部调用函数本身

# 求某个数以内的和
	def test6(num):
		if num == 1:
			return 1
		return num + test6(num - 1)

调用递归函数:
	print(test6(100))

在这里插入图片描述

lambda表达式

(匿名函数,如果一个函数有一个返回值,并且只有一句代码,就可以使用lanbda表达式简化)

语法:
变量名=lambda: 表达式/返回值 注:参数可以省略

  1. 不带参数的函数
say = lambda: "真美好"
		
		print(say())  注:跟def定义的函数的调用方式有区别
	

在这里插入图片描述

  1. 带一个参数的函数
say = lambda what: f"你说:{what}"
	
	print(say())  

在这里插入图片描述

  1. 带两个参数的函数
test6 = lambda a,b=222: f"a={a},b={b}"
		
		print(test6(1,2))

在这里插入图片描述

  1. 带条件的lambda
test7 = lambda a,b : a if a > b else b
		
		print(test7(1,2))

在这里插入图片描述

完整代码

# def test():
#     print("ok")
#
#
# test()


# def test2(what):
#     print(f"{what}")
#
#
# test2("世界真美好")

# def test2(a,b):
#     print(f"a={a}")
#     print(f"b={b}")
#
#
# test2(22,11)


# def test1(*args):
# 	"""这是一个求多个值和的函数"""
# 	sum = 0
# 	for i in args:
# 	    sum += i
# 	else:
# 	    print(f"和为{sum}")
#
#
# test1(1, 2, 3,4)


# def test2(**kwargs):
# 	for k, v in kwargs.items():
# 		print(k, v)
#
#
# test2(name="zs", age=19)

# def test3(a, b, c):
#     """
#     这是一个测试函数,测试函数为多个返回值
#     :param a: 值1
#     :param b: 值2
#     :param c: 值3
#     :return: 返回多个值
#     """
#     a += 100
#     b += 100
#     c += 100
#     return a, b, c
#
#
# help(test3)

# def test1(*args):
# 	"""这是一个求多个值和的函数"""
# 	sum = 0
# 	for i in args[0]:
# 	    sum += i
# 	else:
# 	    return sum
#
#
# def test4(*args):
# 	sum = test1(args)
# 	return sum / len(args)
#
# print(test4(12,5,3))

# a=9
# def test5():
# 	# 在函数内部修改全局变量的值
# 	# 必须声明 变量为全局变量
# 	#global a
# 	a = 333
# 	print(f"函数内:{a},地址为:{id(a)}")
#
#
# print(f"函数外:{a},地址为:{id(a)}")
#
# test5()
#
# print(f"函数外:{a},地址为:{id(a)}")


# def test6(num):
# 	if num == 1:
# 		return 1
# 	return num + test6(num - 1)
#
#
# print(test6(100))

# say = lambda: "真美好"
#
# print(say())

# say = lambda what: f"你说:{what}"
#
# print(say("世界真大"))

# test6 = lambda a, b=222: f"a={a},b={b}"
#
# print(test6(1, 2))

test7 = lambda a, b: a if a > b else b

print(test7(1, 2))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值