python笔记(函数自定义)
1.def:自定义函数
利用def函数可以由用户创建一个新的函数,例如:
def lt(num1,num2,num3):
result=(num1+num2)*num3
return print(result) #return表示当函数被调用时,会输出一个什么值
上面过程中,自定义了一个“lt”函数,并在调用时,执行了“(1+2)*3”的操作
对于自定义函数,可以设置参数的默认值,例如:
def lt(num1,num2,num3=10): #这里默认了num3等于10
result=(num1+num2)*num3
return print(result)
当不赋予num3值时,默认其为10,当赋予时则执行赋予的值
例:创建一个日期转换函数,具体要求输入天数可以转换为年月日
def remainder(days):
years=days // 365 #//意为除取整
months=(days % 365) // 30 #%意为除取余
days_new=(days % 365) % 30
return print("{} 年 {} 月 {} 日".format(years,month,days_new))
2.lambda表达式
lambda表达式会创建一个匿名函数,特点是代码短,运行快,但后续不能重新调出来
例如:
add=lambda a,b,c:(a+b)*c
3.补充:两个高阶内置函数
filter():筛选函数
filter(x, y)——x为用于筛选的条件,y为需要被筛选的目标
例:筛选A中单词长度大于4的词语
A=['apple', 'banana', 'cat', 'dog']
def choose(word):
return len(word)>4
word_chosen= list(filter(choose, A)) #filter()前一个参数为筛选条件,后一个为迭代对象
print(word_chosen)
[‘apple’, ‘banana’]
map():执行函数
map(x, y)——x为用于执行的命令,y为需要执行命令的目标
例:将B中的数字全部进行平方计算
B=[1, 2, 3, 4, 5, 6]
def square(number):
return number**2
result= list(map(square, B)) #map()前一个参数为执行命令,后一个为迭代对象
print(result)
[1, 4, 9, 16, 25, 36]
注意:filter和map产生的结果是一个迭代器,例如直接print(map(square, B))则会输出“<map object at 0x02F761D8>”的结果,因此需要将其转为列表list来输出。