声明一个函数就是在声明一个变量。函数名可以当成变量来使用,可以打印,可以赋值,可以查看类型,类型是(function),
可以作为函数的参数,可以作为函数的返回值。
a = 10
a = 'a'
print(a)
def func1(a):
print(a)
return 10
print(func1,type(func1))
# 将函数func1赋给变量a,这个时候a就是一个函数
a = func1
b = func1(10) + 100
a('sss')
# 将函数func1作为列表的元素
functions = [func1,func1(10)]
functions[0]('abc')
运行结果如下:
a
<function func1 at 0x00000000026801E0> <class 'function'>
10
sss
abc
1.函数作为参数
def my_sum(*number):
""" numbers = ((10,20))"""
sum1 = 0
for item in number:
sum1 += item
return sum1
def my_mul(*numbers):
sum1 = 1
for item in numbers:
sum1 *= item
return sum1
def operation(method,x,y):
"""method = my_sum
numbers = (10,20)
return my_sum()
"""
return method(x,y)
求10和20的值
result = operation(my_sum,10,20)
求10+20
result2 = operation(my_sum,10,20)
判断10是否大于20
result3 = operation(lambda x,y:x<y,10,20)
#找出两个数中的最大值
result4 = operation(lambda x,y:x if x>y else y,10,20)
运行结果如下:
30 30 True
"""
python中的三目运算符(?:)
值1 if 表达式 else 值2 -----> 判断表达式是否为True,True整个表达式的结果是‘值1’,否则是‘值2’
"""
10 if 10 > 20 else 20
print(result,result2,result3,result4)
####2.将函数作为函数的返回值
# 写一个函数,有个参数,要求传入一个运算符(+,-,*,>,<),返回符号对应的功能
# + ------> 求和功能
# - ------> 求差功能
#def get_method('+',10,20)
def get_method(char):
"""char = '+' """
if char =='+':
return lambda x,y:x+y
elif char == '-':
def func(m,n):
return m - n
return func
elif char == '*':
return lambda x,y:x*y
elif char == '>':
def func(x,y):
return x > y
return func
elif char == '<':
return lambda x,y:x < y
else:
def func(x,y):
return None
return func
print(get_method('+')(10,20))
print(get_method('*')(10,20))
print(get_method('>')(10,20))
运行结果如下:
20
30
200
False