• day11.1函数进阶 列表集合 字典中的函数变量,函数作为形参


    函数进阶

    1.函数作为变量

    a=123
    name="gao"
    nums=[1,2,3]
    data=nums#指向同一个内存地址
    #查看内存地址篇章
    
    def func():
     print(123)
    func()
    
    

    1.1函数名作为变量名使用

    def func():
      print("nice")
      
    v1=func#v1指向func函数的内存地址
    v1()#执行内存中存放的代码
    func()
    

    1.2函数的默认返回值

    def func():
      print("nice")
      
    v2=func()#函数执行  打印nice
    print(v2)
    #nice
    #None  func()函数中没有返回值 则默认返回None
    
    

    1.3列表中的函数变量

    def func():
      print("nice")
      num=[1,2,3]
      num.append(4)
      print(num)
     
    #func_list=[func,func,func]
    #func_list[0]()#执行 nice 4
    #func_list[1]()#执行 nice 4 
    #不是[1,2,3,4,4]因为每次都重新赋值了
    
    for item in func_list:
      v=item()#nice [1,2,3,4]
      #执行列表中的函数 执行print语句
      print(v)#None
      #因为item函数中没有返回值  所以默认返回None
    

    1.4字典中的函数变量

    def func():
      print(123)
    def bar():
      print(666)
      
    info={'k1':func,'k2':bar}
    info['k1']()#123
    inf['k2']()#666
    
      
      
    
    易混淆:
    def func():
      return 123
    func_list1=[func,func,func]
    func_list2=[func(),func(),func()]
    print(func_list1)#函数地址
    print(func_list2)#返回值
    #[<function func at 0x10f330e18>, <function func at 0x10f330e18>, <function func at 0x10f330e18>]
    #[123, 123, 123]
    
    info={
      'k1':func,
      'k2':func()
    }
    print(info)
    #{'k1': <function func at 0x1079b4e18>, 'k2': 123}
    

    1.5集合中的函数:[不重复性 ]

    def func():
      print(123)
    se={func,func,func,8,"a"}#会被去重
    print(se)
    # {8, <function func at 0x1096a1e18>, 'a'}
    #不重复性给三个函数去重成一个
    

    1.6函数作为参数

    def func(arg):
      print(arg)
    func(1)
    func([1,2,3,4])
    
    def show():
      print("aa")
      
    func(show)#打印show函数的地址
    #<function show at 0x10ad927b8>
    
    def func(arg):
      v1=arg()#将传入的函数执行---> aa
      print(v1)#None
    
    def show():
      print("aa")
      
    func(show)#
    #func()执行 --> 内部arg()执行就是-->show()执行-->
    #-->show执行完后返回值给v1-->执行print(v1)
    
    def func(arg):
      v1=arg()
      print(v1)
      
    def show():
      print(666)
      
    result=func(show)
    print(result)
    #① 首先func()执行
    #② func()内执行show()函数 print(666)
    #③ show()的默认返回值None给v1 = None 
    #④ print(v1)
    #⑤ func()默认返回值None给result
    #⑥print(result)
    
    练习:

    10086 的十个函数 , 每个函数都有对应的功能 ,用户输入某个值就执行某个函数

    # 字典
    # 函数放在字典中
    def show():
        print("语音")
    
    
    def voice():
        print("修改流量套餐")
    
    
    def bar():
        print("话费充值")
    
    
    def test():
        print("其他")
    
    
    def logout():
        print("退出")
    
    
    info = {
        "f1": show,
        "f2": voice,
        "f3": bar,
        "f4": test,
        "f5": logout
    }
    
    while True:
        choice = input("请用户输入:")
        if choice in info:
            if choice == 'f5':
                break
            info[choice]()
        else:
            print("输入错误")
    
    
    
  • 相关阅读:
    Tomcat中有四种部署Web应用的方式
    解析Json和复合类型
    spring学习笔记001
    java环境变量
    如何下载JSTL
    servlet应用及知识点总结
    一文读懂微服务架构
    一个死锁的case
    如何在phpstorm中查看yaf框架源码
    Modify column Vs change column
  • 原文地址:https://www.cnblogs.com/koukouku/p/10692054.html
Copyright © 2020-2023  润新知