python函数定义与调用

在这里插入图片描述

python函数定义与调用

如果我们用代码实现了一个小功能,但想要在程序代码中重复使用,不能在代码中到处粘贴这些代码,因为这样做违反
了软件工程中 DRY原则。 Python 提供了
函数功能,可以将我们这部分功能抽象成一个函数以方便程序调用,或者提供给其他模块使用。

函数定义

def function_name(parameters):
    expressions

Python 使用 def 开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的
具体功能实现代码,如果想要函数有返回值, 在 expressions 中的逻辑代码中用 return 返回。

函数参数

在使用的调用函数的时候,想要指定一些变量的值在函数中使用,那么这些变量就是函数的参数,函数调用的时候,传入即可。下面看一下函数中参数是如何传递的吧!

def function_name(parameters):
    expressions

parameters 的位置就是函数的参数,在调用的时候传入即可。

例如:

def func(a, b):
    c = a+b
    print('the c is ', c)

在这里定义的一个函数,其参数就是两个数值,函数的功能就是把两个参数加起来。运行程序后,在 Python 提示符内调用函数func, 如果不指定参数 func(), 那么将会出错; 输出 func(1, 2),将 a=1, b=2 传入函数,输出 the c is 3 。所以在调用函数时候,参数个数和位置一定要按照函数定义。如果我们忘记了函数的参数的位置,只知道各个参数的名字,可以在函数调用的过程中给指明特定的参数 func(a=1, b=2), 这样的话,参数的位置将不受影响,所以 func(b=2,a=1)是同样的的效果。

默认参数:
函数中参数可以设定,也可以使用默认的函数参数一般为了方便函数调用,我们可以将这些参数设置为默认参数,那么该参数在函数调用过程中可以不需要明确给出。

if __name__ == '__main__':
    #code_here

如果执行该程序,该 if 判断语句将会是 True,那么内部的代码将会执行。
如果外部调用该程序,if 判断语句则为 False,内部代码将不会执行。

可变参数:
可变参数就是函数的可变参数是传入的参数可以变化的,可以有多个参数同时出现。
注意:注意可变参数在函数定义不能出现在特定参数和默认参数前面,因为可变参数会吞噬掉这些参 数。

def report(name, *grades):
    total_grade = 0
    for grade in grades:
        total_grade += grade
    print(name, 'total grade is ', total_grade)

定义了一个函数,传入一个参数为 name, 后面的参数 *grades 使用了 * 修饰,表明该参数是一个可变参数,这是一个可迭代的对象。该函数输入姓名和各科的成绩,输出姓名和总共成绩。所以可以这样调用函数 report(‘Mike’, 8, 9),输出的结果为Mike total grade is 17, 也可以这样调用 report(‘Mike’, 8, 9, 10),输出的结果为 Mike total grade is 27

关键字参数
关键字参数可以传入0个或者任意个含参数名的参数,这些参数名在函数定义中并没有出现,这些参数在函数内部自动封装成一个字典(dict).

def portrait(name, **kw):
    print('name is', name)
    for k,v in kw.items():
        print(k, v)

定义了一个函数,传入一个参数 name, 和关键字参数 kw,使用了 ** 修饰。表明该参数是关键字参数,通常来讲关键字参数是放在函数参数列表的最后。如果调用参数
portrait(‘Mike’, age=24, country=‘China’, education=‘bachelor’)
输出:name is Mike age 24 country China education bachelor

通过可变参数和关键字参数,任何函数都可以用 universal_func(*args, **kw) 表达。

函数调用

python的函数可以分为内建函数和自定义函数,内建函数可以直接使用;自定义函数需要调用,调用函数时,只需调用函数名,并将参数传递给函数即可,不用考虑函数内部的代码。

举个例子

def my_abs(x):    
    if x >= 0:        
        return x    
    else:        
        return -x

需要注意的是函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。

现在我们调用刚才写好的绝对值函数,并传入一个参数,调用自定义函数时,我们只需调用函数的名称即可,而不必考虑函数内部的代码块是如何执行的

my_abs(-65)

运行结果为:65
注意:如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。return None可以简写为return。
在Python交互环境中定义函数时,注意Python会出现…的提示。函数定义结束后需要按两次回车重新回到>>>提示符下:如果你已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以在该文件的当前目录下启动Python解释器,用from abstest import my_abs来导入my_abs()函数,注意abstest是文件名(不含.py扩展名)。

以上即为本次文章的全部内容,另外本文学习来源为莫烦python课程莫烦python主页,小伙伴们可以前往莫烦主页进行学习。本文只做个人学习笔记使用。

**文章导航:**

零基础学Python教程
在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值