1.函数的作用(面试题)
1. 将代码简化(减少代码冗余)
2. 代码模块化(方便调试\修改代码)
3. 将复杂的功能封装成函数,有利于项目快速迭代
2.定义函数的基本格式
def 函数名(参数1,参数2,参数3=值3,参数4=值4):
函数体
return 返回值
3.函数常见的四种情况
1. 无参数无返回值(函数默认都是返回None)
2. 有参数无返回值
3. 有参数有返回值
4. 无参数有返回值
4.实参和形参是什么
1. 实参
位置参数
实参必须和位置参数一一对应上
1. 形参
1.1 位置参数(只有一个参数名,形如a,b,c)
1.1.1 变长位置参数(*args)
1.2 关键字参数(有默认值,形如a=0,b=0)
1.2.1 变长关键字参数(**kwargs)
1.2.2 强制关键字参数(形如 a,b,*,c,d 则c和d必须通过关键字参数来设置)
5.函数命名要注意什么细节
1. 不要和python内置函数重名(给函数加前缀或者后缀即可)
2. 同一个脚本中函数名尽量不要重复(靠自我检查)
6.return的特点
1. 只能在函数中使用return
2. 谁接收函数调用的结果,return就把数据返回给谁
3. return之后的代码都不会执行
7.函数后可以填写哪些参数?
位置参数, 关键字参数, 变长元组参数, 变长关键字参数
8.上述四种参数的顺序是什么?
位置参数, 关键字参数, 变长元组参数, 变长关键字参数
9.如何手动抛出一个异常?
raise
10.如何判断一个变量是不是某种类型
isinstance
11.*args 和 **kwags的区别是多少?(面试题)
变长位置参数(*args)元组
变长关键字参数(**kwargs)字典
12.用过哪些python内置的函数
sum ,max,min,sorted,mapreduce
13.定义函数的关键字是什么?
lamba
14.自己练习涉及的匿名函数的 面试题(字典排序 ,元组排序,日期排序)
15.字符串的逻辑
字符串比较逻辑
按位进行比较,相同则往下继续比较,直到比较出一个结果则停止
16.sorted ,filter, map , reduce的基本用法
使用python自带的sorted函数会用到匿名函数
字符串比较逻辑
按位进行比较,相同则往下继续比较,直到比较出一个结果则停止
filter函数 过滤
将列表中的奇数过滤出来
map(函数名, 可迭代对象)
作用:对可迭代对象的每个元素执行 该函数名
将列表拼接成字符串
reduce函数可以直接使用
列表进行求和
17.全局变量和局部变量的特点
#全局变量: 在函数外定义
局部变量: 在函数内定义
全局变量和局部变量的作用域
全局: 整个脚本
局部: 定义行开始到函数末尾
19.他们的生命周期
生命周期:从什么时候生到什么时候死
全局: 第一次定义则生,整个程序退出则死
局部: 调用函数 定义则生,如果该变量无人使用或被强制
20.递归函数的特点
自己调用自己
必须有一个结束条件
21.递归求和,递归求阶乘
5 + 4 + 3 + 2 + 1
my_sum(5) = 5 + my_sum(4)
my_sum(4) = 4 + my_sum(3)
…
my_sum(2) = 2 + my_sum(1)
my_sum(1) = 1
def my_sum(n):
if n == 1:
return 1
print(f"{n} + my_sum({n-1})")
return n + my_sum(n-1)
my_sum(5)
阶乘:同上面的一样唯一的区别是把+换成*就ok