第三课 使用自定义函数

第三课   使用自定义函数

        这节课的案例主要演示函数的用法,而且是函数的正确用法,涉及的内容有:
        1、函数要先定义再使用,所以定义函数的位置很重要
2、形参、实参、返回值
        3、局部变量与全局变量
        4、程序的多文件结构
        5、Python的格式化输出
       

        例 2-1  不用讲什么语法,这里用函数再求一下三角形面积
       

       

        案例 2-1中的第6行,用def关键字定义了一个函数,名字叫calcu_tri,这种形式就是函数的定义,calcu_tri函数的参数是x和y,然后依旧使用缩进的方法标志函数的范围,calcu_tri函数只有两个语句,而从第11行开始就不是calcu_tri函数的范围了。

        第7行 没什么意思,只是通过打印信息提示一下程序现在运行的位置

        第8行 return是一个Python语法关键字,顾名思义,函数将在此返回(到调用位置),并带回一个值:1.0*x*y/2.0也就是说calcu_tri函数传入参数x,y;并返回按公式1.0*x*y/2.0计算所得到的值。

        第11行取消了缩进,表示回到程序,到15,16行,输入了a和h

        第17行,呼呼哈哈,像数学中调用函数一样,将a,h当作参数调用了calcu_tri函数,然后程序会到calcu_tri函数中去运行,直至运行到calcu_tri函数的return语句,这里调用使用到的参数叫“实参”(实际参数),calcu_tri函数按参数排列顺序接收a,h的值到x,y中x,y属于calcu_tri函数定义时使用的参数叫“形参”(形式参数),calcu_tri函数中return后面的叫“返回值”。之所以出现实参、形参、返回值的说法对编程到没什么意义,就是一会说到各部分时指代比较明确。这里说一句实参和形参是否使用一样的名称着实没有关系。

        可以看到第17行利用一个赋值将calcu_tri函数的值给了area然后在第18行打印

        这里需要知道的是,python也是先定义再使用的语言。于是,上面的程序,把6-8行的函数定义放到19行之后就会有错误,因为程序在17行要求调用calcu_tri函数时,calcu_tri函数还不存在。

        另外 Python也支持格式化输出: 19行可以改成

        print  “area is ”+ '{:d}'.format(area)  

        这里先提一下格式化输出,Python是荷兰程序员Guido van Rossum发明的,荷兰人的语言、语法思维方式显然和我们不一样,我咋觉得和英语国家的人也不一样,所以Python的格式控制太有意思了,需要花一次课才能讲清楚,现在我们用不到,所以知道输出整型数用 '{:d}'.format(整型数)就行了,不用细究。

      注意!!!本次课的重点是:这种函数定义和使用方式没什么实际用途,最大的不方便就是函数不能作为一个工具包被其他程序利用(即复用)。所以把函数打包十分重要,请看案2-2



        案例2-2 示范了如何使用外部文件的资源,这样所有函数都可以被新程序复用了。本案例包括两个文件,一个叫python02_m.py,他将调用calcu_tri函数,但是这个函数在l另一个文件python02_s.py中。于是在python02_m.py的第6行:from  python02_s import *

        这句话说python02_s 中引入所有函数,于是,在python02_m.py中可以使用calcu_tri函数了。注意,from的时候不要有 python02_s.py文件的后缀“.py”




另一个文件


        为什么要这样做呢,这样就可以方便地进行工具包(函数库)的复用了,比如你在python02.py中写了求各种图形面积的函数,那么求下面图形阴影部分面积时,只需要写写函数调用的组合就好了,而具体而微的细节就不用重复了。

         今天的“作业”就是请大家试试:利用多文件函数机制求下面图形的面积,练习的方式可以先仿照案例2-1写一个求圆的面积的函数并调用,以熟悉函数的定义与调用的基本方法,然后就尝试一下多文件机制吧。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值