python基础学习-11

本文详细介绍了Python中匿名函数(lambda)的概念、用法,以及如何将函数作为变量、元素、参数和返回值使用,包括函数作为列表、字典和集合的组成部分,以及函数工厂和带参数的函数示例。最后,给出了一个简单的加减乘除计算器实现作为小练习。
摘要由CSDN通过智能技术生成

函数对象

11.1.1 匿名函数lambda

  • 不需要定义函数名,可以节省命名空间

  • 些简单的表达式,可读性强

lambda 参数:表达式
def add(a,b):
return a+b
print(add(1,2))
#正常的函数定义
​
print((lambda a,b:a+b)(1,2))
​
#匿名函数用法
res=lambda(a,b)
print(res(1,3))
​
​

11.1.2 函数对象

把函数直接当成:变量,元素,函数的参数,函数的返回值去使用

(1)把函数当成变量使用

def func():

print('认真听课重在理解')

print(func())

#函数开始执行了,并且有了结果

#这里是函数输出执行之后的结果

print(func)

#这里会输出内存地址的一串符号

#并没有执行

a=func()
#把函数的返回值赋值给变量
print(a)
输出函数的返回值

a=func
#把函数的内存地址赋值给变量
print(a())
#通过变量a进行赋值
def func(name):
    print(f'{name}认真听讲重在理解')
a = func
​
a('小吴')
​
#把函数当成变量使用

(2)函数可以作为元素,放在列表,元组,字典,集合中进行使用。

def func():
    a= input('接收一个歌手名')
    return a
sInger = ['周杰伦','刘德华',func()] 
#列表中得到的是函数的返回值
print(sInger)
​
def func():
    a= input('接收一个歌手名')
    return a
sInger = ['周杰伦','刘德华',func] 
#得到的是内存地址
print(sInger[2]())
#使用列表的取值方式进行取值后面加括号进行调用。
​
def func():
    a= input('请输入新专辑')
    return a
​
dic = {'姓名':'周杰伦','性别':'男','新专辑':func()}
print(dic)
​
def func():
    a= input('请输入新专辑')
    return a
​
dic = {'姓名':'周杰伦','性别':'男','新专辑':func}
print(dic)
print(dic['新专辑']())
​
-----------------------------------------
def func1():
    a = input('歌手名')
    return a
​
def func2():
    a = input('性别')
    return a
​
​
def func3():
    a= input('请输入新专辑')
    return a
​
dic = {'姓名':['周杰伦',func1],
       '性别':['男',func2],
       '新专辑':['七里香',func3]}
print(dic['姓名'][1]())

(3)函数作为参数,传递给另外一个函数

def func():
    return '周杰伦'
def hello (name):
    print(f'大家好,我是{name},请来参加我的演唱会')
hello(func()) #把func函数的返回值传入hello函数。
​
-------------------------------------------------
def func():
    return '周杰伦'
def hello (name):
    print(f'大家好,我是{name()},请来参加我的演唱会')
hello(func) #把函数名当参数传入hello函数。
​
-------------------------------------------------
def add(a,b):
    return a+b
​
def hello(age):
    print(f'大家好,我今年{age}岁')
​
hello(add(10,8)) # add()先传参,再把函数的返回值传给hello函数

(4)把函数当成另外一个函数的返回值

  • return----根据需求指定结果返回给函数的值

def func():
    def hello():
        print('hello')
    return hello() # 内层函数的返回值返回给外层函数
func() #调用外层函数相当于实在调用内层函数
​
---------------------------------------
def func():
    def hello():
        print('hello')
    return hello # 只返回函数名
​
# func() # 相当于hello
func()()
​
------------------------------
函数工厂
def f():
    def s():
        print('生产产品')
    return s
f()()
--------------------------------
有参数的情况下
def f(x,y):
    def s(a,b):
        print(a+b)
    return s(x,y)
#内层函数负责功能,外层函数负责保护数据的。
f(1,2) # 1,2先传给f(x,y)--s(x,y)--s(a,b)--print(a+b)

 小练习:

制作一个能进行加减乘除的计算器

答案:

def run():
    def jia(a,b):
        return a+b
    def jian(a,b):
        renturn a-b
    def chen(a,b):
        return a*b
    def chu(a,b)
        return a/b
    num1=float(input("请输入第一个数:"))
    a=input("输入运算符")
    num2=float(input("请输入第二个数:"))
    
    if a not in("+","-","*","/")
        print("输入错误,再输入一次")
        a=input("输入错误,请在输入一次")
    
    if a=="+"
        print(num1,num2)
    elif a=="-"
        print(num1,num2)
    elif a=="*"
        print(num1,num2)
    elif a=="/"
        print(num1,num2)
run()        

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值