1. 函数的定义和调用
-
定义函数的关键字:def
-
函数名的规则跟变量一样
-
函数名后必须有()
-
函数以及参数下面应该有对应的注释描述信息
-
调用函数时必须加上()
-
声明函数: def 函数名()
-
调用函数: 函数名()
-
函数的执行顺序是从上到下执行
-
函数体可以为空,但是调用时返回None
def yan_len():
lst = [1, 2, 3, 4, 5, 6]
count = 0
for i in lst:
count += 1
return count
count_lst = yan_len()
print(count_lst)
>>>
6
-
yan_len:定义的函数名
-
函数内部的代码叫做函数体
-
return count:函数的返回值
-
count_lst = yan_len():函数的调用,也是函数返回值的接收
2. 函数的返回值
-
函数的返回值使用:return
-
函数体中return之后的代码不会再执行
-
return可以不用写,也可以返回一个值,也可以返回多个值
-
return没有返回值时:
-
不写return等于return None
-
只写一个return,不指定返回值,也等于return None
- return的作用:
-
return返回一个值时,可以返回任意的数据类型。返回什么,就接收什么
-
return返回多个值:
-
用一个变量接收返回值,接收到的是一个元组类型
-
返回值有多个变量接收时,返回值的个数应该跟接收变量的个数完全一致
3. 函数的参数
def yan(info):
count = 0
for i in info:
count += 1
return count
print(yan('yy'))
>>>
2
-
yan(info):接收参数,又叫形参
-
yan('yy'):传参数,又叫实参
-
函数参数包括:实参和形参。实参是实际传的参数,形参是接收参数的变量
-
传参数可以传任意的数据类型,传的哪种类型接收的就是哪种,可以支持传多个参数,多个参数分别可以传任意的数据类型
def yan(num):
if len(num) > 3:
return True
else:
return False
print(yan('liyan'))
print(yan([1, 2, 3]))
print(yan({'name': 'yy'}))
print(yan(('a', 1, 2, 'bbb')))
>>>
True
False
False
True
-
在实参的角度,有两种传参的方式:
def yy(x, y, z):
return x, y, z
print(yy('aaa', 'False', 100))
>>>
('aaa', 'False', 100)
def yy(x, y, z):
return x, y, z
print(yy(y = 'aaa', z = 'False', x = 100))
>>>
(100, 'aaa', 'False')
-
按照位置和关键字传参数可以混用,条件是:
-
先传按位置的,再传按关键字的
-
按照位置传参只能接收一个值,不能重复接收
def yy(x, y, z):
return x, y, z
print(yy(False,z = 'aaa', y = 100))
>>>
(False, 100, 'aaa')
-
形参在接收的角度上,又叫位置参数,形参的数量必须和实参的数量一致
def yan(arg1, arg2):
print(arg1)
print(arg2)
yan('aaa', 'bbb', 'ccc')
>>>
TypeError: yan() takes 2 positional arguments but 3 were given
-
默认参数:
def classmate(name, sex='男'):
print('姓名:%s,性别:%s' % (name, sex))
classmate('李岩')
>>>
姓名:李岩,性别:男
def classmate(name, sex='男'):
print('姓名:%s,性别:%s' % (name, sex))
classmate('丫丫', '女')
>>>
姓名:丫丫,性别:女
def default_param(a, l = []):
l.append(a)
print(l)
default_param('liyan')
default_param('yy')
default_param('yange')
>>>
['liyan']
['liyan', 'yy']
['liyan', 'yy', 'yange']
def default_param(a, l = []):
l.append(a)
print(l)
default_param('liyan', [])
default_param('yy', [])
default_param('yange', [])
>>>
['liyan']
['yy']
['yange']