zoukankan      html  css  js  c++  java
  • python 中一些常用的内置函数

    一、常用内置函数

    • abs(x) 返回绝对值,参数为int float,非字符只能num

    • all(iterable) 如果迭代对象里面的所有值都为真就返回True。all([1, 2, -7]) ---->True all(1, 0, 3]) ----->False

    • any(iterable) 和上相反有一个为真就返回 True

    • bin(digital) 把十进制数转为2进制 bin(1)-->'0b1' bin(4)-->'0b00' bin(255) --> '0b11111111'

    • a= byte('abcde', encoding='utf-8')

    >>> a = bytes('abcde', encoding='utf-8')
    >>> print(a.capitalize(), '-------', a)
    b'Abcde' ------- b'abcde'       #可以看到字符串a作为不可变类型,是无法改变的
    
    • bytearray('abcde', encoding= "utf-8") 返回字符串每个字符ASCII值组成的一个列表,用处:作者本人在写登录程序时,用户名非法字符用过,将用户名bytearry()然后循环对比如果有ASCII值在32-47之间,当中就含有非法字符。返回False
    >>> b_list = bytearray('abcde', encoding="utf-8") 
    >>> for item in b_list: 
    ...     print(item)
    97
    98
    99
    100
    101
    >>> b_list[1] = 55
    >>> b_list
    bytearray(b'a7cde')         #可以看到,当我们把列表中的第1个元素ASCII值修改为55后字符串改变了
    
    • callable(v) 判断是否可调用,是返回True。这个还算好用,比如我们自己写装饰器时,判断下传过来是否是可调用的函数,如果不是那就不操作callable([1])-->False

    • chr(数字)把数字对应的ASCII表中的代表返回 chr(97)-->'a' chr(87)-->'W'

    • ord(字母) 把字符对应的ASCII值返回,只能一个字母,bytearray返回字符串的ASCII成迭代器(可理解为列表)

    • compile() 底层用来把字符串文件编译成可执行文件的函数。第一个参数字符串,第二个不用管,第三个可以为'exec','eval'

    >>> code = "for i in range(3):    print(i)"
    >>> c = compile(code, ' ', 'exec')
    >>> exec(c)
    0
    1
    2
    
    • eval(字符串) exec() 参数为可执行字符串,返回执行结果,同compile,eval只能执行一行简单的代码,而exec只要格式正确都行
    >>> eval('1 + 2 + 6')
    9
    >>> code = '''def fun(a):
       print(a)
    fun("luxi")'''
    >>> exec(code)         #exec格式正确正常使用
    luxi
    >>> eval(code)         #eval 作者也不知道,反正同一串代码,exec能执行,eval不行,eval在执行一行简单代码上没问题
      File "<string>", line 1
        def fun(a):
          ^
    SyntaxError: invalid syntax
    
    • dir(dict) 查看变量,函数类所拥有的方法
      [...'__hash__', '__init__', '__iter__',...'get', 'items', 'keys', 'pop'..'update', 'values']

    • divmod(5, 2) 返回商和余数 --->(2, 1)

    • filter(function, iterable) 按照function的规则过滤出来想要的结果
      for i in filter(lambda x:x>5, [2, 3, 5, 7, 9]): print(i)----->7 9 filter会得到一个filter的迭代对象

    • globals() 返回程序命名空间中的所有key-value

    • locals() 返回函数的局部作用域(命名空间)的所有key-value
      以上两个关于函数作用域问题在以下文章有写
      [https://www.cnblogs.com/shiqi17/p/9331002.html]

    人生还有意义。那一定是还在找存在的理由
  • 相关阅读:
    luoguP1080 国王游戏 题解(NOIP2012)(贪心+高精)
    luoguP1079 Vigenère 密码 题解(NOIP2012)
    luoguP2184 贪婪大陆 题解(树状数组)
    luoguP2680 运输计划 题解(二分答案+树上差分)
    树链剖分总结
    树上差分总结
    luoguP3258 [JLOI2014]松鼠的新家 题解(树上差分)
    简单差分(保证你一看就懂)
    luoguP3128 [USACO15DEC]最大流Max Flow 题解(树上差分)
    luoguP1541 乌龟棋 题解(NOIP2010)
  • 原文地址:https://www.cnblogs.com/shiqi17/p/9356188.html
Copyright © 2011-2022 走看看