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")


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部