python中常用的内置函数有哪些_Python 常用内置函数

abs 取绝对值

print(abs(-1)) #结果1

all(...)

all(iterable) -> bool

Return True if bool(x) is True for all values x in the iterable.

If the iterable is empty, return True.

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

1 def all(iterable):

2

3 for element in iterable:

4 if not element:

5 return False

6 return True

示例:

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

2 True

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

4 False

5 >>> all([0, 1,2, 3]) #列表list,存在一个为0的元素

6 False

7

8 >>> all(('a', 'b', 'c', 'd')) #元组tuple,元素都不为空或0

9 True

10 >>> all(('a', 'b', '', 'd')) #元组tuple,存在一个为空的元素

11 False

12 >>> all((0, 1,2, 3)) #元组tuple,存在一个为0的元素

13 False

14

15 >>> all([]) # 空列表

16 True

17 >>> all(()) # 空元组

18 True

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

any(...)

any(iterable) -> bool

Return True if bool(x) is True for any x in the iterable.

If the iterable is empty, return False.

any(iterable)说明:参数iterable:可迭代对象;

如果当iterable所有的值都是0、''或False时,那么结果为False,如果所有元素中有一个值非0、''或False,那么结果就为True

函数等价于:

1 def any(iterable):

2

3 for element in iterable:

4

5 if element:

6

7 return False

8

9 return True

示例:

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

2 True

3

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

5 True

6

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

8 False

9

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

11 True

12

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

14 True

15

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

17 False

18

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

20 False

21

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

23 False

ascii(object)

As repr(), return a string containing a printable representation of an object, but escape the non-ASCII characters in the string returned by repr() using \x, \u or \U escapes. This generates a string similar to that returned by repr() in Python 2.

说明:

1. 返回一个可打印的对象字符串方式表示,如果是非ascii字符就会输出\x,\u或\U等字符来表示。与python2版本里的repr()是等效的函数。

copycode.gif

>>> ascii(1)

'1'

>>> ascii('&')

"'&'"

>>> ascii(9000000)

'9000000'

>>> ascii('中文') #非ascii字符

"'\\u4e2d\\u6587'"

copycode.gif

bin,oct,hex

print(bin(10)) #10进制转2进制

print(oct(10)) #10进制转8进制

print(hex(10)) #10进制转16进制

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

返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。可以通过“字节与字节数组操作”章节来查看相关字节数组的内容。下面说明一下几种特别的使用方法:

1. 如果source是一个字符串,那么必须给出endcoding是什么样编码的,以便转换为合适的字节保存。

2. 如果source是一个整数,那么这个数组将初始化为空字节。

3. 如果source是一个有缓冲区接口的对象,那么只读的接口初始到数组里。

4. 如果source是一个迭代对象,那么这个迭代对象的元素都必须符合0 <= x < 256,以便可以初始化到数组里。

如果没有输入任何参数,默认就是初始化数组为0个元素。

例子:

#bytearray()函数

a= bytearray('1234深圳', 'utf-8')print(a)

b=bytearray()print(b)

c= [1,4,5,7,8]print(bytearray(c))

输出结果如下:

bytearray(b'1234\xe6\xb7\xb1\xe5\x9c\xb3')

bytearray(b'')

bytearray(b'\x01\x04\x05\x07\x08')

bytes

返回一个新的数组对象,这个数组对象不能对数组元素进行修改。每个元素值范围: 0 <= x < 256。bytes函数与bytearray函数主要区别是bytes函数产生的对象的元素不能修改,而bytearray函数产生的对象的元素可以修改。因此,除了可修改的对象函数跟bytearray函数不一样之外,其它使用方法全部是相同的。最后它的参数定义方式也与bytearray函数是一样的。

#bytes()函数

a= bytes('abc', 'utf-8')print(a)

b= bytes(1)print(b)

c= bytes([2,3,6,8])print(c)

输出结果如下:

b'abc'

b'\x00'

b'\x02\x03\x06\x08'

callable 是否是可被调用的,返回True或False

print(callable(bytes))print(callable(abs))

打印结果:

True

True

chr() 函数用一个范围在range(256)内的(就是0~255)整数作参数,返回一个对应的字符

>>> chr(65)'A'

ord() 函数是chr()函数(对于8位的ASCII字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值,如果所给的Unicode字符超出了你的Python定义范围,则会引发一个TypeError的异常。

>>>ord('a')97

compile()--编译 执行字符串表示的函数,并为该函数提供全局变量

这个函数有什么用呢? 一个最简单的例子, 就是我们的代码, 会被解释器读取,解释器读取后的其实是字符串, 然后通过compile编译后, 又转换成python可识别的代码.这样python就能执行了.

这里就有一个例子, 是将一段str字符串, 通过compile编译为python代码. 具体如下:

参考自http://www.cnblogs.com/wupeiqi/p/4592637.html

本篇的内容从题目中就可以看出来,就是为之后剖析tornado模板做准备,也是由于该知识点使用的巧妙,所有就单独用一篇来介绍了。废话不多说,直接上代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#!usr/bin/env python

#coding:utf-8

namespace= {'name':'wupeiqi','data':[18,73,84]}

code= '''def hellocute():return "name %s ,age %d" %(name,data[0],) '''

func= compile(code,'',"exec")

exec funcin namespace

result= namespace['hellocute']()

print result

此段代码的执行结果是:name wupeiqi,age 18

上述代码解析:

第6行,code是一个字符串,该字符串的内容是一个函数体。

第8行,将code字符串编译成函数 hello

第10行,将函数 hello 添加到namespace字典中(key为hello),同时也将python的所有内置函数添加到namespace字段中(key为__builtins__),如此一来,namespace中的内容好比是一个个的全局变量,即

1

2

3

4

5

name = wupeiqi

data = [18,73,84]

def hellocute():

return "name %s ,age %d" %(name,data[0],)

第12行,执行Hello函数并将返回值复制给result

第14行,输入result

这段代码用的很是巧妙有木有,亮瞎狗眼有木有,居然把字符串变成了函数并且还为该函数提供了全局变量。对于该功能,它就是python的web框架中模板语言部分至关重要的部分,因为在模板处理过程中,首先会读取html文件,然后分割html文件,再然后讲分割的文件组成一个字符串表示的函数,再再然后就是利用上述方法执行字符串表示的函数。

complex([real[, imag]])

本函数可以使用参数real + imag*j方式创建一个复数。也可以转换一个字符串的数字为复数;或者转换一个数字为复数。如果第一个参数是字符串,第二个参数不用填写,会解释这个字符串且返回复数;不过,第二个参数不能输入字符串方式,否则会出错。real和imag参数可以输入数字,如果imag参数没有输入,默认它就是零值,这个函数就相当于int()或float()的功能。如果real和imag参数都输入零,这个函数就返回0j。有了这个函数,就可以很方便地把一个列表转换为复数的形式。

注意:当想从一个字符串的复数形式转换复数时,需要注意的是在字符串中间不能出现空格,比如写成complex(‘1+2j’),而不是写成complex(1 +2j’), 否则会返回ValueError异常。

#complex()

print(complex(1))print(complex('2+1j'))print(complex(2, 5))

l= [1, 3, 4, 5]for i inl:print(complex(i, 5))

结果输出如下:

(1+0j)

(2+1j)

(2+5j)

(1+5j)

(3+5j)

(4+5j)

(5+5j)

dict() 函数用于创建一个字典。返回一个字典

语法:

class dict(**kwarg)

class dict(mapping, **kwarg)

class dict(iterable, **kwarg)

参数说明:

**kwargs -- 关键字

mapping -- 元素的容器。

iterable -- 可迭代对象

>>>dict() #创建空字典

{}>>> dict(a='a', b='b', t='t') #传入关键字

{'a': 'a', 'b': 'b', 't': 't'}>>> dict(zip(['one', 'two', 'three'], [1, 2, 3])) #映射函数方式来构造字典

{'three': 3, 'two': 2, 'one': 1}>>> dict([('one', 1), ('two', 2), ('three', 3)]) #可迭代对象方式来构造字典

{'three': 3, 'two': 2, 'one': 1}>>>

dir() 返回包含要查询对象的所有属性名称的列表

要查看python某个模块可以干什么,先要导入模块,之后用上面讲过的方式查看就可以。比如要查看sys模块都可以干什么,可以像下边这样操作:

>>> import sys #获得属性列表,在这里是sys模块的属性列表

>>>dir(sys)

['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_compact_freelists','_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable','exit', 'flags', 'float_info', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof','gettrace', 'getwindowsversion', 'hexversion', 'intern', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'setcheckinterval', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions', 'winver']

divmod(a,b) 方法返回的是a//b(除法取整)以及a对b的余数,返回结果类型为tuple,参数:a,b可以为数字(包括复数)

>>> divmod(9,2)

(4, 1)>>> divmod(11,3)

(3, 2)>>> divmod(1+2j,1+0.5j)

((1+0j), 1.5j)

enumerate()

enumerate()是python的内置函数

enumerate在字典上是枚举、列举的意思

对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值

enumerate多用于在for循环中得到计数

enumerate()返回的是一个enumerate对象,例如:

1194655-20170807170934659-1850450353.png

例:

如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:

list1 = ["这", "是", "一个", "测试"]for i inrange (len(list1)):print i ,list1[i]

上述方法有些累赘,利用enumerate()会更加直接和优美:

list1 = ["这", "是", "一个", "测试"]for index, item inenumerate(list1):printindex, item>>>0 这1是2一个3 测试

enumerate还可以接收第二个参数,用于指定索引起始值,如:

list1 = ["这", "是", "一个", "测试"]for index, item in enumerate(list1, 1):printindex, item>>>

1这2是3一个4 测试

eval() 将字符串str当成有效的表达式来求值并返回计算结果

语法: eval(source[, globals[, locals]]) -> value

参数:

source:一个Python表达式或函数compile()返回的代码对象

globals:可选。必须是dictionary

locals:可选。任意map对象

可以把list,tuple,dict和string相互转化。#################################################

字符串转换成列表>>>a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"

>>>type(a)

>>> b =eval(a)>>> printb

[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]>>>type(b)

#################################################

字符串转换成字典>>> a = "{1: 'a', 2: 'b'}"

>>>type(a)

>>> b =eval(a)>>> printb

{1: 'a', 2: 'b'}>>>type(b)

#################################################

字符串转换成元组>>> a = "([1,2], [3,4], [5,6], [7,8], (9,0))"

>>>type(a)

>>> b =eval(a)>>> printb

([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))>>>type(b)

exec() 是Python的built-in函数。其作用很好描述,就是执行以string类型存储的Python代码

>>> i = 2

>>> j = 3

>>> exec("ans = i + j")>>> print("Answer is:", ans)

Answeris: 5

>>>

在上个例子里面,ans变量并没有显式的定义,但仍然可以在print函数中调用。这是exec语句执行了"ans = i + j"中的代码,定义了ans变量。

filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数:defis_odd(x):return x % 2 == 1然后,利用filter()过滤掉偶数:>>>filter(is_odd, [1, 4, 6, 7, 9, 12, 17])

结果:

[1, 7, 9, 17]

float() 函数功能将一个数值或者字符转换成浮点型数值

>>> float(3)3.0

>>> float('3')3.0

format() 函数

语法

它通过{}和:来代替%。

“映射”示例

通过位置

In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.format('kzc',18) Out[2]: 'kzc,18' In [3]: '{1},{0},{1}'.format('kzc',18) Out[3]: '18,kzc,18'

字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。

通过关键字参数

In [5]: '{name},{age}'.format(age=18,name='kzc') Out[5]: 'kzc,18'

通过对象属性

class Person: def __init__(self,name,age): self.name,self.age = name,age def __str__(self): return 'This guy is {self.name},is {self.age} old'.format(self=self)

In [2]: str(Person('kzc',18)) Out[2]: 'This guy is kzc,is 18 old'

通过下标

In [7]: p=['kzc',18] In [8]: '{0[0]},{0[1]}'.format(p) Out[8]: 'kzc,18'

有了这些便捷的“映射”方式,我们就有了偷懒利器。基本的python知识告诉我们,list和tuple可以通过“打散”成普通参数给函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。非常灵活。

格式限定符

它有着丰富的的“格式限定符”(语法是{}中带:号),比如:

填充与对齐

填充常跟对齐一起使用

^、<、>分别是居中、左对齐、右对齐,后面带宽度

:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

比如

In [15]: '{:>8}'.format('189') Out[15]: ' 189' In [16]: '{:0>8}'.format('189') Out[16]: '00000189' In [17]: '{:a>8}'.format('189') Out[17]: 'aaaaa189'

精度与类型f

精度常跟类型f一起使用

In [44]: '{:.2f}'.format(321.33345) Out[44]: '321.33'

其中.2表示长度为2的精度,f表示float类型。

其他类型

主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

In [54]: '{:b}'.format(17) Out[54]: '10001' In [55]: '{:d}'.format(17) Out[55]: '17' In [56]: '{:o}'.format(17) Out[56]: '21' In [57]: '{:x}'.format(17) Out[57]: '11'

用,号还能用来做金额的千位分隔符。

In [47]: '{:,}'.format(1234567890)

Out[47]: '1,234,567,890'

frozenset() 定义不可变集合,集合不能加也不能减

s1=frozenset({1,2,3,4})print(type(s1))

globals()查看全局作用域

print(globals())

hash() 返回对象的哈希值,用整数表示。哈希值在字典查找时,可用于快速比较键的值,相等的数值,即使类型不一致,计算的哈希值是一样的

>>> 1.0 == 1True>>> hash(1.0)>>> hash(1)>>> hash(1.0000)

help() 查看帮助文档

#给函数加文档解释,用到单引号,双引号,三引号

deffunc():#'''

#test function

#:return:

#'''

pass

print(help(func))

id() 是python解释器实现的功能,只是反映了变量在内存的地址,但并不是真实的内存地址

x=1

print(id(x))

input() 提供了promat参数,首先将参数值输出到标准的输出,并且不换行。函数读取用户输入的值,将其转换成字符串。

>>> s = input('please input your name:')

please input your name:Ain>>>s'Ain'

int() 将一个数字或base类型的字符串转换成整数

int(3.14) #3

int(2e2) #200

int(100, 2) #出错,base 被赋值后函数只接收字符串

int('23', 16) #35

int('Pythontab', 8) #出错,Pythontab不是个8进制数

isinstance()来判断一个对象是否是一个已知的类型

如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。

如果classinfo不表示一个类(类型对象), 那么它要么是一个类的元组, 或者递归地包含这样的(由数据类型构成的)元组.其他的序列类型是不被允许的。

如果classinfo不是一种数据类型或者由数据类型构成的元组,将引发一个TypeError异常。

举例:>>> isinstance(1, int)

True>>> isinstance(1.0, float)

True

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值