005-函数与变量作用域
注:本笔记对应江灏老师在B站的教学视频https://www.bilibili.com/video/BV1zE411V79p
一、函数处理
函数可以避免我们重复复制粘贴,可以增加代码的艺术性。
(一)调用函数,得先定义。
(二)函数定义的两种方式:有参和无参
defsquare(x):#有参数 x为形参
s=x**2
returnx
s=square(2)#调用 2为实参
print(s)
deffunc():#无参
print("hello world")
func()#调用
(三)参数传递
1.括号里面的叫形参,调用时传递进去的是实参
2.注意:如果传入的第一个参数是用关键词传入的,那么后面的每个参数都需要是关键字传入,否则会出现语法错误。
deffunc(x,y,z):
s=x+y+z
returns
print(func(1,2,3))#位置传入
print(func(x=1,z=3,y=2))#关键词传入
print(func(1,y=2,z=3))#正确 print(func(x=1,2,y=3))是错误的
3.可变长参数
deffunc(x,y,*args):#默认把y后面的数字打包成元组,要是是**则打包成字典
s=1+2*x+y*y
foriinargs:
s=s+i
returns
print(func(1,2,3,4,5,6,7))#默认把2后面的数字打包成元组,
4.函数的返回
return后面即为函数运行后返回的值。
(四)函数的嵌套
defmax(x,y):
ifx>y:
returnx
else:
returny
defmax4(a,b,c,d):
res1=max(a,b)
res2=max(res1,c)
res3=max(res2,c)
returnres3
print(max4(4,5,6,2))
(五)函数递归
直接调用函数本身
defdel1(group):
delgroup[-1]
iflen(group)>0:
del1(group)
else:
print("已经成功清除,检验。现在长度为",len(group))
list1=[1,2,3,4,4,5,5]
del1(list1)
二、变量作用域
全局变量
定义在函数外的变量,可以在整个程序范围内被访问
局部变量
定义在函数内的变量,只可以在其被声明的函数内部访问
total=0
defsum(a,b):
#在函数内引用全局变量
#global total即可
total=a+b
print("函数内是局部变量: ",total)
returntotal
sum(10,20)
print("函数外是全局变量",total)
三、python内置函数
len(),abs()等,自己需要的时候查。