函数

数据科学与人工智能

共 1387字,需浏览 3分钟

 ·

2020-09-02 03:58

一、引入——代码复用情境

    有时候我们需要反复使用某些代码,比如组合图形出现多个五角星。如果到处拷贝这些代码,会出现弊端,一是程序变得冗长,可读性差;二是一旦需要修改或扩充,要在各处同步改代码,容易出错;三是可维护性差。

      那么我们可以用什么方法解决呢?


二、函数(functions)

     我们把这些重复代码单独收集起来,组成一个“函数”对象,并赋予一个名称,在需要用到这些代码的时候就通过名称加括号来“呼叫”这些“函数” 。前者称为函数定义(define),后者称为函数调用(call)。

三、定义函数:def语句

     • 函数定义语句def:def <函数名称>([<参数表>]):

                                        <语句块>

                                         [return <返回值>]

   • 几个要素:def关键字、函数名称(后跟一对圆括号)、(可选的)参数表、语句块、(可选的)返回值。




四、函数的参数

    如果代码块里没有可供调节的选项,可以定义没有参数的简单函数。一般函数会带有可供调节的选项参数,参数可以有多个,如画五角星的函数,包含两个参数:大小size和颜色color。

五、函数的返回值

有时候函数会有返回值,如math模块中求平方根的函数math.sqrt(n)返回n的平方根。return语句负责结束函数执行,并返回。return语句可以根据需要,出现在语句块中的任何位置。



六、函数定义中的代码块

由于函数定义def语句仅仅是把代码块“打包封装” ,当def语句执行的时候,代码块并不会被执行,所以,在执行def语句的时候,除非语句块中包含了明显的语法错误。Python解释器是不会检查语句块中其它错误的。



七、调用函数:call function

def定义了函数之后,函数名称仅代表这个“函数对象” ,如果需要执行语句块代码,需要有如下的要素:函数名称(后加括号)、括号内放置参数的具体值。没有或者不需要返回值:func(a,b,c) #如调用star。获取返回值:v = func(a,b,c)。



八、拓展——随机数模块random

• 产生一定范围内的随机数

random.randint(min,max)

• 从列表中随机选择

random.choice(list)



练一练:画组合图形

• 定义一个多边形函数:

def polygon(n,size,color):

• 绘制正n边形,边长为size,填充颜色color

• 编写一个程序,绘制现代时尚几何多边形色块抽象装饰画

• 随机模块random

• t.goto(x,y)


成品图样式:

上期参考答案



推荐阅读

if语句与while语句

迭代循环:for语句


《数据科学与人工智能》公众号推荐朋友们学习和使用Python语言,需要加入Python语言群的,请扫码加我个人微信,备注【姓名-Python群】,我诚邀你入群,大家学习和分享。


关于Python语言,有任何问题或者想法,请留言或者加群讨论。

浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报