函数分两步:函数的定义、函数的调用
函数的复用性很强,再次需要完成这些功能不需要再一次的写功能代码,直接再次调用就可以了
定义规则:函数必须先定义后调用,否则程序将报错
调用规则:函数定义部分的代码仅用于声明函数,调用时才执行函数内容
函数命名规则:避免关键字、见名知意的效果
定义的时候有形参,调用的时候一定要有实参
一、基本函数
函数是直接把一些功能封装在一起,拿来就直接可以用,
打个比方,函数相当于一个已经由零件封装好的风扇,想用的时候直接插电就可以用,当然一堆零散的零件摆在这也能组成一个风扇,但是它不能直接拿来用
函数的基本语法结构:
def 函数名(参数列表): # 参数解决了函数灵活性的问题,可以由外部传递进来
函数体
return 变量
传递一个参数没有问题,传递多个参数也没有问题
def abs(): # 自己写一个函数
a = 8
if a<0:
print(-a)
else:
print(a)
abs()
def abs(a): # 括 号 里 面 放 属 性 的 ,---> 隐藏了一波操作,把a的值赋进来,看括号有没有东西,有一个传一个
if a<0:
print(-a)
else:
print(a)
abs(-9) # 函数的调用
可以通过定义一个函数,后续直接调用函数,就可以实现功能
定义冒泡排序函数,对一数组进行冒泡排序
def maopao(a):
for i in range(len(a)-1):
for j in range(i+1,len(a)):
if a[i] > a[j]:
temp = a[i]
a[i] = a[j]
a[j] = temp
del temp
b = [8,6,7,2,1]
maopao(b)
print(b)
传递一个参数没有问题,传递多个参数也没有问题!
有了函数以后,什么功能都可以封装在函数里
定义函数的 参数 a , b 叫做形式参数,调用函数是传的参数叫做实参
传参的时候,参数数量要一一对应,否则就会报错
参数的作用域:
函数定义的参数(形参)从定义位置开始到定义结束位置有效。函数间不能共享参数(形参)
def max(a,b):
if a>b:
print(f'{a}和{b}的最大值为:',a)
else:
print('%s和%s的最大值为:%s' %(a,b,b))
def min(c,d):
if c<d:
print(f'{c}和{d}的最大值为:',c)
else:
print('%s和%s的最大值为:%s' %(c,d,d))
max(1,2)
min(3,4)
两个函数里的参数不能串着调用,出了这个方法之后,它里面的变量在另一个方法里就用不了了
变量的作用域:
在函数内部定义的变量,仅能在该函数中被调用,不能在其他函数中被调用,【局部变量】
但是在所有函数外面定义的变量,就可以在所有函数内被调用,我们称之为【全局变量】
a = 10
def demo():
# global a
a=5
print(a)
demo()
print(a)
>> 5
>>