函数基础
一、认识函数
1.1 定义
- 对实现某一特定功能的代码的封装
- 本质就是打包一段代码
2.2 函数的分类
-
系统函数
别人造好的机器
python已经定义好的函数
直接调用就行 -
自定义函数
自己造机器
二、函数的定义
2.1 语法
def 函数名(形参列表):
函数说明文档
函数体
2.2 说明
- def
- 关键字;固定写法 - 函数名
- 自定义
- 标识符
- 小写、下划线
- 见名知义 - ()
- 固定写法
- 形参列表 - 以’变量1,变量2,变量3,…'的形式存在,也可以没有形参
- 形参将函数外面的数据传递到函数里
- 实现功能需要传入多少数据,就设置几个 - 函数说明文档
- 就是注释
- 相当于机器说明书,方便别人使用
- 对函数本身没有影响 - 函数体
- 和def保持一个缩进的代码
- 实现功能的代码(核心) - 定义函数时不会执行函数体
# 例子:求两个数的和
def my_sum(num1, num2):
"""
(功能说明区)求指定两数的和
:param num1: 要求和的第一个数字
:param num2: 第二个数字
:return: (返回值说明)
"""
print(num1 + num2)
# 求一个整数的阶乘
def my_factorial(num):
result = 1
for i in range(1, num+1):
result *= i
print(result)
# 删除指定字符
def my_discard(string, s, ss=True):
if ss:
print(''.join(string.split(f'{s}')))
else:
print(''.join([string[i]
for i in range(len(string))
if string[i:i+len(s)] != s]))
# 统计字典中指定值的个数
def my_count(dic, v):
print(sum([True
for value in dic.values()
if value == v]))
三、函数的调用
定义函数时不会执行函数体x2,没有翻译
3.1 调用函数
-
语法
函数名(实参列表) -
函数名
需要使用的函数的名字(已经定义好的函数) -
实参列表
- 多个数据用逗号隔开
- 具体个数参考对应的形参个数
- 实参通过形参传递到函数内部
my_factorial(4) # 24
my_discard('asdfasdf', 'df') # asas
my_dic = {'a': 1, 'b': 2, 'c': 1}
my_count(my_dic, 1) # 2
- 同一个函数可多次调用
3.2 函数调用过程
- 回到函数定义的位置
- 传参(用实参给形参赋值,保证每个参数都有值)
- 执行函数体
- 确定返回值
- 执行完函数体回到函数调用的位置