Python的自定义函数———总结分析,详细讲解自定义函数,带实例
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
目录
函数就是把具有独立功能的代码段组织成一个小模块在需要时直接调用。函数又分为内置函数和自定义函数。内置函数是Python的开发者已经编写好的函数用户可以直接调用如前面介绍的print()函数。除了print()函数Python内置函数还有input(),len()、float()等在后续博客会结合具体案例进行介绍。内置函数的数量毕竟有限只靠内置函数不可能实现所有功能因此编程中常常需要将频繁使用的代码编写为自定义函数。
函数的定义与调用
在Python中使用def语句来定义一个函数其本语法格式如下1 def 函数名(参数): # 注意不要遗测冒号
2 实现数功能的代码 # 注意代码前要有缩进
演示代码如下
1 def y(x):
2 print(x + 1)
3 y(1)
第1行和第2行代码定义了一个函数y ()该函数有一个参数x函数的功能是输出x的值与1相加的运算结果。第3行代码调用y()函数并用1作为函数的参数。代码运行结果如下
1 2
从上述代码可以看出函数的调用很简单只要输入函数名和括号如y(),如果函数含有参数如y(x)中的x那么在函数名后的括号中输入参数的值即可。如果将上述第3行代码修改为y(2)那么运行结果就是3。
定义函数时的参数称为形式参数它只是一个代号可以换成其他内容。例如可以把上述代码中的x换成z代码如下:
1 def y(z):
2 print(z + 1)
3 y(1)
定义函数时也可以传入多个参数以定义含有两个参数的函数为例演示代码如下
1 def y(x,z):
2 print(x + z + 1)
3 y(1, 2)
因为第1行代码在定义函数时指定了两个参数x和z所以第3行代码在调用函数时就需要在括号中输入两个参数。代码运行结果如下
1 4
定义函数时也可以不要参数演示代码如下
1 def y():
2 x=1
3 print(x + 1)
4 y()
第1~3行代码定义了一个函数y在定义时没有指定参数所以第4行代码直接输入y就可以调用函数。代码运行结果如下:
1 2
定义有返回值的函数
在前面的例子中定义函数时仅将函数的执行结果用print()函数输出之后就无法使用这个结果了。如果之后还需要使用函数的执行结果则在定义函数时需要使用return语句来定义函数的返回值。演示代码如下:1 def y(x):
2 return x + 1
3 a = y(1)
4 print(a)
第1行和第2行代码定义了一个函数y()函数的功能不是直接输出运算结果而是将运算结果作为函数的返回值返回给调用函数的代码;第3行代码在执行时会先调用y()数并以1作为函数的参数y()函数内部使用参数1计算出1+1的结果为2再将2返回给第3行代码赋给变量a。代码运行结果如下
1 2
变量的作用域
简单来说变量的作用域是指变量起作用的代码范围。具体到函数的定义函数内使用的变量与函数外的代码是没有关系的。
演示代码如下:
1 x = 1
2 def y(x):
3 x = x + 1
4 print(x)
5 y(3)
6 print(x)
请读者先在脑海中思考一下上述代码会输出什么内容呢下面揭晓运行结果:
1 4
2 1
第4行和第6行代码同样是print(x为什么输出的结果不一样呢这是因为函数y(x)里面的x和外面的x没有关系。之前讲过可以把y(x)换成y(z)演示代码如下
1 x=1
2 det y(z):
3 z = z + 1
4 print(z)
5 y(3)
6 print(x)
代码运行结果如下
1 4
2 1
可以发现两段代码的运行结果一样。y(z)中的z或者说y(x)中的x只在函数内部生效并不会影响外部的变量。正如前面所说函数的形式参数只是一个代号属于函数内的局部变量因此不会影响函数外部的变量。
今天的分享就结束了后续会讲解Python的编码基本规范