Python built-in 函数

一、abs(x)

说明:返回绝对值

参数可以是:负数、正数、浮点数或者长整形

实例:

abs(-1.2) #返回 1.2

abs(1.2) #返回 1.2

abs(-11216.5) #返回 11216.5

abs(11216.5) #返回 11216.5

二、all(iterable)

注意点:参数可以是负数也可以为正数。只会取绝对值,不会做取整。

版本:该函数在python2.5版本首次出现,适用于2.5以上版本,包括python3,兼容python3版本。

说明:如果iterable的所有元素不为0、‘‘、False或者iterable为空,all(iterable)返回True,否则返回False;函数等价于:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

参数iterable:可迭代对象;

示例:

>>> all([‘a‘, ‘b‘, ‘c‘, ‘d‘])  #列表list,元素都不为空或0
True
>>> all([‘a‘, ‘b‘, ‘‘, ‘d‘])  #列表list,存在一个为空的元素
False
>>> all([0, 1,2, 3])  #列表list,存在一个为0的元素
False

>>> all((‘a‘, ‘b‘, ‘c‘, ‘d‘))  #元组tuple,元素都不为空或0
True
>>> all((‘a‘, ‘b‘, ‘‘, ‘d‘))  #元组tuple,存在一个为空的元素
False
>>> all((0, 1,2, 3))  #元组tuple,存在一个为0的元素
False

>>> all([]) # 空列表
True
>>> all(()) # 空元组
True

三、any(iterable)

注意:空元组、空列表返回值为True,这里要特别注意

版本:该函数适用于2.5以上版本,兼容python3版本。

说明:如果iterable的任何元素不为0、‘‘、False,all(iterable)返回True。如果iterable为空,返回False。函数等价于:

注意比较该函数与all()函数的区别,any是任意,而all是全部。建议比较学习两者的区别与联系。

def any(iterable):

   for element in iterable:

       if  element:

           return False

   return True

参数iterable:可迭代对象;

示例:

>>> any([‘a‘, ‘b‘, ‘c‘, ‘d‘])  #列表list,元素都不为空或0

True

>>> any([‘a‘, ‘b‘, ‘‘, ‘d‘])  #列表list,存在一个为空的元素

True

>>> any([0, ‘‘, False])  #列表list,元素全为0,‘‘,false

False

 >>> any((‘a‘, ‘b‘, ‘c‘, ‘d‘))  #元组tuple,元素都不为空或0

True

>>> any((‘a‘, ‘b‘, ‘‘, ‘d‘))  #元组tuple,存在一个为空的元素

True

>>> any((0, ‘‘, False))  #元组tuple,元素全为0,‘‘,false

False

>>> any([]) # 空列表

False

>>> any(()) # 空元组

False

四、basestring()

说明:basestring是str和unicode的超类(父类),也是抽象类,因此不能被调用和实例化,但可以被用来判断一个对象是否为str或者unicode的实例,isinstance(obj, basestring)等价于isinstance(obj, (str, unicode));

版本:python2.3版本以后引入该函数,兼容python2.3以后python2各版本。注意:python3中舍弃了该函数,所以该函数不能在python3中使用。

示例:

>>> isinstance("Hello world", str)

True

>>> isinstance("Hello world", basestring)

True

>>> isinstance(u"你好", unicode)

True

>>> isinstance(u"你好", basestring)

True

来个实用的

要检查某对象是否为字符串或 Unicode 对象,简单快速的办法是使用内建的 isinstance 和 basestring ,用法如下所示:

def isAString(anobj):

   return isinstance(anobj, basestring)

该函数还是比较有用的,但是一定要注意它的版本要求

五、bin(x)

中文说明:将整数x转换为二进制字符串,如果x不为Python中int类型,x必须包含方法__index__()并且返回值为integer;

参数x:整数或者包含__index__()方法切返回值为integer的类型;

版本:bin函数是python2.6中新增函数,使用时要注意版本问题。

实例讲解:

#整数的情况
>>> bin(521)
#这里的显示结果形式与我们平时习惯有些差别,主要是前面多了0b,这是表示二进制的意思。
‘0b1000001001‘
#非整型的情况,必须包含__index__()方法切返回值为integer的类型
>>> class myType:
...   def __index__(self):
...     return 35

>>> myvar = myType()
>>> bin(myvar)

‘0b1000001001‘

PS:该函数非常简单,但是要注意版本,和参数类型

六、bool([x])

说明:将x转换为Boolean类型,如果x缺省,返回False,bool也为int的子类;

参数x:任意对象或缺省;大家注意到:这里使用了[x],说明x参数是可有可无的,如果不给任何参数则会返回False。

版本:在python 2.2.1中引入的新函数,在python2.3以后如果不传参数则返回False。

注意:该函数在python3中也可正常使用

实例:

>>> bool(0)
False
>>> bool("abc")
True
>>> bool("")
False
>>> bool([])
False
>>> bool()
False
>>> issubclass(bool, int) #bool是一个subclass int
True

七、bytearray([source [, encoding [, errors]]])

说明:bytearray([source [, encoding [, errors]]])返回一个byte数组。Bytearray类型是一个可变的序列,并且序列中的元素的取值范围为
[0 ,255]。

参数source:

如果source为整数,则返回一个长度为source的初始化数组;

如果source为字符串,则按照指定的encoding将字符串转换为字节序列;

如果source为可迭代类型,则元素必须为[0 ,255]中的整数;

如果source为与buffer接口一致的对象,则此对象也可以被用于初始化bytearray.。

版本:在python2.6后新引入,在python3中同样可以使用!

实例演示:

>>> a = bytearray(3)
>>> a
bytearray(b‘\x00\x00\x00‘)
>>> a[0]

>>> a[1]

>>> a[2]

>>> b = bytearray("abc")
>>> b
bytearray(b‘abc‘)
>>> b[0]

>>> b[1]

>>> b[2]

>>> c = bytearray([1, 2, 3])
>>> c
bytearray(b‘\x01\x02\x03‘)
>>> c[0]

>>> c[1]

>>> c[2]

>>> d = bytearray(buffer("abc"))
>>> d
bytearray(b‘abc‘)
>>> d[0]

>>> d[1]

>>> d[2]

八、callable(object)

说明:检查对象object是否可调用。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。

注意:类是可调用的,而类的实例实现了__call__()方法才可调用。

版本:该函数在python2.x版本中都可用。但是在python3.0版本中被移除,而在python3.2以后版本中被重新添加。

代码实例:

>>> callable(0)
False
>>> callable("mystring")
False
>>> def add(a, b):
…     return a + b
…
>>> callable(add)
True
>>> class A:
…      def method(self):
…         return 0
…
>>> callable(A)
True
>>> a = A()
>>> callable(a)
False
>>> class B:
…     def __call__(self):
…         return 0
…
>>> callable(B)
True
>>> b = B()
>>> callable(b)
True
 

九、chr(i)--ord()

说明:返回整数i对应的ASCII字符。与ord()作用相反。

参数x:取值范围[0, 255]之间的正数。

版本:该函数在python2和python3各个版本中都可用。不存在兼容性问题。

代码实例:

>>> chr(97)
‘a‘
>>> chr(98)
‘b‘
>>> ord(‘a‘)
97
>>> ord(‘b‘)
98

ps:呵呵,这个函数和php里面的用法是一样的哦

十、classmethod(function)

说明:classmethod是用来指定一个类的方法为类方法,没有此参数指定的类的方法为实例方法,使用方法如下:

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...

版本:python2.2中新增,在python2.4中增加新功能。python3中仍可用。类方法既可以直接类调用(C.f()),也可以进行实例调用(C().f())。

代码实例:

>>> class C:
...     @classmethod
...     def f(self):
...             print "This is a class method"
...
>>> C.f()
This is a class method
>>> c = C()
>>> c.f()
This is a class method
>>> class D:
...     def f(self):
...             print " This is not a class method "
...
>>> D.f()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unbound method f() must be called with D instance as first argument (got nothing instead)
>>> d = D()
>>> d.f()
This is not a class method

十一、cmp(x, y)

说明:比较两个对象x和y,如果x < y ,返回负数;x == y, 返回0;x > y,返回正数。

版本:该函数只有在python2中可用,而且在python2所有版本中都可用。但是在python3中该函数已经被删减掉,这点要特别注意。

代码示例:

>>> cmp(1, 2)
-1
>>> cmp(1, 1)
0
>>> cmp(5, 2)
1
>>> cmp(‘abcd‘,‘a‘)
1
#注意:这时候它会先比较第一个字符,然后比较第二个字符,逐个比较知道能判断出大小为止。

十二、compile(source, filename, mode[, flags[, dont_inherit]])

说明:将source编译为代码或者AST对象。代码对象能够通过exec语句来执行或者eval()进行求值。

参数source:字符串或者AST(Abstract Syntax Trees)对象。

参数filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。

参数model:指定编译代码的种类。可以指定为 ‘exec’,’eval’,’single’。

参数flag和dont_inherit:这两个参数暂不介绍,可选参数。

版本:在python2.3、2.6、2.7、3.2中均有不同,使用时要引起注意,兼容python3

代码示例:

>>> code = "for i in range(0, 10): print i"
>>> cmpcode = compile(code, ‘‘, ‘exec‘)
>>> exec cmpcode
0
1
2
3
4
5
6
7
8
9
>>> str = "3 * 4 + 5"
>>> a = compile(str,‘‘,‘eval‘)
>>> eval(a)
17

十三、complex([real[, imag]])

说明:创建一个值为real + imag * j的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。

参数real: int, long, float或字符串;

参数imag: int, long, float。

代码实例:

>>> complex(1, 2)
(1 + 2j)
#数字
>>> complex(1)
(1 + 0j)
#当做字符串处理
>>> complex("1")
(1 + 0j)
#注意:这个地方在“+”号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
>>> complex("1+2j")
(1 + 2j)

十四、dir()

说明:

不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

你可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。

当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。

首先,我们来看一下在输入的sys模块上使用dir。我们看到它包含一个庞大的属性列表。

接下来,我们不给dir函数传递参数而使用它——默认地,它返回当前模块的属性列表。注意,输入的模块同样是列表的一部分。

为了观察dir的作用,我们定义一个新的变量a并且给它赋一个值,然后检验dir,我们观察到在列表中增加了以上相同的值。我们使用del语句删除当前模块中的变量/属性,这个变化再一次反映在dir的输出中。

关于del的一点注释——这个语句在运行后被用来 删除 一个变量/名称。在这个例子中,del a,你将无法再使用变量a——它就好像从来没有存在过一样。

参数object: 对象、变量、类型。

版本:该函数在python各个版本中都有,但是每个版本中显示的属性细节有所不同。使用时注意区别。

代码实例:

>>> import struct
>>> dir()   # show the names in the module namespace
[‘__builtins__‘, ‘__doc__‘, ‘__name__‘, ‘struct‘]
>>> dir(struct)   # show the names in the struct module
[‘Struct‘, ‘__builtins__‘, ‘__doc__‘, ‘__file__‘, ‘__name__‘,
 ‘__package__‘, ‘_clearcache‘, ‘calcsize‘, ‘error‘, ‘pack‘, ‘pack_into‘,
 ‘unpack‘, ‘unpack_from‘]
>>> class Shape(object):
        def __dir__(self):
            return [‘area‘, ‘perimeter‘, ‘location‘]
>>> s = Shape()
>>> dir(s)
[‘area‘, ‘perimeter‘, ‘location‘]

十五、delattr(object, name)

说明:删除object对象名为name的属性。这个函数的命名真是简单易懂啊,和jquery里面差不多,但是功能不一样哦,注意一下。

参数object:对象。

参数name:属性名称字符串。

版本:各版本中都支持该函数,python3中仍可用。

代码实例:

>>> class Person:
...     def __init__(self, name, age):
...             self.name = name
...             self.age = age
...
>>> tom = Person("Tom", 35)
>>> dir(tom)
[‘__doc__‘, ‘__init__‘, ‘__module__‘, ‘age‘, ‘name‘]
>>> delattr(tom, "age")
>>> dir(tom)
[‘__doc__‘, ‘__init__‘, ‘__module__‘, ‘name‘]

十六、divmod(a,b)函数

说明:

divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数

返回结果类型为tuple

参数:a,b可以为数字(包括复数)

版本:在python2.3版本之前不允许处理复数,这个大家要注意一下

代码实例:

>>> divmod(9,2)
(4, 1)
>>> divmod(11,3)
(3, 2)
>>> divmod(1+2j,1+0.5j)
((1+0j), 1.5j)
时间: 2024-10-09 02:01:16

Python built-in 函数的相关文章

如何理解Python的Main函数?

作者:蟒蛇帝国(ID:Pythondg) 难度:初级 演示环境:OS:ubuntu 16.04Python:3.6 编写 Python 代码的时候我们经常看到下面这条语句.貌似是 Python 的 Main 函数.那它具体是什么意思呢. if __name__ == '__main__':     print('hello world') 首先 Python 里有两个概念, 源码文件: ~/code_house/py_dev$ tree . ├── file1.py ├── file2.py └

python 集合、函数

*集合: set:持有一系列元素,但是set元素没有重复,并且无序 如何创建:set()并传入一个list,list的元素将作为set 的元素. s=set(['a','b','c']) print(s)    //set(['a', 'c', 'b']) print(len(s))  //3 如何访问:用in操作符判断有没有 =([,,,]) ( )//True set的特点: 1.内部结构和字典很像,唯一区别是不存储value =([,,,,,,]) x1=x2=x1 :     () (x

python基础教程函数参数

python里有很多的内置函数给我们的工作带来了很多发便利,在我们实现某些功能或者优化代码的时候,可以自己定义一个函数,同时我们在定义一个类的时候也会用到函数的一些知识去构造一个方法,这里就涉及到一些关于函数的基础知识和函数传参的知识. 一.函数的相关介绍 1.函数定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 函数特性: 减少重复代码 使程序变的可扩展 使程序变得易维护 2.函数的定义示例 定义一个函数要使用def语句,依次写出函数名.括

Python的功能函数如何使用?

Python开发中的函数提供了有组织的,可重用的代码来执行一组操作.函数简化了编码过程,防止冗余逻辑,并使代码更容易遵循. 定义和调用简单函数 使用 def 语句来定义Python中的函数最常见的方式. 这种说法是所谓的单条复合语句 的语法如下: def function_name(parameters): statement(s) function_name 被称为 标识符 的功能. 由于函数定义是一个可执行语句其执行 绑定 功能名称可以在以后使用的标识符被称为函数对象. parameters

python基础——sorted()函数

python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来. Python内置的sorted()函数就可以对list进行排序: >>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5, 9, 36] 此外,sorted()函数也是一个

python内置函数proprety()

property 可以将python定义的函数"当做"属性访问,从而提供更加友好访问方式,但是有时候setter/getter也是需要的 假设定义了一个类Cls,该类必须继承自object类,有一私有变量__x 1. 第一种使用属性的方法: class Cls(object):     def __init__(self):         self.__x = None           def getx(self):         return self.__x        

Python的main函数

初学Python,写C++时,习惯写上main函数,作为程序入口, 但是,在写Python时,只能看见 __name__ == "__main__", 于是,探个究竟,Python程序从哪开始?啧啧,虽然它多数是脚本~ 转自下面链接的一段话: http://blog.163.com/benben_long/blog/static/199458243201212123099/ if __name__=="__main__":     print("main&

Python内置函数_数学运算类

本文和大家分享的主要是python内置函数数据运算类相关内容,一起来看看吧,希望对大家学习python 有所帮助. abs abs(x) 求绝对值 · X可以是整型,也可以是复数 · 若X是复数,则返回复数的模 >>> abs(-1)1>>> abs(-3+4j)5.0>>> bin bin(x) 将整数x转换为二进制字符串 >>> bin(2)'0b10'>>> bin(3)'0b11' bool bool([x]

python内置函数4-eval()

Help on built-in function eval in module __builtin__: eval(...) eval(source[, globals[, locals]]) -> value Evaluate the source in the context of globals and locals. The source may be a string representing a Python expression or a code object as retur

Python之编写函数

Python之编写函数 在Python中,定义一个函数要使用 def 语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回. 我们以自定义一个求绝对值的 my_abs 函数为例: def my_abs(x): if x >= 0: return x else: return -x 请注意,函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回.因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑. 如果没