Python之函数-面向过程的编程
函数
- 一、函数的定义及调用
- 1.1为什么要用函数
- 1.2 函数的定义及调用
- 1.3 参数传递
- 1.4 函数体与变量作用域
- 1.5 返回值
- 1.6 几点建议
- 二、函数式编程例子
- 三、匿名函数
- 四、面向过程和面向对象
一、函数的定义及调用
1.1为什么要用函数
1、提高代码复用性——抽象出来,封装为函数
2、将复杂的大问题分解成一系列小问题,分而治之——模块化设计的思想
3、利于代码的维护和管理
顺序式
# 5的阶乘
n = 5
res = 1
for i in range(1, n+1):res *= i
print(res)
# 20的阶乘
n = 20
res = 1
for i in range(1, n+1):res *= i
print(res)
output:
120
2432902008176640000
抽象成函数
def factoria(n):res = 1for i in range(1,n+1):res *= ireturn res
print(factoria(5))
print(factoria(20))
output:
120
2432902008176640000
1.2 函数的定义及调用
白箱子:输入——处理——输出
三要素:参数、函数体、返回值
1、定义
def 函数名(参数):
函数体
return 返回值
# 求正方形的面积
def area_of_square(length_of_side):square_area = pow(length_of_side, 2)return square_area
2、调用
函数名(参数)
area = area_of_square(5)
area
output:
25
1.3 参数传递
0、形参与实参
形参(形式参数):函数定义时的参数,实际上就是变量名
实参(实际参数):函数调用时的参数,实际上就是变量的值
1、位置参数
严格按照位置顺序,用实参对形参进行赋值(关联)
一般用在参数比较少的时候
def function(x, y, z):print(x, y, z)function(1, 2, 3) # x = 1; y = 2; z = 3
output:
1 2 3
实参与形参个数必须一一对应,一个不能多,一个不能少
function(1, 2)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
----> 1 function(1, 2)
TypeError: function() missing 1 required positional argument: ‘z’
function(1, 2, 3, 4)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
----> 1 function(1, 2, 3, 4)
TypeError: function() takes 3 positional arguments but 4 were given
2、关键字参数
打破位置限制,直呼其名的进行值的传递(形参=实参)
必须遵守实参与形参数量上一一对应
多用在参数比较多的场合
def function(x, y, z):print(x, y, z)
function(y=1, z=2, x=3) # x = 1; y = 2; z = 3
output:
3 1 2
位置参数可以与关键字参数混合使用
但是,位置参数必须放在关键字参数前面
function(1, z=2, y=3)
1 3 2
function(1, 2, z=3)
1 2 3
不能为同一个形参重复传值
def function(x, y, z):print(x, y, z)
function(1, z=2, x=3)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
3
4
----> 5 function(1, z=2, x=3)
TypeError: function() got multiple values for argument ‘x’
3、默认参数
在定义阶段就给形参赋值——该形参的常用值
在定义阶段就给形参赋值——该形参的常用值
默认参数必须放在非默认参数后面
调用函数时,可以不对该形参传值
机器学习库中类的方法里非常常见
def register(name, age, sex="male")
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
