一、函数的定义
函数是组织好的,可以重复使用的、实现单一功能的代码。函数中的代码可以多次使用
- 通俗地来说,函数就是一个包裹,一个函数就是一个包裹,每个包裹都有一个功能,只要需要某个功能,只需要拿到包含该功能的包裹即可;
- 你需要调用多少次功能,就使用多少次包裹。
二、函数的组成
- 以上这是我们之前使用过的函数,包含输入数据、处理数据、输出数据等功能;
- 这些函数中都有(),里面存放的是我们要给函数处理的数据。这种数据称之为【函数的参数】;
- 【参数】指的是函数要接受、处理的数据,就是一个变量。
>>> length1=len('神雕侠侣')
>>> print(length1)
4
>>> length2=len('倚天屠龙记')
>>> print(length2)
5
>>>
- 观察以上的代码,参数不一样,结果也会不一样。
三、定义和调用函数
1. 定义函数
定义函数的基本语法如下:
见如下示例:
>>> # 以y=12*x+30为例,定义一个函数
>>> def func(x):
y = 12*x+30
return y
>>> print(func(3))
66
>>>
-
第一行的def的全称为define,即为“定义”的意思:
- “func"是函数的名字,是自己根据功能情况来取名的;
- ”(x)"中的x也是自己取名的,可根据功能进行命名;
- 切记最后面需要跟上英文的冒号
-
def的下一行是函数体,这是函数要实现的功能,即根据x的值,计算12*x+30的结果,同时将结果赋值给y;
-
第三行return是返回的意思,可以指定函数执行完毕后最终会得到什么样的结果,否则计算机是无法判断出函数最终要输出什么结果的。
-
注意事项:
- 函数名:
- 名字能体现函数的功能,一般用小写英文字母和数字、英文下划线组合使用,不要区稀奇古怪、让人摸不着头脑的函数名称,体现自己不专业!
- 不能与Pthon内置函数重名。
- 函数参数:
- 根据函数功能,括号内可以有单个参数、多个参数,也可以没有参数;
- 参数的命名规则与函数命名规则一致;
- 括号是英文括号,后面是英文冒号;
- 函数体:是函数的执行过程,用于完成函数的功能,需要缩进;
- return返回值:需要返回什么数据,则写什么数据;若不需要,可不写。
- 函数名:
定义函数,是将函数中的功能封装好,等待调用
2. 调用函数
>>> def math(x):
y = 30+x
return y
>>> num = math(4)
>>>print(num)
34
>>>
- math(4)就是调用函数,math为定义函数的名字(定义与调用时名字一致);
- 传递参数,4对应函数参数x, 在调用函数时,将10传递给x;
- 在函数体中,y = 30 +4, 得出y的结果为34;
- num用来接收y的值,即num=34。所以,打印出来的最终结果是34。
>>> def order():
x = input('您好,请问你需要什么物品?')
print('跟您确认一下,您需要的物品是%s'%x)
>>> order()
您好,请问你需要什么物品?医用N95口罩
跟您确认一下,您需要的物品是医用N95口罩
>>>
四、函数的进阶使用
1. 函数的类型
- 无名函数。如果是进行一些简单的处理的函数,可以使用关键字“lambda”来记述,这种写法称作无名函数(lambda函数)
def up(s):
return s.upper()
print(up('heelo'))
# 输出结果:
HEELO
lo = lambda s:s.upper()
print(lo('hello'))
# 输出结果:
HELLO
>>> def promotion():
print('江南皮革厂')
print('江南皮革厂倒闭了!')
print('老板带着小姨子跑路了')
print('原价300、500的真皮皮鞋')
print('统统只要88元,只要88元')
print('走过路过,千万不要错过了啊!')
>>> promotion()
江南皮革厂
江南皮革厂倒闭了!
老板带着小姨子跑路了
原价300、500的真皮皮鞋
统统只要88元,只要88元
走过路过,千万不要错过了啊!
>>>
- 如上所示的函数,不需要输入参数,也不需要返回值,运行函数直接打印显示内容即可
- 多个参数的函数(位置参数)。需要注意的是:无论多少个参数,调用函数时参数的顺序要与设置函数时的参数顺序保持一致
>>> def wuxia(jinyong,gulong,huangyi):
print('金庸小说:%s'%jinyong)
print('古龙小说:{}'.format(gulong))
print('黄易小说:{}'.format(huangyi))
print()
>>> wuxia('天龙八部','萧十一郎','大唐双龙传')
>>> wuxia('倚天屠龙记','天涯明月刀','寻秦记')
>>> wuxia('射雕英雄传','流星蝴蝶剑','覆雨翻云')
金庸小说:天龙八部
古龙小说:萧十一郎
黄易小说:大唐双龙传
金庸小说:倚天屠龙记
古龙小说:天涯明月刀
黄易小说:寻秦记
金庸小说:射雕英雄传
古龙小说:流星蝴蝶剑
黄易小说:覆雨翻云
>>>
- 默认参数。切记,**默认参数在位置参数之后。**若在调用函数时,给默认参数的参数赋值了,会覆盖默认参数。
>>> def wuxia(jinyong,gulong,huangyi='寻秦记'):
print('金庸小说:%s'%jinyong)
print('古龙小说:{}'.format(gulong))
print('黄易小说:{}'.format(huangyi))
print()
>>> wuxia('天龙八部','萧十一郎')
>>> wuxia('倚天屠龙记','天涯明月刀')
>>> wuxia(