python——函数

函数

1、什么是函数
函数是一个功能、是一个行为、是一个动作。函数就是一个具有名称的功能代码的集合。
一段用来解决某一个问题的代码或者指令,具有名称的集合。

为什么使用函数:
------------减少代码重复!!!

2、python如何定义函数

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

def 函数名称([参数列表]):
	# 函数体
	# 函数得到一个结果,如果调用者需要,则需要返回这个结果
	# return 返回值

3、函数调用:
------------函数名称([实参列表])

def hello() :
--------print(“Hello World!”)
hello()
--------Hello World!

4、
|-- 函数的参数问题
|-- 默认值
|-- 可变参数
|-- 命名参数
|-- 万能参数
|-- 函数作为参数传递到函数内部的问题
|-- lambda表达式(匿名函数)
|-- 偏函数和递归

python的main函数:

           if __name__ == '__main__':
	# python是一门脚本语言,所以它的main函数和c或者java等不一样
	# python中的main函数并不是代码开始执行的位置,写在main函数中的代码一般是测试代码,用来测试当前模块
	# 并不能导入到其他模块中

默认值参数:
在函数定义时,如果一些参数的值,一般都是不是不变某个值,则可以将该参数设置为默认参数,这样减少调用者的麻烦

可变参数:
*变量

关键字参数:
**变量名称

万能参数:
*args, **kwargs

5、全局变量和局部变量

全局变量:定义在模块(.py)中,可以在该模块定义后任何地方都可以访问
局部变量:定义在函数内部的变量,作用域只是在当前函数内有效,出了函数,无法访问到

---------在函数中,能访问到全局变量,但是注意:在python中,函数内不允许修改全局变量
---------如果确实在函数内,需要修改全局变量,必须要提前申明
---------global 全局变量 ##需要修改全局变量可以使用global,尽量不用

6、函数的调用

压栈,函数调用本质就是将堆中的函数调用到栈中执行,这个过程被称为压栈,等函数执行完成,会立刻执行出栈(弹栈),执行函数就是将函数调入栈中执行,执行结束再进行弹栈出来。

7、函数的参数问题

|-- 默认值参数
# 默认值参数,在参数上,给定一个最常用的值,在调用的时候,
# 如果和默认的值一致,就可也不用传递这个参数

 def get_cricle_area(r, pi=3.14):
	pass
注意:默认值参数,必须放在普通后面!!!

|-- 可变参数

def show(name, age=16, *args):#可写可不写称为可变
	pass
args以元组的形式保存

|-- # 命名参数(关键字参数)

def show2(name, age, **kwargs):
	pass
kwargs是以字典的形式保存

8、函数递归

函数自身调用自身
注意:必须要有终止条件,没有终止条件的递归是一个死循环

9、lambda表达式:
# 注意:如果需要返回值,不用添加return,会自动返回

lambda [参数列表]:函数体

lambda作用
1、在python实现匿名函数
2、简化了编程
缺点:
1、降低了代码的可读性,提高代码的复杂度,提高了代码的维护成本

10、偏函数

使用functools.partial函数将一个函数的某些默认值转换为其他想要的默认值函数。

import functools
new_int = functools.partial(int, base=8)
新函数 = functools.partial(函数, 参数=新的默认值)

>>> new_int("1234")
668
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值