python函数入门和使用

一、函数的概念
python中函数是最常用的调用方法。所谓函数,是一个行为,一个动作,一个功能,一个过程。可以将函数理解为一个“代词”,用来指你定义的某个方法。

二、python定义函数方法
def 函数名称 (参数):
函数内容
返回值(可以没有)

三、函数命名规则
函数是一个变量,所以它的命名规则与变量相同:
1、变量名称只能由(大小写字母、数字、_)有效符号组成
2、不要使用数字开头!!!
3、不要使用关键字或者保留字!!!
4、变量命名尽量有意义
5、推荐使用下划线命名法

四、函数的分类
函数大概可分为七类,通过是否存在返回值可分为有返回值的函数和无返回值的函数,通过是否存在参数可分为有参函数和无参函数,通过函数定义者可分为系统函数和 第三方定义函数以及 自定义函数
1、有返回值函数:
①:使用return关键字返回结果
②:函数遇到return,立即返回
2、无返回值函数

3、有参函数
①:参数个数,根据情况任意
②:参数类型,是任意的类型
4、无参函数

5、系统函数:
由官方定义的函数:
如 input print type

6、第三方定义的函数:
需要安装模块,才能使用
pip install 模块名称(Linux需要先安装pip)

7、自定义函数:
也就是我们自己定义的函数(使用def)

五、函数调用
函数本质其实就是对象
调用就是先压栈 然后使用,走完整个函数流程之后,将函数出栈。
压栈(进栈):将函数放入栈中执行。
弹栈(出栈):函数执行完成后出栈。

六、引用传递和值传递
引用传递:本质是用一个地址,对象,引用。
值传递:本质就是用了这个值。

七、函数参数
默认值参数:
如果一个函数的参数,在大多数情况下,值是固定的一个值,此时可以使用默认值参数
这个时候,如果不传该参数,值就取默认的,如果传递了,则按照传递的算。
注意:默认值参数,一定要写在普通参数之后

可变参数:
在python,如果一个函数中参数可能有很多(这些参数,也可以没有),建议将这种参数设置为可变参数
参数名称(习惯性args)
注意:可变参数默认是以元组封装所有参数

命名(关键字)参数:
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

八、递归
首先要知道什么是递归,递归字面的意思即逐层递进、归纳总结。
递归实质上是一个自己不断调用自己的过程,通过对自身的不断调用,来解决相应问题。
举个例子,如果要从1加到n,常规方法就是写一个循环让他自身累加最后输出即可,但递归操作更加直接,比如我们要计算55的值,通过不断调用自身,让n从55逐一开始向下累加,每次return返回的值就是上次计算的值-1,然后下一次调用自身的时候自身的值已经变成了-1后的值,一直调用一直-1直到减到1位置,即可实现累加。

#for循环累加
def x(n):
	a=0
	for i in range (n+1):
		a+=i
return a
print (x(55))


#递归累加
def x(n):
	if n == 1:
		return 1
	return n+x(n-1)
print (x(55))

两次输出结果一致
在这里插入图片描述

但是从这里我们发现递归的一个问题,就是他不会自动停止,是一个死循环,如果不主动施加条件让他停止他会一直执行下去。
递归操作与调用函数不同的是,调用函数是压栈过后可以自动释放内存空间的,而递归操作压栈之后不会主动释放内存空间,通过不断的压栈,不断的申请内存达到对自身不断的调用的目的。所以一定要注意递归终止条件,否则会造成栈溢出。Python中规定不能超过1000次,不过如果有必要也通过指令可修改次数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值