青少年python系列 35.自定义函数

青少年python教学视频ppt源码

青少年python系列目录_老程序员115的博客-CSDN博客

       使用过了Python自带的函数,你有什么感觉?是不是觉得让你的编程更加顺畅、代码变得更加简洁了呢?可是有时发现Python自带的函数无法满足我们的编程需求,这时我们该怎么办呢?一些优秀的程序员会选择自己在Python中建造函数,下面让我们一起学习这些函数是如何创建出来的。让我们的创建的函数来PK一下Python的内建函数。

        (一个思考,那python自带的函数是不是也是其他程序员编写的呢?通过这些函数的使用,的的确确方便了我们进行代码的简化。)

1 函数的创建

        同学们在创建自己的函数之前,我们先要了解python中一个函数的基本语法规则与基本构造。 自定义函数会有一个标识符关键字即def(define的缩写)来标志这个函数是我们自建的,写下这个关键字也意味着自建函数开始定义。

        一个函数有三个部分组成:函数名、参数,函数体。

        函数名是函数的名字,它的命运规则和python中变量名的命名规则相同:第一、只能由数字、字母、下划线组成(什么是下划线呢?英文状态下使用 shift + “-“可以打出下划线);第二、不能以数字开头;第三、不能与关键字重名,什么是关键字?是指已经被Python自己使用过的单词,因为已经被它占用了

        函数参数的作用是传递数据给函数使用。它和我们之前学过的变量的性质非常相似,都可以接受传递数据。但参数远不止这么简单,下节课,我们将深入的去了解它。

        函数体就是函数的主体,是定义一个函数功能的所有代码组成的整体。需要注意的是,此处的体并不是形象意义上函数的身体,函数体中有着函数功能的代码块,此处应当理解为函数的功能代码块,决定着这个函数所具有的功能和作用

2 函数的调用

        函数的调用非常简单,函数名加一对小括号就可以了,例如我们调用刚刚创建的数:speakName()

        我们可以清晰的看到,定义一个具有一定功能的函数可能会非常复杂,但当相关函数被创建完成,我们再去调用它就非常简单了,大大方便了我们下次去使用它,不用再二次书写相关的功能代码了。

        此外,我们将函数定义外的代码称为主程序。程序是从主程序的第一行代码开始执行的,当我们在主程序中调用函数时,代码会跳到函数定义里顺序执行里面的代码。

3 棋盘上的麦粒数

        古时候,印度有个国王很爱玩。一天,他对大臣们说,希望得到一种玩不腻的玩意儿,谁能贡献给他,将有重赏。

         不久,有个聪明的大臣向他献上一种棋子,棋盘上有64个格子,棋子上刻着“皇帝”、“皇后”、“车”、“马”、“炮”等字。下这种棋子,是玩一种变化无穷的游戏,确实让人百玩不厌。国王就对那个聪明的大臣说:“我要重赏你。说吧,你要什么,我都能满足你。”

         那个大臣说:“我只要些麦粒。”

         “麦粒?哈,你要多少呢?”

         “国王陛下,你在第一格棋盘上放1粒,第二格上放2粒,第三格上放4粒,第四格上放8粒……照这样放下去,把64格棋盘都放满就行了。”

         国王想:这能要多少呢?最多几百斤吧。小意思,就对粮食大臣说:“你去拿几麻袋的麦子赏给他吧。”

         粮食大臣计算了一下,忽然大惊失色,忙向国王报告道:“照这样的计算,把我们全国所有的粮食全给他,还差得远呢!”

        在这个故事里,粮食大臣总共算出了多少粒麦粒呢?总共是18446774073709551615颗麦粒。1立方米麦粒大约有1500万粒,那么照这样计算,得给那位大臣12000亿立方米,这些麦子比全世界2000年生产的麦子的总和还多,怪不得粮食大臣说全国的粮食给他都不够。

        那粮食大臣是怎么算出来数量如此庞大的麦粒数的呢?

        先来观察一下棋盘上前面几个格子放置的麦粒数,第一格棋盘上放1粒,第二格上放2粒,第三格上放4粒,第四格上放8粒,第五格上放16粒,可以看出,每个格子里所放的麦粒数都是前一个格子所放的麦粒数的2倍的规律。

         如果计算棋盘上的麦粒总数,除了棋盘上每一个格子上的麦粒数都计算出来之外,还要把他们64个格子的麦粒数相加。得出一个计算公式:棋盘上总麦粒数=1+2+4+8+…..264

        设计程序如下:

        其中latticeNum代表棋盘总格子数,wheatNum代表麦子总数

        再设计一个自建函数来包裹此功能代码,完成一个计算棋盘上麦子总数的自建函数。

3 python自建函数的使用

        同学们,函数的创建让我们可以重复使用代码功能,大大简化了我们的代码。

        想一想,再增加一些其它的创意,看看自建函数还能怎么用?

        之前的学习中,我们已经学习了很多程序代码,这些程序代码中有相当一部分我们一直在重复使用,那么在我们学习完成自建函数后,是否可以用自建函数来帮助自己简化这些重复使用的代码呢?

        (一个小彩蛋,刚才的故事里国王该怎么应对那个大臣呢?

        国王脸色铁青,忙问粮食大臣说:“那怎么办?要是给他吧,我将永远欠他的债;要是不给他吧,我不就成了说话不算数的小人了吗?请你给想想办法吧。”

        粮食大臣想了想说:“办法只有一个,你应该说话算话,才能让全国人民相信您是位好国王。”

        “可是我没有那么多的麦子呀。”

        “请您下令打开粮仓,然后请献棋的大臣自己一粒一粒地数出那些麦子就行了。”

        “那么要数多长时间呢?”

        粮食大臣计算了一下说:“假设每秒钟能数2粒麦子的话,每天他数上12小时,是43200多秒,数上10年才能数出20立方米,要数完那个数目将需要2900亿年呢。他能活多少年呢?再说枯燥的生活能折磨人,他这样下去岂不要短寿?因此我想,他的本意并不是想要得到那些不可能得到的麦粒,他只是试试我国有没有比他更聪明的人罢了。”

        国王大喜,夸奖道:“看来,至少你比他还要聪明呢!智慧人物治理国家,国家才能兴旺发达。我决定提拔你俩当我的左右宰相!”)

总结

1、如何自定义函数?

答:一个函数有三个部分组成:函数名、参数,函数体。

格式:def 函数名(参数):

          函数体

2、如何调用函数?

答:函数名后面加上一对小括号

格式:函数名()

3、计算棋盘上麦粒数的公式

答: wheatNum = wheatNum + 2**latticeNum

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值