zoukankan      html  css  js  c++  java
  • 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("输入错误")
    
    
    
  • 相关阅读:
    mysql BETWEEN操作符 语法
    mysql IN操作符 语法
    mysql LIKE通配符 语法
    mysql TOP语句 语法
    mysql DELETE语句 语法
    mysql Update语句 语法
    mysql INSERT语句 语法
    mysql ORDER BY语句 语法
    mysql OR运算符 语法
    mysql AND运算符 语法
  • 原文地址:https://www.cnblogs.com/koukouku/p/10692054.html
Copyright © 2011-2022 走看看