计算机二级考试之python知识点总结(四)

(请结合《高教版python语言程序设计冲刺试卷(含上线题库)》)

1.3.4函数和代码复用

**
考点四(1)函数的定义和使用

  • 函数定义:是程序的一种基本抽象方式,通过def保留字定义。
    /#函数定义规则
    .def <函数名>(<参数列表>): #多个参数用逗号分隔
    <函数体>
    return <返回值列表>

定义后的函数不能直接运行,需要经过“调用”才能运行

例子(/# 定义一个对整数n求阶乘的函数)

def fact(n):
	s = 1
for i in range(1, n+1):
	s *= i
	return s
  • 函数的调用(是一个递归过程):函数定义——调用——执行——返回

#函数调用规则
<函数名>(<实际赋值参数列表>)

例子:定义一个对整数n求阶乘的函数

def fact(n):
	s = 1
for i in range(1, n+1):
	s *= i
	return s

#调用整数阶乘的函数
print(fact(100))
  • 递归:是重复调用函数自身实现循环,但递归不是循环

1.递归有1个或多个基例是不需要再次递归的
2.所有递归都要以一个基例结尾

注:递归每次调用都会引起新函数的开始;递归有本地值得副本,包括该值的参数构造递归函数需要基例。
基例不进行递归,否则递归就会无限循环执行python在900余次调用后,到达默认的“递归深度最大值”,终止调用。

阶乘递归函数:每次函数调用的相关n值在中途的递归链暂时存储,并在函数返回时使用。

def f(n):
	if n = = 0:
		return 1
	else:
		return n*f(n-1)
print (f(3))

考点四(2)函数的参数传递:可选参数、参数名称传递、函数的返回值

return用来结束函数并将程序返回到函数被调用的位置继续执行。
可出现在函数中的任意位置。
可同时将0个、1个或多个函数运算的结果返回给函数被调用处的变量。
函数可以没有return,此时函数不返回值。

  • 参数类型:

普通参数:形参与实参一 一对应,否则需在代码调用是进行限制
默认值参数:指定形参的值,可有多个,但只能放在最右边
…如 def func(x,y,z = 1)
可变长参数:将一个元组传递到参数里面,定义方式:在参数前用“*”,可以不用限制参数的个数
…如 def func(*numbe)
关键词参数(必须置于参数后,不得重复提供实际参数,顺序无限制):传入后变成字典形式

>>>def func(**member)
     print(member)
>>>func(class1 = "Tom",class2 = "Fony",)
{‘class1’ : 'Tom',   'class2' : 'Fony'}
  • Lambda表达式:{ 参数列表} -> { 所需执行的功能}
    其参数类型都是由编译器根据上下文环境推断出来的

考点四(3)变量的作用域:局部变量和全局变量

局部变量:仅在函数内部使用的变量,函数退出时变量将不再存在。
全局变量:函数外定义的变量,在程序执行全过程有效。全部变量在函数内部使用时,需要提前使用保留字global声明。
/#局部变量z

def multiply(x, y = 10):
z = x*y
return z
s = multiply(99, 2)
print(s)
198
print(z)
Traceback (most recent call last):
File “”, line 1, in
print(z)
NameError: name ‘z’ is not defined

/#全局变量n

n = 2
def multiply(x, y = 10):
global n #声明全局变量
return xyn
s = multiply(99, 2)
print(s)
396

  • 代码复用

函数封装好处是代码复用。当更新函数功能时,所有被调用处的功能都被更新。减少函数间参数和返回值的数量。
模块化设计以功能块为基本单位,两个基本要求:1.紧耦合:尽可能合理划分功能块,功能块内部耦合紧密;模块或系统间关系紧密,存在较多或复杂的相互调用。紧耦合的缺点在于更新一个模块可能导致其它模块变化,复用较困难。2.松耦合:模块间关系尽可能简单,功能块之间耦合度低。一般基于消息或协议实现,系统间交互简单,代表了模块化,是总体设计原则。

  • 附: 面向过程和面向对象(自己多去了解一下,这里不做声明)
    谢谢。

你可能感兴趣的:(计算机二级python,计算机二级,python)