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

从这里可以看出函数作用:

  1. 代码复用;
  2. 代码封装;
  3. 便于代码维护;
  • 封装理解:我们可以直接调用函数,不必关心内部实现,例如:print函数调用;
  • 代码维护理解:对于某个功能函数,如果中间出现问题,只需要修改函数即可,对调用者没有影响。

3. 函数定义三要素

函数三要素:函数名,函数参数,函数返回值。

3.1 函数名

函数名实质是一个指向函数的变量名,Python中函数名命名规则:

  1. 函数名必须具备一定的可读性;
  2. 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这个函数要不要加返回值,我们希望这函数功能:

  1. 接受一个值a,判断a是否是奇数;
  2. 如果是奇数,返回True;
  3. 如果是偶数,返回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 函数调用:

调用函数之前,需要确认三个事情:

  1. 调用函数是,传入参数必须符合函数定义要求;
  2. 传入参数类型,顺序要符合函数要求;
  3. 理解函数作用,根据需求决定是否接受函数返回值;

来看几个例子

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基础内容基本介绍完了,下节我们来进入数据结构的学习。

版权声明:
作者:WaterBear
链接:https://l-t.top/2868.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录