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

函数—Python 基础

函数是什么

函数就是有特定功能,能够重复使用的代码块。

比如我们经常用的 print 就是一个有打印功能的代码块,len 就是一个能查询长度的代码块。

我们可以自己写函数使用:

上例就是一个极简的函数。

函数都由 def 关键字来开始定义。后面跟函数名,这里我起的名字是 greet。然后跟一对括号,用来放参数。当然,函数也可以没有参数,但即使这样,也不能省略掉括号。然后接上冒号。

第二行就是函数的具体作用,比如打印出来一句打招呼的话,这就是这个函数的作用。

调用函数

函数名加上以对括号即可调用函数,如果有参数要传递给函数的话,就写在括号中,否则空着。

函数的参数

我们先看一个可以接收参数的函数:

上例中,函数的括号中加了一个参数:变量 name,并且打印的时候会打出来。最后我们执行函数的时候,把变量 name 的值写了进去,所以打印出你好Jack。

我们通常把变量 name 叫做形参,因为它只是形式上的参数,占个位置而已,并没有值。把 Jack 叫做实参,因为它才是实际的值。

接收多个参数

函数的参数可以有很多个:

所以调用函数的时候,一定要注意参数的顺序,不要写错了。

按关键值

如果你不想纠结于顺序的话,可以用关键字实参(kwargs)直接指定:

像上例这样,在调用时直接指明name变量的值是Jack,age 变量的值是18。

设置参数的默认值: 如果函数有形参,而执行的时候没有带实参的话,是会报错的:

参数默认值

如果我们给形参变量一个默认值,就能避免报错。因为调用时有实参传进来时,就用传进来的值,没有实参传进来时,程序会自动使用默认值代替:

传递任意数量的参数

有时候,参数的数量可能不是固定的,比如打印菜单,你并不知道顾客会点几个菜:

上例中,在形参前加了一个星号,这样 Python 会创建一个元组,用来装实参,不管最后传进来多少个实参。 如果除了菜之外,桌号是我们确定的呢?比如我需要接受桌号,以及菜单:

像上例这样,你必须把不确定数量的形参放在后面,这样第一个实参会给 table,剩下的全部给形参 dish。

传递任意数量的关键字实参

和上面的情况类似,只不过参数是键值对类型:

上例中,在形参前加了两个星号,这样 Python 会创建一个字典,把关键字实参转换成键值对,并放入到字典中。

返回值

并不是所有函数都像我举得例子那样,以 print 打印一句话结束。事实上真实情况下,函数更多的是会返回一个值,使用 return 关键字:

上例函数就返回了一个字典。

将函数存储在模块中

我们说过,函数是可以重复利用的代码块,省事儿。但有时候把函数存到模块中,变成一个独立的文件,供大家需要的时候随时调用的话,会更加省事儿。

导入整个模块

首先我们创建一个模块文件,它是一个单独的 py 文件,比如叫 greet.py ,里面定义两个函数

然后在我们的主文件中:

上例中,我们在第一行用 import 语句导入了文件 greet。注意要在同一个文件夹下,才能找到该文件并导入。导入完成后,我们就能像第三行那样,使用greet.py中的函数greet_names了。

只导入特定函数

通过上面的方法,我们导入了整个 greet.py 文件,能拿到它的所有函数。我们也可以只导入特定的函数,语法稍有不同:

上例中只导入了 findlongest 所以可以直接使用,不用再 greet.findlongest。

使用 as 给函数指定别名

我们可以不使用导入函数的原名,而给你起一个其他名字使用:

导入模块中所有函数

使用星号运算符,可导入全部函数:

——over——

初学笔记难免有谬误,欢迎您指出,感谢。

——doyoudo is the best——

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券