python 内置函数(4)

2018-09-26 18:14:06   最后更新: 2018-10-15 13:31:08   访问数量:138




filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

 

语法

以下是 filter() 方法的语法:

filter(function, iterable)

 

 

参数

  • function -- 判断函数。
  • iterable -- 可迭代对象。

 

返回值

返回一个迭代器对象

 

实例

以下展示了使用 filter 函数的实例:

 

过滤出列表中的所有奇数:

#!/usr/bin/python3 def is_odd(n): return n % 2 == 1 tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) newlist = list(tmplist) print(newlist)

 

输出结果 :

[1, 3, 5, 7, 9]

 

过滤出1~100中平方根是整数的数:

#!/usr/bin/python3 import math def is_sqr(x): return math.sqrt(x) % 1 == 0 tmplist = filter(is_sqr, range(1, 101)) newlist = list(tmplist) print(newlist)

 

输出结果 :

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 

issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。

 

语法

以下是 issubclass() 方法的语法:

issubclass(class, classinfo)

 

 

参数

  • class -- 类。
  • classinfo -- 类。

 

返回值

如果 class 是 classinfo 的子类返回 True,否则返回 False。

 

实例

以下展示了使用 issubclass 函数的实例:

#!/usr/bin/python # -*- coding: UTF-8 -*- class A: pass class B(A): pass print(issubclass(B,A)) # 返回 True

 

 

pow() 方法返回 xy(x的y次方) 的值。

 

语法

以下是 math 模块 pow() 方法的语法:

import math math.pow( x, y )

 

 

内置的 pow() 方法

pow(x, y[, z])

 

 

函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z

 

  • 注意:pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。

 

参数

  • x -- 数值表达式。
  • y -- 数值表达式。
  • z -- 数值表达式。

 

返回值

返回 xy(x的y次方) 的值。

 

实例

以下展示了使用 pow() 方法的实例:

#!/usr/bin/python3 import math # 导入 math 模块 print ("math.pow(100, 2) : ", math.pow(100, 2)) # 使用内置,查看输出结果区别 print ("pow(100, 2) : ", pow(100, 2)) print ("math.pow(100, -2) : ", math.pow(100, -2)) print ("math.pow(2, 4) : ", math.pow(2, 4)) print ("math.pow(3, 0) : ", math.pow(3, 0))

 

 

以上实例运行后输出结果为:

math.pow(100, 2) : 10000.0 pow(100, 2) : 10000 math.pow(100, -2) : 0.0001 math.pow(2, 4) : 16.0 math.pow(3, 0) : 1.0

 

 

super() 函数是用于调用父类(超类)的一个方法。

super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。

MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。

 

语法

以下是 super() 方法的语法:

super(type[, object-or-type])

 

 

参数

  • type -- 类。
  • object-or-type -- 类,一般是 self

 

Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :

 

Python3.x 实例:

class A:

pass

class B(A):

def add(self, x):

super().add(x)

 

Python2.x 实例:

class A(object):   # Python2.x 记得继承 object

pass

class B(A):

def add(self, x):

super(B, self).add(x)

 

返回值

无。

 

实例

以下展示了使用 super 函数的实例:

#!/usr/bin/python # -*- coding: UTF-8 -*- class FooParent(object): def __init__(self): self.parent = 'I\'m the parent.' print ('Parent') def bar(self,message): print ("%s from Parent" % message) class FooChild(FooParent): def __init__(self): # super(FooChild,self) 首先找到 FooChild 的父类(就是类 FooParent),然后把类B的对象 FooChild 转换为类 FooParent 的对象 super(FooChild,self).__init__() print ('Child') def bar(self,message): super(FooChild, self).bar(message) print ('Child bar fuction') print (self.parent) if __name__ == '__main__': fooChild = FooChild() fooChild.bar('HelloWorld')

 

 

执行结果:

Parent Child HelloWorld from Parent Child bar fuction I'm the parent.

 

 

bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。

 

语法

以下是 bytes 的语法:

class bytes([source[, encoding[, errors]]])

 

 

参数

  • 如果 source 为整数,则返回一个长度为 source 的初始化数组;
  • 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
  • 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
  • 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
  • 如果没有输入任何参数,默认就是初始化数组为0个元素。

 

返回值

返回一个新的 bytes 对象。

 

实例

以下展示了使用 bytes 的实例:

>>>a = bytes([1,2,3,4]) >>> a b'\x01\x02\x03\x04' >>> type(a) <class 'bytes'> >>> >>> a = bytes('hello','ascii') >>> >>> a b'hello' >>> type(a) <class 'bytes'> >>>

 

 

float() 函数用于将整数和字符串转换成浮点数。

 

语法

float()方法语法:

class float([x])

 

 

参数

  • x -- 整数或字符串

 

返回值

返回浮点数。

 

实例

以下实例展示了 float() 的使用方法:

>>>float(1) 1.0 >>> float(112) 112.0 >>> float(-123.6) -123.6 >>> float('123') # 字符串 123.0

 

 

iter() 函数用来生成迭代器。

 

语法

以下是 iter() 方法的语法:

iter(object[, sentinel])

 

 

参数

  • object -- 支持迭代的集合对象。
  • sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。

 

返回值

迭代器对象。

 

实例

>>>lst = [1, 2, 3] >>> for i in iter(lst): ... print(i) ... 1 2 3

 

 

print() 方法用于打印输出,最常见的一个函数。

print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一个关键字。

 

语法

以下是 print() 方法的语法:

print(*objects, sep=' ', end='\n', file=sys.stdout)

 

 

参数

  • objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep -- 用来间隔多个对象,默认值是一个空格。
  • end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file -- 要写入的文件对象。

 

返回值

无。

 

实例

以下展示了使用 print 函数的实例:

>>>print(1) 1 >>> print("Hello World") Hello World >>> a = 1 >>> b = 'runoob' >>> print(a,b) 1 runoob >>> print("aaa""bbb") aaabbb >>> print("aaa","bbb") aaa bbb >>> >>> print("www","runoob","com",sep=".") # 设置间隔符 www.runoob.com

 

 

tuple 函数将列表转换为元组

 

语法

以下是 tuple 的语法:

tuple( seq )

 

 

参数

  • seq -- 要转换为元组的序列。

返回值

返回元组。

 

实例

以下展示了使用 tuple 的实例:

>>>list1= ['Google', 'Taobao', 'Runoob', 'Baidu'] >>> tuple1=tuple(list1) >>> tuple1 ('Google', 'Taobao', 'Runoob', 'Baidu')

 

 

callable() 函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。

对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。

 

语法

callable()方法语法:

callable(object)

 

 

参数

  • object -- 对象

 

返回值

可调用返回 True,否则返回 False。

 

实例

以下实例展示了 callable() 的使用方法:

>>>callable(0) False >>> callable("runoob") False >>> def add(a, b): ... return a + b ... >>> callable(add) # 函数返回 True True >>> class A: # 类 ... def method(self): ... return 0 ... >>> callable(A) # 类返回 True True >>> a = A() >>> callable(a) # 没有实现 __call__, 返回 False False >>> class B: ... def __call__(self): ... return 0 ... >>> callable(B) True >>> b = B() >>> callable(b) # 实现 __call__, 返回 True True

 

 

 






读书笔记      技术帖      龙潭书斋      python      python3     


京ICP备15018585号