8.函数定义与调用
前面章节中我们介绍了逻辑相关语句:if/elif/else, while, for;
对程序有了基本了解,这节我们来看下函数相关概念及使用。
主要内容:
- 小目标:掌握函数
- 主要内容:函数定义,函数参数,函数返回值,函数作用
1. 一个例子:
判断一个数是否是奇数?
奇数:对2求余为不为0;代码实现:
a = 11
if a%2:
print("%d is odd"%a)
实现比较简单,新的需求来了,给定10个,100个数,如何处理?
例如:
a = 10
b = 20
c = 7
......
如果这样下去,都是重复的代码,所以我们要引入函数。
2. 函数
python中函数定义的语法:
def func(args):
pass
func()
def:函数定义关键字;
func:函数名称;
args:函数参数;
函数:默认返回值为None;
函数调用:func(args);如果有参数,需要穿对应的参数;
我们使用的print, input, range等都是Python中的内置函数。
下面我们来定义第一个函数,功能:判断一个数字是否为奇数,代码实现:
def isodd(a):
if a%2:
print("%d is odd"%a)
isodd(10)
isodd(11)
结果:
11 is odd
从这里可以看出函数作用:
- 代码复用;
- 代码封装;
- 便于代码维护;
- 封装理解:我们可以直接调用函数,不必关心内部实现,例如:print函数调用;
- 代码维护理解:对于某个功能函数,如果中间出现问题,只需要修改函数即可,对调用者没有影响。
3. 函数定义三要素
函数三要素:函数名,函数参数,函数返回值。
3.1 函数名
函数名实质是一个指向函数的变量名,Python中函数名命名规则:
- 函数名必须具备一定的可读性;
- python遵循 pep8,一般是小写字母加下划线命名,例如:get_value_by_id(id);
3.2 函数参数
python函数支持无参,形参,可边长参数,在后面函数章节我们在详细讲解;
函数参数定好之后,一般不会修改,即使修改也要做好向前兼容;
来看几个例子:
def get_pi():
pass
def count_area(r):
pass
def my_add(x, y):
pass
3.3 函数返回值:
Python函数中使用关键字 return显示返回值;
来看看下idodd默认返回值:
def isodd(a):
if a%2:
print("%d is odd"%a)
ret = isodd(10)
print('ret:', type(ret))
输出结果:ret: <class 'NoneType'>
函数默认的返回值为None;
一个问题:isodd这个函数要不要加返回值,我们希望这函数功能:
- 接受一个值a,判断a是否是奇数;
- 如果是奇数,返回True;
- 如果是偶数,返回False;
根据需求,需要给isodd函数加上返回值,对其进行修改:
def isodd(a):
if a%2:
return True
return False
a = 10
print("a is odd:", isodd(a))
输出结果:a is odd: False
3.4 函数调用:
调用函数之前,需要确认三个事情:
- 调用函数是,传入参数必须符合函数定义要求;
- 传入参数类型,顺序要符合函数要求;
- 理解函数作用,根据需求决定是否接受函数返回值;
来看几个例子
def isodd(a):
if a%2:
return True
return False
def my_add(x, y):
return x+y
def get_pi():
return 3.14
pi = get_pi()
print('pi:', pi)
a = 10
print('a is odd:', isodd(a))
结果:
pi: 3.14
a is odd: False
c: 13.14
来看一个错误例子:
my_add(10, 20, 30)
结果:
TypeError: my_add() takes 2 positional arguments but 3 were given
这种错误提示我们:调用函数时,参数出错。
总结:
- 函数三要素:函数名,参数,返回值;
- 函数调用注意传入参数;
- 根据需求与函数返回值,接收函数的返回值;
到这里,python基础内容基本介绍完了,下节我们来进入数据结构的学习。
文章目录
关闭