zoukankan      html  css  js  c++  java
  • python之路day15--内置函数

    函数分为自定义函数和内置函数

    python内置函数分类:

    5.5.1 强制转换

    • int() / str() / bool() / list() / tuple() / dict() / set()

    5.5.2 输入输出

    • input() / print()

    5.5.3 数学相关

    • abs():计算绝对值

    • sum():求和

    • float():转化为浮点型(小数)

      v = 55
      v1 = float(55)
      print(v1)       #55.0
      • 补充:int(55.5) #只保留整数:55

    • max():找到最大值

    • min():找到最小值

    • divmod():取两数相除的商和余数

      #示例:
      a,b = divmod(1001,5)
      print(a,b)         ##a=200,b=1
      • 注意:divmod在分页展示时用得比较多

        # 练习题  请通过分页对数据进行展示
        """
        要求:
          每页显示10条数据
          让用户输入要查看的页面:页码
        """

        USER_LIST = []
        for i in range(1,836):
          temp = {'name':'你-%s' %i,'email':'123%s@qq.com' %i }
          USER_LIST.append(temp)

        # 数据总条数
        total_count = len(USER_LIST)

        # 每页显示10条
        per_page_count= 10

        # 总页码数
        max_page_num,a = divmod(total_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('页码不合法,必须是 1 ~ %s' %max_page_num )
          else:
              start = (pager-1) * per_page_count
              end = pager * per_page_count
              data = USER_LIST[start:end]
              for item in data:
                  print(item)
    • pow():指数

      v = pow(2,3)      #相当于2**3
      print(v)         # 8
    • round():保留几位小数,默认保留整数,还会四舍五入

      v = round(1.127,2)       #第二个数代表保留几位小数,默认是None
      print(v)         # 1.13 四舍五入

    5.5.4 进制转换相关

    • bin():将十进制转换成二进制

    • oct():将十进制转换成八进制

    • int():将其他进制转换成十进制

      • 默认:base = 10

      # 二进制转化成十进制
      v1 = '0b1101'
      result = int(v1,base=2)         #base=2说明读取的是二进制
      print(result)

      # 八进制转化成十进制
      v1 = '0o1101'
      result = int(v1,base=8)
      print(result)

      # 十六进制转化成十进制
      v1 = '0x1101'
      result = int(v1,base=16)
      print(result)
    • hex():将十进制转换成十六进制

    #1字节等于8位
    # IP: 192.168.12.79 -> 001010010 . 001010010 . 001010010 . 001010010

    # 请将 ip = "192.168.12.79" 中的每个十进制数转换成二进制并通过,连接起来生成一个新的字符串。
    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))


    #面试题:
    # 请将 ip = "192.168.12.79" 中的每个十进制数转换成二进制:
    #         0010100100001010010001010010001010010 -> 十进制的值。
    # 3232238671
    ip = '192.168.12.79'
    v = ip.split('.')
    info = []
    for i in v:
      date = str(bin(int(i)))
      if len(date) > 10:
          date = date[-8:]
      else:
          count = 10 - len(date)
          date = date.replace('0b','0'*count)
      info.append(date)
    val = "".join(info)
    a = int(val,base=2)
    print(a)

    5.5.5 编码相关

    • chr():将十进制数字转换成 unicode 编码中的对应字符串

    • ord():根据字符在 unicode 编码中找到其对应的十进制

      #应用:生成随机验证码
      import random         # 导入一个模块
      def get_random_code(length=6):
        data = []
        for i in range(length):
            v = random.randint(65,90)
            data.append(chr(v))
        return ''.join(data)

      code = get_random_code()
      print(code)

    5.5.6 内置函数高级

    • map(函数,可迭代对象):一起执行

      • 循环每个元素(第二个参数),然后让每个元素执行函数(第一个参数),将每个函数执行的结果保存到新的列表中,并返回

      #示例:
      v1 = [11,22,33,44]
      result = map(lambda x:x+100,v1)
      print(list(result))
    • filter(函数,可迭代对象):进行筛选

      #示例:
      v1 = [11,22,33,'asd',44,'xf']

      def func(x):
        if type(x) == int:
            return True
        return False
      result = filter(func,v1)
      print(list(result))

      # 用lambda表达式:
      result = filter(lambda x: True if type(x) == int else False ,v1)
      print(list(result))
      # 相当于:
      result = filter(lambda x: type(x) == int ,v1)
      print(list(result))
    • map / filter(python2与python3的区别九)

      • python2:返回列表,直接创建值,可以通过索引取值

      • python3:返回迭代器,不直接创建值,通过循环,边循环边创建

    • reduce(函数,可迭代对象):得到结果

      import functools
      v1 = ['wo','hao','e']
      def func(x,y):
        return x+y
      result = functools.reduce(func,v1)
      print(result)

      # 用lambda表达式:
      result = functools.reduce(lambda x,y:x+y,v1)
      print(result)

    5.5.7 类相关

    • type():查看数据类型

      class Foo:
        pass

      obj = Foo()
      if type(obj) == Foo:
        print('obj是Foo类的对象')
    • issubclass(类,类或其基类):判断前一个类是否是后一个类或其基类的子类

      • 结果是布尔类型,是 -> True,否 -> False

      class Base:
        pass

      class Base1(Base):
        pass

      class Foo(Base1):
        pass

      class Bar:
        pass

      print(issubclass(Bar,Base))
      print(issubclass(Foo,Base))
    • isinstance(对象,类或其基类):判断一个对象是否是一个类或其基类的实例(对象)

      • 结果是布尔类型,是 -> True,否 -> False

      • 注意:判断一个对象是否是一个类的实例(对象),一定要用type,不要用isinstance

      class Base(object):
        pass

      class Foo(Base):
        pass

      obj = Foo()
      print(isinstance(obj,Foo)) # 判断obj是否是Foo类或其基类的实例(对象)
      print(isinstance(obj,Base)) # 判断obj是否是Foo类或其基类的实例(对象)
    • super().方法名():根据self对象所属的类的继承关系,按照顺序依次找方法并执行(找到第一个为止)

      class Base(object):
        def func(self):
            super().func() # 根据self对象所属类的继承关系,按照顺序挨个找func方法并执行(找到第一个为止)
            print('base.func')

      class Bar(object):
        def func(self):
            print('bar.func')

      class Foo(Base,Bar): # Foo -> Base -> Bar
        pass

      obj = Foo()
      obj.func()

    5.5.8 其他

    • len() :计算长度

    • open() :打开文件

    • range()

    • id() :查看内存地址

     
  • 相关阅读:
    JavaScript 基础(三)
    2015-10-15 第十四节课 补充CSS一些特殊选择器
    2015-09-29 第八节课 JavaScript 基础(二)(js语句:条件、循环)
    2015-09-28 第七节课JavaScript 基础(一) (js简介、声明变量、数据类型)
    2015 09-23 第五节课程(css:仿站及常见代码用法)
    【小练习2】如何制作“表格”
    51nod-1627 瞬间移动(组合数+逆元)
    POJ-3450 Corporate Identity (KMP+后缀数组)
    POJ-2406 Power Strings(KMP)
    CSU-1632 Repeated Substrings (后缀数组)
  • 原文地址:https://www.cnblogs.com/hanfe1/p/10856842.html
Copyright © 2011-2022 走看看