首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第二十一课 函数

函数这章可能有些同学学的会比较蒙,没关系,很多东西不需要你们现在就清楚,现阶段你们只要学会语法,知道怎么实现功能即可,内在的原理和理论知识等你们学会了语法以后再学一点都不晚。

有时候我们做一些大工程的时候,代码特别的多,如果都堆在一起就会很杂乱,而且也不好维护。因此我们就需要函数。将一段代码装在函数里面,这样有需要的时候只要调用函数就可以了。这样的好处在于易维护,界面简洁阅读轻松,测试和修复等等都会方便很多。

def number():

"""这是一个打印数字的函数"""

print('24')

number()

结果是:

24

上面就是一个简单的函数。首先我们用def来指定number为我们的函数,要记得,函数后面都是要带括号的,这个不能省略。

第二行这个是文档字符串注释,用来说明函数的作用。文档字符串必须用前后各三个双引号组成。

第三行则是这个函数的具体指令,打印出字符串24.

第四行则是调用函数,只要打印出函数,就能执行其中一大串的代码,这样是不是就很方便?

对函数进行简单信息传递

def number(name):

"""这是一个打招呼的函数"""

print('hello '+name)

number('michael')

结果是:

hello michael

我们在第一行的函数括号里面加入一个变量,然后在第三行执行一个打招呼的字符串打印指令,但是这时候我们name这个变量要变成我们指定的名字的话,就必须在我们调用函数的时候,在括号里面输入我们想要的内容。

也就是说,我们创建函数的时候就在括号里面添加上一个变量是为了我们在调用这个函数的时候,可以自由的给这个变量赋值。

而我们第一行函数括号里面这个变量叫做形参,最后一行函数调用括号里面的'michael'叫做实参。

形参是创建函数的时候所需要的一种信息,而实参是调用函数的时候所需要的信息。这点要分清楚。

位置实参

def friend(name,sex):

"""这是一个朋友相关的描述函数"""

print("my friend's name is "+name.title()+' ,a '+sex)

friend('michael','boy')

结果是:

my friend's name is Michael ,a boy

如以上代码所示,形参里面变量的位置顺序要和实参里面的位置相一一对应,这样才能准确的赋值。

多次调用

def friend(name,sex):

"""这是一个朋友相关的描述函数"""

print("my friend's name is "+name.title()+' ,a '+sex)

friend('michael','boy')

friend('lucy','girl')

关键字实参

如果说位置顺序有时候我们会不小心给弄混了,那么关键字实参就一定不会了:

def friend(name,sex):

"""这是一个朋友相关的描述函数"""

print("my friend's name is "+name.title()+' ,a '+sex)

friend(name='michale',sex='boy')

结果不变。

关键字实参不在意顺序,只在意你给形参赋予的实参是什么。

默认实参

def friend(name,sex='girl'):

"""这是一个朋友相关的描述函数"""

print("my friend's name is "+name.title()+' ,a '+sex)

friend('maria')

结果是:

my friend's name is Maria ,a girl

第一行中我们可以看到,我们直接形参当中就给girl赋值给sex了,这种形式就叫做默认值。默认某个形参的实参为你指定的东西。这样当我们调用函数的时候,就可以省略已经默认的形参,因为python会自动打印出来。但是你也可以在默认实参以后,在调用函数的时候换成其他实参也是可以的。

但是这里要注意,虽然说第二个形参已经被定义了一个实参,但是我们调用函数的时候,括号里面的实参还是要根据位置顺序来对应,否则就会报错。大家可以试试,把第一行里面的两个形参交换一下位置看看会发生什么。

作业:

1、创建一个函数并打印出来

2、进行一次位置实参

3、分别进行一次关键字实参和默认实参

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180403G1J6B400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券