9.6 总结
- 函数的定义:
把常用的逻辑功能 独立的代码段 进行封装, 在需要使用的时候 直接调用即可
# 求半径为2的圆的面积
area = 3.1415196 * 2 ** 2
print(f'半径为2的圆的面积是{area}')
# 用函数可为:
半径是未知的 --- 形式参数
是否需要把结果返回 --- 需要
"""
def get_circle_area(radius): # 函数
area = 3.14154672 * radius ** 2
return area
circle_area = get_circle_area(10) # 带入参数,调用函数
print(circle_area)
-
语法:
def 函数功能名(形式参数1, 形式参数2, …形式参数n):
函数功能体代码块
return 功能运行结果的返回值
解读:-
def 定义函数的关键字
-
函数功能名 自己定义标识符名称 【遵守标识符定义规则】
-
(形式参数1, 形式参数2, …形式参数n)
在参与功能运算的时候 有些数据值是动态 不确定的,将其设置成变量 给其设置一个标记名
等待调用函数的时候赋予运算值
这个标记名就叫做形式参数 简称形参
-
-
如果没有未知动态的数据参与功能运算 形式参数就不用定义了 但是()必须有
return 也是一个关键字
功能是结束函数 并将结果返回到函数调用的位置
如果一个函数没有返回值 return 是可以省略的 或者写为 return None
-
定义函数的时候如何分析
1. 分析是否有未知项[不确定的数据 动态的数据]参与运算, 如果有的话 有几个? 【决定了形式参数的个数】
2. 分析函数是否需要把运行结果返回 决定了是否有return返回值
3. 如何进行调用
函数是否有返回值
有返回值 变量名 = 函数名(实际参数) # 实际参与运算的数据 称为实际参数 简称实参
没有返回值 函数名(实际参数)
注意事项:
形式参数有几个 实际参数就得传递几个 而且是一一对应的例子:
# 封装一个函数 获取两个数中的最大值 def get_max(a, b): if a > b: return a else: return b
# 封装一个函数 判断一个数是不是完美数 【真因子之和等于数值本身 6=1+2+3】 def get_factor(num): total = 0 # 记录累加和 for i in range(1, num // 2 + 1): if num % i == 0: total += i return num == total print(get_factor(6))
# 封装一个函数 找到一个列表中某个数据的下标 def get_index(src_list, key): return [pos for pos, ele in enumerate(src_list) if ele == key] indexes = get_index([17, 34, 56, 28, 34, 19, 34], 34) print(indexes)