撩课-Python-每天5道面试题-第6天
一. 函数的概念是什么? 在Python中如何定义?使用场景是什么?
概念 写了一段代码实现了某个小功能; 然后把这些代码集中到一块, 起一个名字; 下一次就可以根据这个名字再次使用这个代码块, 这就是函数 定义 def 函数名称(参数1, 参数2...): pass # 具体的函数执行代码 return None # 默认, 可以根据需求设置返回值 使用场景 将需要多次执行的重复性代码, 进行封装成函数, 方便代码的重用 def xxx(): print(1) print(2) print(3) 将有规律的重复性代码, 封装成函数, 更加灵活方便 def xxx(num): for i in range(0, num): print(i) 分解任务, 简化程序逻辑, 使代码更加模块化 def firstStep(): pass def secondStep(): pass def thirdStep(): pass firstStep() secondStep() thirdStep()
二. 尝试封装一个函数, 计算不定数据的累加和, 返回给外界
def 累加和(num): result = 0 for i in range(1, num + 1): result += i return result print(累加和(4)) # 10 print(累加和(10)) # 55
三. 如何定义不定长参数函数?
def 函数名(*args): pass def 函数名(**kwargs): pass 前者是普通参数 后者适用于关键字参数 需要注意: 传递之后的拆包操作 装包 把传递的参数, 包装成一个集合, 称之为"装包" 拆包 把集合参数, 再次分解成单独的个体, 称之为"拆包"
四. 缺省参数代表什么含义?
场景 当我们使用一个函数的时候, 如果大多数情况下, 使用的某个数据是一个固定值, 或者属于主功能之外的小功能实现; 则可以使用默认值 这种参数, 称为"缺省参数" 定义 def 函数名(变量名1=默认值1, 变量名2=默认值2): 函数体 函数体中, 即使外界没有传递指定变量, 也可以使用, 只不过值是给定的默认值 使用 函数名(变量1, 变量2) 此处如果是缺省参数, 则可以不填写 def sum(a, b = 0): print(a + b) sum(6) # 6 sum(2, 6) # 8
五. Python函数中, 值是引用传递还是值传递?\
值传递和引用传递 1.1 值传递 是指传递过来的, 是一个数据的副本; 修改副本, 对原件没有任何影响 1.2引用传递 是指传递过来的, 是一个变量的地址 通过地址, 可以操作同一份原件 在Python当中, 你没得选, 只有引用传递(地址传递) 但是 如果数据类型是可变类型, 则可以改变原件 如果数据类型是不可变类型, 则不可以改变原件