zoukankan      html  css  js  c++  java
  • Python基础知识(day10)

    day10

    今日内容

    • 函数小高级
    • lambda 表达式
    • 内置函数

    内容详细

    1. 函数小高级

      • 函数名当变量来使用

        # 函数赋值
        def func():
            print(123)
        # 函数为列表参数
        func_list = [func,func,func]
        func_list[0]()
        func_list[1]()
        for item in func_list:
            item()
        # 函数为集合元素,会去重
        func_list2 = {func,func,func}
        for itme in func_list2:
            item()
        # 函数为字典value,也可以为索引,但是无太大意义
        func_list2 = {'k1':'func','k2':'func','k3':'func'}
        for itme in func_list2:
            item()
        
        func_list3 = [func(),func(),func()]
        print(func_list3)
        
      • 函数可以当作参数进行传递

        def func(arg):
            print(arg)
        
        func(1)
        func([1,2,3,4])
        
        def show():
            return 999
        # 函数做参数进行传递
        func(show())
        
        
        # 分析打印的结果
        # 示例一
        def func(arg):
            arg()
        def show():
            print(666)
        func(show) # 666
        # 实例二
        def func(arg):
            arg()
            v1 = arg()
            print(v1)
        def show():
            print(666)
        func(show) # 666 666 None
        # 示例三
        def func(arg):
            arg()
            v1 = arg()
            print(v1)
        def show():
            print(666)
        result = func(show)
        print(result) # 666 666 None None
        
    2. lambda 表达式

      用于表示简单的函数,:左侧为参数,右侧为函数体

      # lambda 解决简单函数的情况
      def func1(a1,a2):
          return a1+a2
      # lambda 简化,:左侧为参数,右侧为函数体
      func2 = lambda a1,a2:a1+a2
      v = func2(1,2)
      print(v)
      
      # lambda表达式种类,传参方式
      func3 = lambda : 100
      
      func4 = lambda x1:x1 +10
      
      func5 = lambda *args,**kwargs: len(args) + len(kwargs)
      
      
      
      # 练习1
      user_list = []
      func = lambda x: user_list.append(x)
      v1 = func('llk')
      print(v1) # 没有返回值,默认返回None
      print(user_list)
      
      # 练习2
      def func1(x):
          v = x.strip()
          return v
      result = func1('llk')
      print(result)
      

    注意

    列表所有方法基本上都是返回None;字符串的所有方法基本上都是返回新值

    1. 内置函数

      • 自定义函数

      • 内置函数

        • len()

        • open()

        • range()

        • id()

        • type()

        • 输入输出

          • print()
          • input()
        • 强制转换

          • dict()
          • list()
          • tuple()
          • int()
          • str()
          • bool()
          • set()
        • 数学相关

          • abs() # 绝对值

          • float() # 转换成浮点型

          • max() # 最大值

          • min() # 最小值

          • sum() # 求和

          • divmod # 两数相除的商和余数

            a,b = divmod(1001,5)
            print(a,b) # 200 1
            
        • 进制转换相关

          • bin() # 转换为二进制

          • oct() # 转换成八进制

          • int() # 其他转换从十进制

          • hex() # 转换从十六进制

            # 十进制转换成二进制
            num = 15
            v1 = bin(num)
            print(v1)
            # 十进制转换成八进制
            v2 = oct(num)
            print(v2)
            # 二进制转换成十进制
            v1 = '0b1111'
            result = int(v1,base=2)
            print(result)
            # 八进制转换成十进制
            v1 = '0o17'
            result = int(v1,base=8)
            print(result)
            # 十六进制转换成十进制
            v1 = '0xf'
            result = int(v1,base=16)
            print(result)
            
            

    练习题

    # 练习1
    '''
    分页对数据进行展示
    要求:
        每页显示10条数据
        让用户输入要查看的页码进行显示
    '''
    user_list = []
    for i in range(1,1000):
        tem = {"name": "李浪魁%s" %i,"email":"1067676353@qq.com"}
        user_list.append(tem)
     # 数据总条数
    totle_count = len(user_list)
    # 每页显示10条
    per_page_count = 10
    # 总页码数
    max_page_num,a = divmod(totle_count,per_page_count)
    if a >0:
        max_page_num += 1
    while True:
    
        pager = int(input("请输入要查看的页码: "))
        if pager < 1 or pager > max_page_num:
            print("页码不存在,请重新输入范围内的页码!")
        # 根据页码取数据
        else:
            '''
            # 第一页: user_list[0:10] -> 0123456789
            # 第二页: user_list[10:20] 
            '''
            start = (pager - 1) * per_page_count
            end = pager * per_page_count
            data = user_list[start:end]
            for item in data:
                print(item)
    
    # 练习2
    # 1字节等于8位
    # IP:192.168.12.79 -> 001010010 . 001010010 . 001010010 .001010010
    # 十进制转换成二进制的叫法,0-255
    '''
    ip = "192.168.12.79"
    将ip中的每个十进制数转换成二进制数,并通过逗号链接生成一个新的字符串
    '''
    ip = '192.168.12.79'
    # 取出放到列表
    ip_list = ip.split('.') # ['192','168','12','79']
    # 转换成数字
    result = []
    for item in ip_list:
        result.append(bin(int(item)))
    print(','.join(result))
    
    
    # 练习3
    '''
    将IP = "192.168.12.79" 中的每个十进制数转换成二进制数
    算出的二进制数转换从的十进制数的值
    '''
    

    今日总结

    • 函数可以当做一个变量:参数传值/当元素嵌套到字典列表中
    • lambda表达式
    • 内置函数
  • 相关阅读:
    SQLdiag-配置文件-ProfilerCollector
    SQLdiag-配置文件-PerfmonCollector
    SQLdiag-初识
    Trace-跟踪高消耗的语句需添加哪些事件
    RML Utilities for SQL Server
    【译】第十五篇 Integration Services:SSIS参数
    修改数据文件和日志文件路径
    Trace-导出已有的服务器端跟踪
    iphoneX的适配问题
    添加阿里巴巴图标,让你页面小图标都是CSS3写成
  • 原文地址:https://www.cnblogs.com/lilangkui/p/12548512.html
Copyright © 2011-2022 走看看