python 基础语法学习笔记 —— 函数篇

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。


笔记资料仅供学习交流使用,转载请标明出处,谢谢配合。
如果存在相关知识点的遗漏,可以在评论区留言,看到后将在第一时间更新。
作者:Aliven888

1、背景

 在程序设计的过程中,会出现这样的情况:某个语句模块在程序中会多次出现,为了避免重复去写那些语句,所以引入了函数的定义。函数可以将一个代码语句模块封装成一个整体,每次使用时只需要直接调用函数即可,有效的减少了代码的重复写。并且,在一个函数中调用另外一个函数,称为函数的调用。

在 Python 中函数分为以下几类:

  • 内置函数(BIF):这一类是 python 的基础函数库,供我们直接使用的。
  • 标准库函数:我们可以通过 import 语句导入库,然后使用其中定义好的库。
  • 第三方库:在 python 社区也提供了很多开源的高质量库,下载并安装这些库后,也可以通过 import 导入的项目工程中。
  • 自定义函数库:程序员在开发过程中自定义的函数库,以便于满足自己开发处理数据的需求。

2、函数的创建和调用

  在 python 中定义函数需要使用关键字 def

2.1、普通函数

  函数的参数本质上就是:从实参到形参的赋值操作。在 python 中“一切皆对象”,所有的赋值操作都是 “引用赋值”。 所以在 python 中参数的传递实际上就是 “引用传递”,而不是 “值传递”。

格式:

##################### 函数的定义 #####################
# 1、函数名后面的冒号不能缺少
# 2、函数可以有参数,也可以无参数,但是 括号 不能缺少
def funName(param1, param2, ...):
	函数体(即前面介绍的语句模块)

##################### 函数的调用 #####################

#参数可以是输实参、形参,也可以是默认参数,后面举例会详细介绍
funName(param1, param2, ...)  
# 无参函数定义
>>> def funName1():
	print("no param")

>>> funName1()  #调用
no param

# 有参函数定义
>>> def funName2(name):
	print("name is :", name)
	
>>> funName2("Aliven") #实参
('name is :', 'Aliven')

>>> name  = "Aliven888"
>>> funName2(name)   #形参
('name is :', 'Aliven888')

# 默认参数
>>> def funName3(name = 'Aliven666'):
	print('name is :', name)
	
>>> name = "aliven"
>>> funName3() # 无参,使用默认参数
('name is :', 'Aliven666')
>>> funName3(name) # 传参,使用传输的参数
('name is :', 'aliven')

2.2、可变(不定)参数函数

  参数的个数不确定有几个(可能是1个,也有可能是多个),此时可以使用 * 实现。

  • *param(1个 * ):将多个参数收集到一个 元组 对象中。
  • **param(2个 ** ):将多个参数收集到一个 字典 对象中。

格式:

# 格式
def funName(* param):
	函数体(即前面介绍的语句模块)

解析:
param : 函数参数列表
# 举例
>>> def funName4(* param):
	print('param num is :', len(param))
	for each in param:
		print('current param is : ', each)

>>> funName4('a', 2, 'hello', 2.1415926)
('param num is :', 4)
('current param is : ', 'a')
('current param is : ', 2)
('current param is : ', 'hello')
('current param is : ', 2.1415926)


# 如果可变参数后面有 其他参数,需要强制命名指定(python 3.0 以上版本)
>>> def funName(*p, a, b):
	for each in p:
		print(each)
	print('a={0}, b={1}'.format(a,b))

	
>>> funName(1,2,3, a = 4, b = 5)
1
2
3
a=4, b=5

2.3、内嵌函数

  在 python 中函数的定义是可以嵌套的,也就是说允许在一个函数的内部创建一个另外一个函数,这种函数就被称为内嵌函数。

>>> def funName5():
	print("first fun")
	def funName5_1():  #内嵌函数
		print("second fun")
	funName5_1() # 这里需要调用下内嵌函数

	
>>> funName5()
first fun
second fun   #内嵌函数的打印输出

2.4、匿名函数

  在 python 中允许使用 lambda 关键词来来创建匿名函数。

lambda 关键词作用:

  • python 写一些执行脚本时,可以使用 lambda 节省下定义函数的过程,同时也会使代码更加精简。
  • 对于一些比较抽象并且整个程序执行下来只需要调用很少次的函数,此时懒得定义函数,就可以定义成匿名函数。
  • 简化代码的可读性,不需要每次都调到函数的 def 定义位置。
# 普通函数定义
>>> def funName6(x, y):
	return x * y
	
>>> funName6(2, 3)
6

# 内嵌函数定义
# 冒号(:)前面是参数,多个参数时,使用逗号隔开;冒号后面的是函数处理
>>> fun = lambda x, y : x * y
>>> fun(2, 3)
6

猜你喜欢

转载自blog.csdn.net/Aliven888/article/details/114265801