实例 1
1 >>>exec 'print "Hello World"'
2 Hello World3 #单行语句字符串
4 >>> exec "print 'runoob.com'"
5 runoob.com6
7 #多行语句字符串
8 >>> exec """
...for i in range(5):9 ... print "iter time: %d" % i10 ..."""
11 iter time: 012 iter time: 1
13 iter time: 2
14 iter time: 3
15 iter time: 4
实例 2
1 x = 10
2 expr = """
3 z = 304 sum = x + y + z5 print(sum)6 """
7 deffunc():8 y = 20
9 exec(expr)10 exec(expr, {'x': 1, 'y': 2})11 exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4})12
13 func()14
15 输出结果:16
17 60
18 33
19 34
eval() exec()
eval()只能处理单行代码而exec()可以处理多行代码
eval()有返回值,exec没有返回值
1 res = eval('1+3+2')2 res2 = exec('1+3+2')3 print('res', res, res2)4
5 #执行结果
6 res 7 None
format()
执行format(),其实就是调用该对象所属类的__format__方法。类似print功能。
1 >>> format("324324")2 '324324'
3 >>> format([1,2,3])4 '[1, 2, 3]'
frozenset()
描述
frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
语法
frozenset() 函数语法:
class frozenset([iterable])
参数
iterable -- 可迭代的对象,比如列表、字典、元组等等。
返回值
返回新的 frozenset 对象,如果不提供任何参数,默认会生成空集合。
实例
以下实例展示了 frozenset() 的使用方法:
1 >>>a = frozenset(range(10)) #生成一个新的不可变集合
2 >>>a3 frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])4 >>> b = frozenset('runoob')5 >>>b6 frozenset(['b', 'r', 'u', 'o', 'n']) #创建不可变集合
7 >>>
globals()
列出当前环境下所有的全局变量。注意要与global关键字区分!在本节的开始,我们就已经展示了它的用法。
hash()
为不可变对象,例如字符串生成哈希值的函数!
1 >>> hash("i am jack")2 5602200374213231465
3 >>> hash(1)4 1
5 >>> hash(100000)6 100000
7 >>> hash([1,2,3,])8 Traceback (most recent call last):9 File "", line 1, in
10 hash([1,2,3,])11 TypeError: unhashable type: 'list'
12 >>> hash((1,2,3))13 2528502973977326415
help()
返回对象的帮助文档。谁用谁知道!
1 >>> a = [1,2,3]2 >>>help(a)3 Help on list object:4
5 classlist(object)6 | list() ->new empty list7 | list(iterable) -> new list initialized from iterable's items
8 ...
id()
返回对象的内存地址,常用来查看变量引用的变化,对象是否相同等。常用功能之一!
1 >>>id(0)2 1456845856
3 >>>id(True)4 1456365792
5 >>> a = "Python"
6 >>>id(a)7 37116704
input()
接收用户输入,返回一个输入的字符串。
1 a = input("Please input a number:")2 Please input a number: 100
3 >>>a4 '100'
5 >>>type(a)6
isinstance()
判断一个对象是否是某个类的实例。比type()方法适用面更广。
>>> isinstance("haha", str)
True>>> isinstance(1, str)
False
issubclass()
issubclass(a,b),判断a是否是b的子类。
>>> classFoo:pass
>>> classGoo(Foo):pass
>>>issubclass(Goo, Foo)
True
iter()
制造一个迭代器,使其具备next()能力。
1 >>> lis = [1, 2, 3]2 >>>next(lis)3
4 Traceback (most recent call last):5 File "", line 1, in
6 next(lis)7 TypeError: 'list' object is notan iterator8
9 >>> i =iter(lis)10 >>>i11
12 >>>next(i)13 1
len()
返回对象的长度。不能再常用的函数之一了。
locals()
locals() 函数会以字典类型返回当前位置的全部局部变量。简单点就是返回局部变量。
对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。
返回值:字典类型的局部变量
1 >>>def runoob(arg): #两个局部变量:arg、z
2 ... z = 1
3 ... print(locals())4 ...5 >>> runoob(4)6 {'z': 1, 'arg': 4} #返回一个名字/值对的字典
7 >>>
max()/min():
返回给定集合里的最大或者最小的元素。可以指定排序的方法!
max() 方法返回给定参数的最大值,参数可以为序列。
print "max(80, 100, 1000) :", max(80, 100, 1000)
max(80, 100, 1000) : 1000
min() 方法返回给定参数的最小值,参数可以为序列。
print "min(80, 100, 1000) :", min(80, 100, 1000)
min(80, 100, 1000) : 80
lst=['abcdhush8','abc9iujtwertwert','abcdjlas','abcdj897h']
a= min(lst,key=len)print(a)
memoryview(obj)
返回obj的内存视图对象。obj只能是bytes或bytesarray类型。memoryview对象的使用方法如下:
1 >>>v = memoryview(bytearray("abcefg", 'utf-8'))2 >>> print(v[1])3 98
4 >>> print(v[-1])5 103
6 >>> print(v[1:4])7
8 >>> print(v[1:4].tobytes())9 b'bce'
next()
通过调用迭代器的__next__()方法,获取下一个元素。
object()
该方法不接收任何参数,返回一个没有任何功能的对象。object是Python所有类的基类。
open()
打开文件的方法。在Python2里,还有一个file()方法,Python3中被废弃了。后面章节会详细介绍open()的用法。
pow()
幂函数。
1 >>> pow(3, 2)2 9
print()
语法
以下是 print() 方法的语法:
print(*objects,sep=' ',end='\n',file=sys.stdout)
参数
objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
sep -- 用来间隔多个对象,默认值是一个空格。
end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
file -- 要写入的文件对象。
1 >>> print("www","runoob","com",sep=".") #设置间隔符
2 www.runoob.com>
3 >>print(1)4 1
5 >>>print("Hello World")6 Hello World7
8 >>> a = 1
9 >>> b = 'runoob'
10 >>> print(a,b)11 1runoob12 >>> print("aaa""bbb")13 aaabbb14 >>> print("aaa","bbb")15 aaa bbb
range()
没错,这是Python内置的函数,前面已经介绍了。
repr()
repr() 函数将对象转化为供解释器读取的形式。并且返回一个对象的 string 格式。
>>>s = 'RUNOOB'
>>>repr(s)"'RUNOOB'"
>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};>>>repr(dict)"{'google': 'google.com', 'runoob': 'runoob.com'}"
reversed()
反转,逆序对象
1 >>> reversed #reversed本身是个类
2
3 >>> reversed([1,2,3,4,5]) #获得一个列表反转器
4
5 >>> a = reversed([1,2,3,4,5])6 >>>a7
8 >>> list(a) #使用list方法将它转换为一个列表
9 [5, 4, 3, 2, 1]
round()
描述
round() 方法返回浮点数x的四舍五入值。
语法
以下是 round() 方法的语法:
round(x [,n])
参数
x -- 数值表达式。
n -- 数值表达式。
返回值
返回浮点数x的四舍五入值。
1 a = round(2.33333, 2)2 print(a)3
4 b = round(3.555, 1)5 print(b)6
7 #执行结果
8 2.33
9 3.6
slice()
返回一个切片类型的对象。slice是一个类,一种Python的数据类型。Python将对列表等序列数据类型的切片功能单独拿出来设计了一个slice类,可在某些场合下使用。
slice 语法:
classslice(stop)classslice(start,stop[,step])
1 >>>myslice = slice(5) #设置截取5个元素的切片
2 >>>myslice3 slice(None, 5, None)4 >>> arr = range(10)5 >>>arr6 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]7 >>> arr[myslice] #截取 5 个元素
8 [0, 1, 2, 3, 4]
sum()
求和.
1 >>> sum(1,2,3) #需要传入一个可迭代的对象
2 Traceback (most recent call last):3 File "", line 1, in
4 sum(1,2,3)5 TypeError: sum expected at most 2 arguments, got 3
6 >>> sum([1,2,3]) #传入一个列表
7 6
8 >>> sum({1:1,2:2}) #突发奇想,作死传入一个字典
9 3
super()
调用父类。面向对象中类的机制相关。后面介绍。
type()
显示对象所属的数据类型。常用方法!前面已经展示过。
vars()
与dir()方法类似,不过dir()方法返回的是key,vars()方法返回key的同时还把value一起打印了
vars() 函数语法:
vars([object])
1 >>>print(vars())2 {'__builtins__': , '__name__': '__main__', '__doc__': None, '__package__': None}3 >>> classRunoob:4 ... a = 1
5 ...6 >>> print(vars(Runoob))7 {'a': 1, '__module__': '__main__', '__doc__': None}8 >>> runoob =Runoob()9 >>> print(vars(runoob))10 {}
map()
描述
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
语法
map() 函数语法:
map(function,iterable,...)
参数
function -- 函数,有两个参数
iterable -- 一个或多个序列
返回值
Python 2.x 返回列表。
Python 3.x 返回迭代器。
实例
以下实例展示了 map() 的使用方法:
1 >>>def square(x) : #计算平方数
2 ... return x ** 2
3 ...4 >>> map(square, [1,2,3,4,5]) #计算列表各个元素的平方
5 [1, 4, 9, 16, 25]6 >>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) #使用 lambda 匿名函数
7 [1, 4, 9, 16, 25]8
9 #提供了两个列表,对相同位置的列表数据进行相加
10 >>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])11 [3, 7, 11, 15, 19]
filter()
描述
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
语法
以下是 filter() 方法的语法:
filter(function,iterable)
参数
function -- 判断函数。
iterable -- 可迭代对象。
返回值
返回列表。
实例
以下展示了使用 filter 函数的实例:
过滤出列表中的所有奇数:
#!/usr/bin/python#-*- coding: UTF-8 -*-
defis_odd(n):return n % 2 == 1newlist= filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])print(newlist)#执行结果
[1, 3, 5, 7, 9]
过滤出1~100中平方根是整数的数:
#!/usr/bin/python#-*- coding: UTF-8 -*-
importmathdefis_sqr(x):return math.sqrt(x) % 1 ==0
newlist= filter(is_sqr, range(1, 101))print(newlist)#输出结果 :
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
zip()
描述
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。
如果需要了解 Pyhton3 的应用,可以参考 Python3 zip()。
语法
zip 语法:
zip([iterable,...])
参数说明:
iterabl -- 一个或多个迭代器;
返回值
返回元组列表。
实例
以下实例展示了 zip 的使用方法:
1 >>>a = [1,2,3]2 >>> b = [4,5,6]3 >>> c = [4,5,6,7,8]4 >>> zipped = zip(a,b) #打包为元组的列表
5 [(1, 4), (2, 5), (3, 6)]6 >>> zip(a,c) #元素个数与最短的列表一致
7 [(1, 4), (2, 5), (3, 6)]8 >>> zip(*zipped) #与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
9 [(1, 2, 3), (4, 5, 6)]
sorted()
排序方法。有key和reverse两个重要参数。
基础用法: 直接对序列进行排序
1 >>> sorted([36, 5, -12, 9, -21])2 [-21, -12, 5, 9, 36]
指定排序的关键字。关键字必须是一个可调用的对象。例如下面的例子,规则是谁的绝对值大,谁就排在后面。
1 >>> sorted([36, 5, -12, 9, -21], key=abs)2 [5, 9, -12, -21, 36]3
4 #或者可以使用lambda函数指定列表的那个排序
1 d ={}2 for i in range(10):3 d[i] = i - 50
4 print(d)5 d2 =d.items()6 d[2] = 5
7 d3 = sorted(d2, key=lambda x:x[1]) #key后面还可以添加recerse = True进行反转排序
8 print(d3)9
10 #执行结果
11 #{0: -50, 1: -49, 2: -48, 3: -47, 4: -46, 5: -45, 6: -44, 7: -43, 8: -42, 9: -41}
12 #[(0, -50), (1, -49), (3, -47), (4, -46), (5, -45), (6, -44), (7, -43), (8, -42), (9, -41), (2, 5)]
指定按反序排列。下面的例子,首先按忽略大小写的字母顺序排序,然后倒序排列。
1 >>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)2 ['Zoo', 'Credit', 'bob', 'about']
描述
hash() 用于获取取一个对象(字符串或者数值等)的哈希值。
语法
hash 语法:
hash(object)
参数说明:
object -- 对象;
返回值
返回对象的哈希值。
实例
以下实例展示了 hash 的使用方法:
1 >>>hash('test') #字符串
2 2314058222102390712
3 >>> hash(1) #数字
4 1
5 >>> hash(str([1,2,3])) #集合
6 1335416675971793195
7 >>> hash(str(sorted({'1':1}))) #字典
8 7666464346782421378
__import__(name)
这个方法为我们提供了一种通过字符串反射包、库或模块的手段。其中的name是你想要导入的库的名称的字符串。
t = __import__("time")
print(t.time())
例子中,利用字符串“time”,导入了实际的time库,并赋值给t变量。这个变量实际就相当于import time的结果。然后使用t.time()进行调用。
在某些场景下,这个方法非常有用。但是很多时候,它也存在安全问题,Python官方不建议经常使用它。
至此,除了个别遗留,近80个内置函数就基本介绍完毕。