学习python函数 2020.10.10

python中的函数

一、什么是函数

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

二、为什么使用函数

减少代码重复

三、如何定义函数

def 函数名(参数列表):
	要执行的代码
	…………
	return  返回值

举个例子

def stairs(num):
	if num == 1:
		return 1
	elif num == 2:
		return 2

	return stairs(num-1) + stairs(num-2)

x = int(input("请输入楼梯的阶数:"))
res = stairs(x)
print(res)

四、调用函数

函数定义好后,需要调用函数才能使函数内的代码生效

//定义函数
def 函数名(参数列表):
	要执行的代码
	…………
	return  返回值

//(调用函数)
函数名称(参数列表)

如果def对应的括号里有参数,在调用函数时括号里也要加上参数,如果没有的话,就不加

在调用函数的过程中,函数在python里本质就是一个对象,调用函数时为压栈(push),调用完成后函数要立刻出栈(pop)

五、函数的分类

有无参数
	有参函数  def 函数名(参数列表):
	无参函数  def 函数名():
是否存在返回值
	有返回值的函数——————如果调用者需要运行结果,则使用return关键字返回这个结果
	无返回值的函数
定义者
	系统函数——————由python官方定义的
	第三方函数——————做python的公司,或者个人,他们制作好并且封装的模块或者框架,可供其他人下载
	自定义的

六、全局变量在函数中的使用

全局变量(global variable):定义在py文件中
局部(本地)变量(local variable):定义在函数或者类内部的,外界不能访问

注意:在python中,函数内部不允许修改全局变量,如果要在Python中强制修改全局变量
在函数第一行,使用"global"将变量名称声明

num = 10
def test():
	#如果硬要修改全局变量的话,需要申明需要修改全局变量
	global num
	 num2 = 30
	 print("hello")
	 print(num)

	#要求将num + 10
	num += 10
	print(num)
	print(num2)
	print(num+num2)

test()



最终结果
hello
10
20
30
50

七、局部变量

局部变量是在函数内部声明的变量,且只能在函数内部使用,因为在python中存在垃圾回收机制,函数执行结束这个变量就会被回收,出了函数这个变量就不认识了(垃圾回收机制回收了内存)

def wendang():
	name = "wenben"
	print(name)

wendang()

八、引用传递和值传递

引用传递:传递的是对象的地址(也就是对象),因此会对对象的值产生影响
值传递:仅仅会传递变量的值,不会对变量本身产生影响

九、参数

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

def getCircle(r = 5, PI = 3.141592653):
	a = PI * r**2return a:

print(getCircle())

可变参数:
*args——表示元组,可变参数,以元组的形式保存所有的可变参数
args在这里为参数的意思

def printInfos(*infos):
	for i in infos:
		print(i)
//调用的时候传递几个,则显示几个
printInfos("我的世界","mc","史蒂夫","沙盒");
printInfos("穿越火线","保卫者","潜伏者","爆破","排位");

命名参数(关键字参数):
**kwargs——kw(keyword关键字)以字典类型保存所有命名的参数

def printLGD(msg,name,**kwargs):
	print(msg,name)
	print(kwargs)
	

printLGD(msg = "12",name="Mike",age="50",gender="男");

猜你喜欢

转载自blog.csdn.net/MHguitar/article/details/109000882