python定义x_Python3.x那些事儿:[18]定义函数

先定义一个斐波那契数列函数来做个例子,通过这个函数可以得到任何边界的斐波那契数列。

7496877bbbf4da583b8d28faea0f8b56ac04d7ee.jpg

函数定义的关键词是def,紧跟在def后面的是函数的名字和一对括号,括号中是所有参数的列表,然后是冒号,函数的正文从下一行开始,并且要有缩进。

函数正文的第一行可以使一个字符串,这个字符串也叫做文档字符串,有专门的工具可以将文档字符串制作成在线或者本地的文档,或者也可以通过交互式界面在代码中来访问这个字符串,所以要尽量养成书写文档字符串的好习惯。

一个函数的执行引入了用于函数的局部变量,这些局部变量组成了一个新的符号表。更确切地说,一个函数中的所有变量分配都会存储在局部符号表;而在引用变量时先在局部符号表查找,然后在封闭功能的局部符号表中查找,然后在全局符号表中查找,最后在内置名称中查找。因此,全局变量不能在函数中被直接赋值(除非使用global语句来命名变量),但是这些全局变量可以被引用。

在函数调用过程中实参会在被调用函数的局部符号表中被引入;因此,实参是使用按值调用(这里的值总是一个对象引用,而不是对象的值)传递。 当一个函数调用另一个函数,一个新的局部符号表在调用过程中会被创建的。

函数定义会在当前符号表中引入函数名。函数名的值会被解释器识别为一个用户定义的函数类型。这个值也可以被赋予到其他变量,然后这个变量也可以来引用这个函数。这就是通过一般的重命名机制来实现的。

116b1ae23ea23a42fe2d56a33733ec3835bbc0ee.jpg

如果函数没有返回值,则会自动返回一个None

4d3d2ab33c4133baa216f5ce6a37c97623bc2fef.jpg

我们可以把函数改为返回一个数列,而不打印。

f591ab03c8d246fec7193430b8bf3bef344f1eef.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值