- 函数
- 函数的几种定义方法
- 函数的返回值
- 函数的调用
- 函数的实参和形参
- 实参的分类
函数
函数的几种定义方法
函数拥有以下几种定义方法,第一种:没有参数
def self_max():
a,b = 10,20
if a > b:
print(a)
elif a == b:
print('别搞,两个变量相同。')
else:
print(b)
self_max()
'''
20
'''
第二种,传入参数的函数
def self_max(a,b):
if a > b:
print(a)
elif a == b:
print('别搞,两个变量相同。')
else:
print(b)
self_max(20,25)
self_max(15,10)
self_max(15,15)
'''
25
15
别搞,两个变量相同。
'''
第三种,什么都不做留给之后再说吧
def self_max():
pass
相当于只写了一个return None
函数的返回值
- 函数拥有返回值需要用到一个关键字:return
return之后可以放任意数据类型的变量。但是需要注意的是,如果放入了多个值,则会返回元组类型的变量(使用括号将多个值包起来一起返回)。
def max_self(a,b):
if a > b:
return 1
elif a == b:
return 'a'
elif a < b:
return 'that's good!',1
print(max_self(2,1))
print(max_self(1,2))
print(max_self(1,1))
'''
1
("that's good!", 1)
a
'''
函数的调用
或许在这一节大家伙要换一个视角来看待函数,把函数的名称看做成另外一种形式的变量名。把函数体中处理过程看做是对变量的加工,最后返回出的返回值仍旧是一个变量,用看待变量的视角来看待函数,或许函数这一个感觉有点抽象的概念会变得稍微亲民一些。
def self_max(a,b):
if a>b:
return a
elif a==b:
return None
else:
return b
print(self_max(10,20)) #根据函数的逻辑这里应该返回一个值为20的整数型变量,那么就可以把这个函数当成一个变量名为self_max(10,20)值为20的变量
sum = self_max(10,20) + 6 #按照之前的逻辑来说,大家就可以把这里看做sum = 20 + 6,这样是不是就清晰很多了
print(sum)
'''
20
26
'''
函数的实参和形参
def self_max(a,b):
if a>b:
return a
elif a==b:
return None
else:
return b
print(self_max(10,20))
注意这里def函数定义语句后面括号中的a和b,这就是函数的形参。函数的形参不具有实际的作用,一般形参的变量名都是起到描述作用,提示程序员该往里面放入什么类型的内容。而后面的print语句中往self_max函数括号中放入的两个参数是函数的实参,这里的10和20就具有实际的作用,参与函数中相关的运算。
实参的分类
函数中的实参分为位置实参和关键字实参
def exp_function(args,**kwargs): #后面的形参名为args,**后面的形参名为kwargs,为约定俗成
print(args)
print(kwargs)
exp_function(1,1,2,2,3,4,5,6,x='a',y='b',z='c') #其中没有特地给变量名的实参为位置实参,指定变量名的实参为关键字实参
'''
(1, 1, 2, 2, 3, 4, 5, 6)
{'x': 'a', 'y': 'b', 'z': 'c'}
'''
可以看到位置实参的变量赋给了*args中并以元组的形式存储,关键字实参的变量赋给了**kwargs并以字典的形式存储。
同时数据也可以通过*传入函数形参之中
def exp_function(a,b,c,d,e):
print(a,b,c,d,e)
a = (1,2,3,4,5)
exp_function(a) #这样就使用了将值传入了形参,但是注意要与函数形参数量对应