zoukankan      html  css  js  c++  java
  • Python学习笔记(12)内置函数

    一、强制类型转换

    # int
    print("强制转换为整型:",int(12.01))
    # str
    print("强制转换为字符串:",str(19.29))
    # list
    print("强制转换为list列表:",list((1,2,3,4)))
    # set
    print("强制转换为set集合:",set((1,2,3,4,2)))
    # dict
    print("强制转换为字典:",dict(a = 1,b = 2))#  可以传入键值对创建字典。
    print("强制转换为字典",dict(zip(['a','b'],[1,2]))) # 可以传入映射函数创建字典。)
    print("强制转换为字典",dict((('a',1),('b',2)))) #可以传入可迭代对象创建字典
    # tuple
    print("强制转换为tuple元组",tuple('121')) #传入可迭代对象。使用其元素创建新的元组
    # bool
    print(bool('abc')) #返回非空,非0,非None等即为True
    

      返回结果:

    强制转换为整型: 12
    强制转换为字符串: 19.29
    强制转换为list列表: [1, 2, 3, 4]
    强制转换为set集合: {1, 2, 3, 4}
    强制转换为字典: {'a': 1, 'b': 2}
    强制转换为字典 {'a': 1, 'b': 2}
    强制转换为字典 {'a': 1, 'b': 2}
    强制转换为tuple元组 ('1', '2', '1')
    True
    

      

    二、序列操作

    print(all(['1','2','3',0]))#判断可迭代对象的每个元素是否都为True值,结果返回False
    print(any([0, '', False]))  # 判断可迭代的对象里面的值是否有一个为真,结果返回False
    print(bin(10))  # 十进制转二进制
    print(chr(33))  # 打印数字对应的ascii
    print(ord('b'))  # 打印字符串对应的ascii码
    

      返回结果:

    False
    False
    0b1010
    !
    98
    

      

    三、进制转换与局部/全局变量

    s=''
    print(dir(s))  # 打印传入对象的可调用方法
    print(hex(111))  # 数字转成16进制
    print(oct(111))  # 把数字转换成8进制
    def func():
        name ='abc'
        age = 18
        # {'name':'abc','age':18}
        print(locals())  # 返回局部变量,返回的是一个字典
    func()
    # name = '123'
    print(globals())  # 返回程序内所有的全局变量,返回的是一个字典
    

      返回结果:

    ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
    0x6f
    0o157
    {'name': 'abc', 'age': 18}
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000023CC3F20910>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/Users/13457/Desktop/besttest作业与源码/day4/内置函数.py', '__cached__': None, 's': '', 'func': <function func at 0x0000023CC40CCAF0>}
    

      

    四、数据运算

    print(max([1,5,9,111,324]))  # 取最大值
    print(min([1,5,9,111,324]))  # 取最小值
    print(sum([1,5,9,111,324]))  #求和
    print(divmod(10,3))#取余,返回一个元组,数据:(商,余数)
    print(round(11.1111111111, 2))  # 取几位小数
    print(list(zip([1,2,3],['t','r','e'])))#把两个list和成一个二维数组(单个元素为元组),需要强转为list
    

      返回结果:

    324
    1
    450
    (3, 1)
    11.11
    [(1, 't'), (2, 'r'), (3, 'e')]
    

      

    五、复杂点的函数

      1、sorted()函数

      实例1:

    print(sorted([2, 31, 34, 6, 1, 23, 4])) # 排序
    print(sorted([2, 31, 34, 6, 1, 23, 4],reverse=True))  # 排序后反转list
    

      返回结果:

    [1, 2, 4, 6, 23, 31, 34]
    [34, 31, 23, 6, 4, 2, 1]
    

      实例2:对三维数组通过特定值来排序

    # sorted 语法:
    #
    # sorted(iterable, cmp=None, key=None, reverse=False)
    # 参数说明:
    #
    # iterable -- 可迭代对象。
    # cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
    # key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    # reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
    l = [
        ('小名',5,['xx',11]),
        ['xiaohei',19,['xx',13]],
        ['xiaobai',20,['xx',18]],
        ['xiaolan',10,['xx',20]]
    ]
    # def use_key(x):
    #     return x[1]
    
    l4 = sorted(l,reverse=True,key=lambda x:x[-1][-1])  #按照二维数组中第三个元素的最后一个值降序排序
    print(l4)
    

      返回结果:

    [['xiaolan', 10, ['xx', 20]], ['xiaobai', 20, ['xx', 18]], ['xiaohei', 19, ['xx', 13]], ('小名', 5, ['xx', 11])]
    

      

    实例3:对字典的value值进行排序

    d={'a':1,'b':2,'c':-1}
    print(d)
    l2 = sorted(d.items(),reverse=True,key=lambda x:x[0])#按照key降序排序
    #sorted会循环每个元素(d.items()返回的元素是一个由(key,value)元组组成的list),将key即x[0]作为返回值传递给key
    l3 = sorted(d.items(),reverse=True,key=lambda x:x[1])按照value降序排序
    print(l2)
    print(l3)
    #key的作用是传一个函数名
    

      返回结果:

    {'a': 1, 'b': 2, 'c': -1}
    [('c', -1), ('b', 2), ('a', 1)]
    [('b', 2), ('a', 1), ('c', -1)]

      2、fitler()函数

       filter函数,将后面可迭代的部分,按照前面条件筛选,留下满足条件的数据,返回到一个list中(需要强制转换为list)

    实例1:

    result1 = filter(lambda x: x > 5, [12, 3, 12, 2, 1, 2, 35])#使用匿名函数作为变量
    print(list(result1))     #返回filter类,需要强制转换为list
    #-------------------------等价于-----------------------------
    def filter_test(x):
        return x>5
    result2 = filter(filter_test, [12, 3, 12, 2, 1, 2, 35])#使用定义函数名作为变量
    print(list(result2))
    

      返回结果:

    [12, 12, 35]
    [12, 12, 35]
    

      

      3、map()函数

      map函数:map()函数是python内置的高阶函数,对传入的list的每一个元素进行映射,返回一个新的映射之后的list

    实例1:

    #对一个list每个元素转换为字符串且去空,并补充3位数,再输出为一个新的list
    l = [12, 3, 12, 2, 1, 2, 35]
    result = map(lambda x: str(x).strip().zfill(3), l) #map方式实现
    print(list(result))
    

      返回结果:

    ['012', '003', '012', '002', '001', '002', '035']

      4、exec()函数和eval()函数

      exec()可执行python代码,不需要在编辑器里Run代码了

      

    print(exec('def a():pass '))  # 执行python代码
    
    #会执行定义a方法的代码
    

      

      eval()-----------执行python代码,但是只能执行简单的,定义数据类型和运算

    result = eval('{"code":1,"name":"xiaohei"}') #执行python代码,只能执行简单的,定义数据类型和运算
    print(result)
    
    
    #将json字符串类型转换为了字典类型
    

      

    print(eval('2+2'))   #执行了python运算
    

      

  • 相关阅读:
    CentOS下crond定时任务详细介绍
    js随机从数组中取出几个元素
    js复制内容加版权声明代码
    crond不执行原因分析
    2015年最全的移动WEB前端UI框架
    聊聊前端排序的那些事
    Linux下修改Mysql的用户(root)的密码
    SIPp常用脚本之三:UAC
    SIPp常用脚本之二:UAS
    SIPp常用脚本之一:register注册
  • 原文地址:https://www.cnblogs.com/bugoobird/p/12831207.html
Copyright © 2011-2022 走看看