- 什么是函数:
函数是某些过程、功能、行为、动作等的代码体。
实现了某一功能或者某些功能指令的集合。
函数就是一个功能就是一个过程!!!! - python如何定义函数
def 关键字 # define function
def 函数名称([参数列表]):
// 函数体
//可以通过return返回返回值
// [return 函数的返回值]
def show():
print("这个是一个函数")
print("这个是第二句")
# 使用return关键字返回这个结果
# return 1
- 函数的调用
函数定义完成后,并不会自己调用,加载到存中,等待调用者来调用
函数名称([实参列表])
# 调用函数
# a = show()
# print(a)
show()
-
函数的分类
(1)、以函数是否存在参数
|-- 无参数

|-- 有参数
(2)、以是否存在返回值
|-- 有返回值

|-- 没有和返回值

(3)、定义者来分类
|-- 系统,python官方定义好的,内置到cpython解释器内部的
|-- 第三方(公司、组织、个人)
|-- 自定义的

-
全局变量(local 本地变量):
在python中,定义在py文件的变量,叫做全局变量
特点:在代码运行时,变量始终有效(不是手动回收) -
局部变量:
定义在函数中的变量叫做局部变量,当函数被垃圾机制回收,该变量也会被回收掉,
局部变量的作用域也只有在函数内有效

在函数外面不能访问到函数内部定义变量(局部变量)
反过来说,在函数内部可以访问本地变量(全局变量)
函数使用全局变量的注意点:
如果一定要在函数中操作全局变量,使用global关键字来申明
函数的调用过程:
函数调用本质就是压栈
调用完成后会进行弹栈
注意:在若数据类型语言中,万物皆对象,函数也是对象
函数的参数类型任意(基本数据类型+对象)
注意:
强数据类型语言中,函数不允许嵌套、包含函数
若数据类型 运行函数成为参数,传递另外一个函数中的

-
函数参数
(1)、默认值参数,
注意:当参数中有值的,默认值参数也就是说,如果在调用的是,给这个参数赋值了,则按照赋值的情况算如果没有赋值,也不报错,按照默认值算
在调用的时候,如果参数和默认值一致,那么久可以不写

(2)、可变参数
可变参数, *变量形式来表示可变参数
表示可以传递实际参数,也可以不传递的参数

(3)、命名参数(关键字参数)

(4)、万能参数(可变参数 + 关键字参数)

-
函数递归:
函数自身调用自身叫做函数递归
注意:如果递归中没有结束条件,会形成死循环(python会报错)
前提条件:
(1)、自身调用自身
(2)、要有终止条件

-
main函数
if name == “main”:
//注意:python并不是从main入口的!!!
//代码是脚本,从而上而下运行
//python的main函数的目的:写在main函数中代码,并不会导入到其他模块中 -
匿名函数
没有名称的函数,称为匿名函数
python在早期不支持早期不支持匿名函数的,现在有了lambda表达式
python中lambda的怎么书写:
lambda [参数列表]: 代码 # 如果需要返回,则不需要写返回值
在python中,lambda代指一个没有名称的函数(匿名函数)
一般lambda,也就是匿名函数,一般表示简单的函数(一行或者两行)
匿名函数的优点:简化代码
匿名函数的缺点:降低代码的可读性,增加了代码维护成本

-
偏函数
在python中,我们有时候需要调用某个函数,如果想讲该函数的中的某个参数设置一个固定值那么久可以使用偏函数的东东
functools 系统内置模块
import functools
from functools import partial
new_int = partial(int, base=8)
partial(函数名称, 参数=固定的值 … )
简化操作
本文详细介绍了Python中的函数,包括函数的定义、调用、分类,如无参数、有参数,有返回值、无返回值的函数。强调了局部变量和全局变量的区别,以及在函数中如何使用全局变量。还讨论了函数的参数类型,如默认值参数、可变参数、命名参数和万能参数,并提到了函数递归的概念和注意事项。此外,还提及了main函数的作用、匿名函数(lambda表达式)的应用及其优缺点,以及偏函数的使用,通过`functools.partial`简化函数调用。

1375

被折叠的 条评论
为什么被折叠?



