python学习之路-内置函数

来源:互联网 发布:大数据研究生考试科目 编辑:程序博客网 时间:2024/06/06 20:59

大纲:python内置函数
python有很多自带的内建函数,下面我会根据函数的名称进行一一介绍
补充:什么是可迭代对象?
一类是集合数据类型,如list / tuple / dict / set / str /等;
一类是generator,包括生成器和带yield的generator function。
这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。
可以使用isinstance()判断一个对象是否是Iterable对象
1.abs(x)-返回一个数的绝对值。
参数可以是整型,长整型或浮点型。如果参数是复数, 则返回复数的模。(复数:基本形式是a+bi,其中a,b是实数,a称为实部,bi称为虚部,i是虚数单位)

print(abs(-6))  #返回值6

2.all(iterable)
如果可编历对象中的所有元素都是真值,则返回True

list=[1,2,5]print(all(list))  #True

3.any(iterable)
如果可编历对象中的任何一个元素是真值,则返回True
4.basestring()
是str和unicode的超类,不能直接调用,只能和isinstance联合使用,isinstance(obj, basestring)

s="hello"l=[1,2,5]print(isinstance(s,str))#Trueprint(isinstance(l,list))#Trueprint(isinstance(l,str))#False

5.bin(x)
将整数x转换为二进制字符串

print(bin(15))#0b1111

6.bool([x])
将x转换为Boolean类型
x为0,None,空时为假,其余为真

print(bool(0))#Falseprint(bool())#Falseprint(bool(None))#Falseprint(bool("hello"))#True

7.bytearray()
class bytearray([source[, encoding[, errors]]])

print(bytearray())#bytearray(b'')---当3个参数都不传的时候,返回长度为0的字节数组print(len(bytearray()))#0#print(bytearray("中国"))#TypeError: string argument without an encoding#解释当source参数为字符串时,encoding参数也必须提供,函数将字符串使用str.encode方法转换成字节数组print(bytearray("中国","utf-8"))#bytearray(b'\xe4\xb8\xad\xe5\x9b\xbd')print(bytearray(5))#bytearray(b'\x00\x00\x00\x00\x00')#当source参数为整数(整数必须大于0)时,返回这个整数所指定长度的空字节数组print(bytearray([2,4,5]))#bytearray(b'\x02\x04\x05')#当source参数是一个可迭代对象,那么这个迭代对象的元素都必须符合0 <= x < 256,以便可以初始化到数组里

8.callable(object)
检查一个对象是否是可调用的
对于函数, 方法, lambda 函式, 类, 以及实现了 _ call _ 方法的类实例, 它都返回 True.
9.chr(i)
将assii码为i的整数转换成只包含一个字符的字符串(i必须在0-255之间)

print(chr(99))#c

10.classmethod(function)
类方法即可被类调用,也可以被实例调用,类方法类似于Java中的static方法,类方法中不需要有self参数。用法在函数外@classmethod。
对于classmethod的参数,需要隐式地传递类名,而staticmethod参数中则不需要传递类名,其实这就是二者最大的区别。二者都可以通过类名或者类实例对象来调用,因为强调的是classmethod和staticmethod,所以在写代码的时候最好使用类名。
11.cmp(x, y)
比较两个对象的大小,根据比较结果返回整数:
如果x < y, 返回一个负数,如果 x > y返回一个正数,如果x == y返回0。
12.compile()
compile(source, filename, mode[, flags[, dont_inherit]])
将一个字符串编译为字节代码,
source是要被编译的字符串
filename是定义该字符串变量的文件
mode[, flags[, dont_inherit]]参数指定了代码被编译的类型–
‘single’指单个语句,
‘exec’指多个语句,
‘eval’指一个表达式.

s="helloworld"c = compile(s,'','exec')

13.complex()
创建一个复数

print(complex(1))#1+0jprint(complex('2+1j'))#2+1jprint(complex(2, 5))#2+5j

14.delattr()
函数删除对象的属性。在属性方法章节有具体应用
15.dict()
创建一个字典对象

dict({"name":"niko","age":"15"})print(dict({"name":"niko","age":"15"}))

16.dir()
以列表的形式返回该参数对象的所有合法属性

x=dict({"name":"niko","age":"15"})print(dir(x))#['__class__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__',...

17.divmod()
divmod(a, b) a,b是数字(非复数),返回商和余数

print(divmod(10,4))#(2, 2)

18.enumerate(sequence[, start=0])
参数sequence必须是一个序列类型,iterator,或者其他支持编历的对象。在day01的列表里面有具体的用法
19.eval(expression [, globals [, locals]])
计算表达式expression的值
注:exec和eval的区别
通过exec可以执行动态Python代码,类似Javascript的eval功能;而Python中的eval函数可以计算Python表达式,并返回结果(exec不返回结果,print(eval(“…”))打印None);

x=2print(eval("x+1"))#3exec("print(\"hello world\")")#hello world#exec参数必须是str类型,“”需要转义

20.execfile()(python3.0中没有找到此函数)
将一个文件路径作为参数,并执行文件中的内容

#d:\code\ex\有一个文件test.py,test文件中print("test")execfile(r'd:\code\ex\test.py')#结果会打印test

21.file()(python3中取消了此函数)
file的用法和open函数一致,都是用来打开文件,进行操作的
22.filter()
filter接收一个函数或者一个序列,把传入的函数依次作为每一个元素,然后根据返回值是True还是False决定保留还是丢弃该元素
python3没有返回符合要求的元素???

def add(n):    return n%2==1ret=filter(add,[1, 2, 4, 5, 6, 9, 10, 15])print(ret)#<filter object at 0x0000000002A23320>

23.float([x])
将一个字符串或数字转换为浮点数

print(float())#0.0-----如果没有提供参数,函数返回0.0print(float("+nan"))#nan---符串参数也可以是”+nan”,”-nan” 或”+inf”,”-info”print(float(2))#2.0---可以是整数,长整数,浮点数print(float(2.125))#2.125

24.format()
格式化输出字符串
字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加;
使用”:”, 指定代表元素需要的操作, 如”:.3”小数点三位, “:8”占8个字符空间等;
还可以添加特定的字母, 如:
‘b’ - 二进制. 将数字以2为基数进行输出.
‘c’ - 字符. 在打印之前将整数转换成对应的Unicode字符串.
‘d’ - 十进制整数. 将数字以10为基数进行输出.
‘o’ - 八进制. 将数字以8为基数进行输出.
‘x’ - 十六进制. 将数字以16为基数进行输出, 9以上的位数用小写字母.
‘e’ - 幂符号. 用科学计数法打印数字, 用’e’表示幂.
‘g’ - 一般格式. 将数值以fixed-point格式输出. 当数值特别大的时候, 用幂形式打印.
‘n’ - 数字. 当值为整数时和’d’相同, 值为浮点数时和’g’相同. 不同的是它会根据区域设置插入数字分隔符.
‘%’ - 百分数. 将数值乘以100然后以fixed-point(‘f’)格式打印, 值后面会有一个百分号.
没有想到比较好的例子,后期补充
25.frozenset()
冻结的集合,它是不可变的。一旦创建便不能更改,没有add,remove方法。
应用:可以作为字典的key,也可以作为其他集合的元素

print(frozenset({1}))#frozenset({1})print(frozenset(1))#TypeError: 'int' object is not iterable--不支持创建一个整数集合b=set({2})print(b)a1={b:3,"jack":"4"}print(a1)#TypeError: unhashable type: 'set'b1=frozenset("he")a2={b1:3,"jack":"4"}print(a2)#   {frozenset({'h', 'e'}): 3, 'jack': '4'}b2=frozenset("h")a3={b2:3,"jack":"4"}print(a3)#{'jack': '4', frozenset({'h'}): 3}

26.getattr()
函数获取对象的属性。在属性方法章节有具体应用
27.globals()
返回当前模块的全局变量,以字典形式

x=0num=0def add():    global num    num+=1    print("in add")print(globals())#{'__builtins__': <module 'builtins' (built-in)>, '__file__': 'G:/姣涜彶/workspace/鍐呭缓鍑芥暟.py', # '__package__': None, 'add': <function add at 0x0000000002B07948>, 'num': 0, 'x': 0, '__name__': '__main__',#  '__doc__': None}

28.hasattr()
判断对象是否存在指定名字的属性。在属性方法章节有具体应用
29.hash()
返回对象的哈希值
应用于字典快速查询键值

s={"name":"jack","age":25}print(hash("name"))#15034981

30.help()
调用系统帮助

s={"name":"jack","age":25}help(s)help(list)

31.hex()
获取一个整数的十六进制字符串

print(hex(15))#0xf

32.id()
返回对象的标识符(整数或者长整数)

print(id({"name":"jack","age":25}))#45111656

33.input()
用户输入

name=input("input your name:")print(name)

34.int()
将一个字符串或数值转换为一个普通整数

print(int(15.34))#15

35.isinstance()
判断对象类型,相符合true,否则false

a=3.142print(isinstance(a,int))#Falseprint(isinstance(a,float))#True

36.issubclass(class, classinfo)
如果参数class是参数classinfo的子类,返回True
37.iter()
返回一个iterator(迭代器)对象

li=[1,2,7,8,9]it_li=iter(li)print(next(it_li))#1每调用一次next()方法,挨个取出li里面的值

38.len()
返回对象(字符串,列表,元祖等数据类型)长度
39.list([iterable])
创建列表

s="abc"print(list(s))#['a', 'b', 'c']

40.locals()
以字典的形式返回当前的局部变量
41.long() python3中没有此方法
将字符串或数字转换为长整数
42.map()
用法类似于filter
第一个参数函数名,第二个参数是可迭代对象

def add(n):    return n+1ret=map(add,[1, 2, 4, 5, 6, 9, 10, 15])print(ret)

43.max()
可迭代参数,返回最大值

li=[1,2,7,8,9]print(max(li))

44.memoryview(obj)
返回对象obj的内存查看对象
python3已不存在
45.min()
可迭代参数,返回最小值
46.next()
通过调用iterator的next()方法获取下一个元素

li=[1,2,7,8,9]it_li=iter(li)print(next(it_li))

47.object()
Object是所有类的基类
它提供的方法将在所有的类型实例中共享
48.oct(x)
将一个整数转换为八进制字符串
49.open()
打开文件
open(filename[, mode[, bufsize]])
参数filename表示将要被打开的文件的路径字符串;
参数mode表示打开的模式,最常用的模式有:‘r’表示读文本文件,’w’表示写文本文件,’a’表示在文件中追加文本内容。Mode的默认值是’r’。 在操作文本文件时,’/n’可能会被转换为特定平台相关的表示。
当操作的是二进制文件时,只要在模式值上添加’b’。

f=open("凉凉","r",encoding="utf-8")print(f.read())

50.ord()
将字符(长度为1的字符串)转换为整数
和chr相反

print(ord("c"))#99

51.pow(x, y[, z])
返回x的y次方;如果提供了参数z,则返回x的y次方,并对z进行取模(取余)操作

print(pow(4,2,3))#16print(pow(4,2,3))#1

52.print()
打印内容显示在屏幕上
53.property()
应用详见属性方法@property
54.range()
多应用于循环操作
range(1,6)#[1,2,3,4,5]
range(3)#[0,1,2]
range(1,6)#[1,3,5]
55.raw_input()
python3中已经取消
56.reduce()
python3中已经取消
57.reload()
重新加载先前导入(imported)的模块。参数是模块对象,所以该模块必须在之前成功的导入。
58.repr(object)
返回一个对象的字符串。
59.reversed(seq)
返回一个逆序的iterator对象

for i in reversed([1,5,6]):    print(i)

60.round(x[, n])
对参数x的第n+1位小数进行四舍五入,返回一个小数位数为n的浮点数。参数n的默认值是0。

print(round(2.134,2))#2.13

61.set()
可以通过set函数把列表变成集合

li=[1,2,3]print(set(li))#{1, 2, 3}

62.setattr()
设置属性值。详见属性方法章节day05
63.slice()
切片的方式存取,切片详见day01
64.sorted()
排序

print(sorted([5,2,3,1,4]))#[1, 2, 3, 4, 5]

65.staticmethod()
返回一个静态方法,详见静态方法day05
66.str()
把一个对象变成字符串形式
67.sum(iterable[, start])
先计算可编历对象中的元素之和,再与start相加。参数start的默认值为0

print(sum([5,2,3,1,4]))#15

68.super()
返回一个可以通过委托方法调用父类型或兄弟类型的代理对象。在重写方法中使用它来访问父类中的虚方法。具体用法day05-继承
69.tuple()
返回一个元组

print(tuple("abc"))#('a', 'b', 'c')

70.type()
返回对象的类型
71.unichr()
返回整数的unicode字符串
python3中不存在
72.unicode()
python3中不存在
unicode(“中国”, “utf-8”)
73.vars()
如果没有提供参数,返回一个表示当前局部变量表的字典。如果输入一个模块对象、类对象或类实例对象(或其他任何含有dict属性的东西),返回一个表示该对象变量表的字典。
74.xrange()
Xrange相比于range的优点在于:使用xrange占用的内存更少。
python3中无
75.zip()
函数返回一个元组列表
python3打印不出结果???

x=[1,2,3,4]y=[7,8]z=zip(x,y)print(z)#[(1,7),(2,8)]

76.import()
导入模块时使用,详见day06-动态导入模块章节