python内置函数

Posted larken

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python内置函数相关的知识,希望对你有一定的参考价值。

 

#查看内置函数
dir(__builtins__)

# abs() 函数返回数字的绝对值。
print ("abs(-40) : ", abs(-40))
print ("abs(100.10) : ", abs(100.10))

# all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
print(all([a, b, c, d]))# 列表list,元素都不为空或0
print(all([a, b, ‘‘, d]))# 列表list,存在一个为空的元素
print(all([0, 1,2, 3]))# 列表list,存在一个为0的元素
print(all((a, b, c, d))) # 元组tuple,元素都不为空或0
print(all((a, b, ‘‘, d))) # 元组tuple,存在一个为空的元素
print(all((0, 1, 2, 3)))# 元组tuple,存在一个为0的元素
print(all([]))# 空列表 print()
print(all(()))# 空元组

# any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。
print(any([a, b, c, d])) # 列表list,元素都不为空或0
print(any([a, b, ‘‘, d]))# 列表list,存在一个为空的元素
print(any([0, ‘‘, False]))# 列表list,元素全为0,‘‘,false
print(any((a, b, c, d)))# 元组tuple,元素都不为空或0
print(any((a, b, ‘‘, d)))# 元组tuple,存在一个为空的元素
print(any((0, ‘‘, False)))# 元组tuple,元素全为0,‘‘,false
print(any([]))# 空列表
print(any(()))# 空元组

# ascii() 函数类似 repr() 函数, 返回一个表示对象的字符串
print(ascii("Hello World"))

# bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
print(bin(10))
print(bin(20))

# bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。
# bool 是 int 的子类。
print(bool())
print(bool(0))
print(bool(1))
print(issubclass(bool,int))

# bytearray() 方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。
# class bytearray([source[, encoding[, errors]]])
print(bytearray())# bytearray(b‘‘)
print(bytearray([1,2,3]))# bytearray(b‘x01x02x03‘)
print(bytearray("Hello World","utf-8")) # bytearray()

# bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。
# class bytes([source[, encoding[, errors]]])
a = bytes([1,2,3,4])
print(a)
print(type(a))
a = bytes(hello,ascii)
print(a)
print(type(a))

# callable() 函数用于检查一个对象是否是可调用的。
print(callable(0))
print(callable("Hello World"))
def add(q,b):
    return a + b
print(callable(add)) # 函数返回 True
class A:
    def method(self):
        return 0
print(callable(A)) # 类返回 True
a = A()
print(callable(a)) # 没有实现 __call__, 返回 False
class B:
    def __call__(self, *args, **kwargs):
        return 0
b=B()
print(callable(b)) # 实现 __call__, 返回 True

# chr() 用一个整数作参数,返回一个对应的字符。
print(chr(0x30))
print(chr(97))
print(chr(8364))

# classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。
class A(object):
    bar=1
    def func(self):
        print(foo)
    @classmethod
    def fun2(cls):
        print(fun2)
        print(cls.bar)
        cls().func()
A.fun2()

# compile() 函数将一个字符串编译为字节代码。
str="for i in range(0,10):print(i)"
c=compile(str,‘‘,exec) # 编译为字节代码对象
print(c)
print(exec(c))

# delattr 函数用于删除属性。delattr(x, ‘foobar‘) 相等于 del x.foobar。
class Coordinate:
    x = 10
    y = -5
    z = 0
point1 = Coordinate()
print(x = ,point1.x)
print(y = ,point1.y)
print(z = ,point1.z)
delattr(Coordinate, z)
print(--删除 z 属性后--)
print(x = ,point1.x)
print(y = ,point1.y)
# 触发错误
print(z = ,point1.z)

# dict() 函数用于创建一个字典。
print(dict()) # 创建空字典
print(dict(a=a,b=b,c=c)) # 传入关键字
print(dict(zip([one, two, three], [1, 2, 3]))) # 映射函数方式来构造字典
print(dict([(one, 1), (two, 2), (three, 3)])) # 可迭代对象方式来构造字典

# dir([object])
print(dir()) #  获得当前模块的属性列表
print(dir([])) # 查看列表的方法

# divmod(a, b)
print(divmod(7,2))
print(divmod(8,2))

# enumerate() 函数用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
seasons = [Spring, Summer, Fall, Winter]
print(list(enumerate(seasons)))
print(list(enumerate(seasons, start=1)))       # 小标从 1 开始
# for 循环使用 enumerate
seq = [one, two, three]
for i, element in enumerate(seq):
    print(i, seq[i])

# eval() 函数用来执行一个字符串表达式,并返回表达式的值。
x=7
print(eval(3*x))
print(eval(pow(2,2)))
print(2+2)
n=81
print(eval(n+4))

# exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。
# 实例 1
exec(print("Hello wolrd"))
exec("""for i in range(5):
        print("iter time:%d" % i)
    """)
# 实例 2
x = 10
expr = """
z = 30
sum = x + y + z
print(sum)
"""
def func():
    y = 20
    exec(expr)
    exec(expr, {x: 1, y: 2})
    exec(expr, {x: 1, y: 2}, {y: 3, z: 4})
func()

# filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
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)

# float() 函数用于将整数和字符串转换成浮点数。
print(float(1))
print(float(112))
print(float(-123.6))
print(float(123))

# Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
print("{} {}".format("hello", "world"))    # 不设置指定位置,按默认顺序
print("{0} {1}".format("hello", "world"))  # 设置指定位置
print("{1} {0} {1}".format("hello", "world")) # 设置指定位置

# frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
a = frozenset(range(10))     # 生成一个新的不可变集合
print(a)
b = frozenset(Hello World)
print(b)

# getattr() 函数用于返回一个对象属性值。
class A(object):
    bar=1
a=A()
print(getattr(a,bar)) # 获取属性 bar 值
print(getattr(a,bar2)) # 属性 bar2 不存在,触发异常
print(getattr(a,bar2,3)) # 属性 bar2 不存在,但设置了默认值

# globals() 函数会以字典类型返回当前位置的全部全局变量。
print(globals())
a="Hello World" # globals() 函数会以字典类型返回当前位置的全部全局变量。
print(globals())

# hasattr() 函数用于判断对象是否包含对应的属性。
class Coordinate:
    x = 10
    y = -5
    z = 0
point1 = Coordinate()
print(hasattr(point1, x))
print(hasattr(point1, y))
print(hasattr(point1, z))
print(hasattr(point1, no))  # 没有该属性

# hash() 用于获取取一个对象(字符串或者数值等)的哈希值。
print(hash(test)) # 字符串
print(hash(1)) # 数字
print(hash(str([1,2,3]))) # 集合
print(hash(test)) # 字典

# help() 函数用于查看函数或模块用途的详细说明。
help(sys)             # 查看 sys 模块的帮助
help(str)             # 查看 str 数据类型的帮助
help(([1,2,3]))         # 查看列表 list 帮助信息
help("a.append")        # 显示list的append方法的帮助

# hex() 函数用于将一个指定数字转换为 16 进制数。
print(hex(255))
print(hex(-42))
print(hex(12))
print(type(type(12)))

# id() 函数用于获取对象的内存地址。
print(id("Hello World"))
print(id("1"))
print(id(1))

# isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
print(isinstance(2,int))
print(isinstance(2,str))
print(isinstance(2,(str,int,list))) # 是元组中的一个返回 True
# type() 与 isinstance()区别:
class A:
    pass
class B(A):
    pass
print(isinstance(A(), A) )   # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

# issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。
class A:
    pass
class B(A):
    pass
print(issubclass(B,A))    # 返回 True

# iter() 函数用来生成迭代器。
lst=[1,2,3]
for i in iter(lst):
    print(i)
    
# Python len() 方法返回对象(字符、列表、元组等)长度或项目个数。
print(len("Hello World"))
print(len([1,2,3,4,5]))

# list() 方法用于将元组或字符串转换为列表。
# 注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。
aTuple = (123, Google, Runoob, Taobao)
list1 = list(aTuple)
print ("列表元素 : ", list1)
str="Hello World"
list2=list(str)
print ("列表元素 : ", list2)

# locals() 函数会以字典类型返回当前位置的全部局部变量。
def fun(arg): # 两个局部变量:arg、z
    z=1
    print(locals())
fun(4) # 返回一个名字/值对的字典

# map() 会根据提供的函数对指定序列做映射。
def square(x) :            # 计算平方数
    return x ** 2
print(map(square, [1,2,3,4,5]))   # 计算列表各个元素的平方
print(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))  # 使用 lambda 匿名函数
# 提供了两个列表,对相同位置的列表数据进行相加
print(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))

# max() 方法返回给定参数的最大值,参数可以为序列。
print ("max(80, 100, 1000) : ", max(80, 100, 1000))
print ("max(-20, 100, 400) : ", max(-20, 100, 400))
print ("max(-80, -20, -10) : ", max(-80, -20, -10))
print ("max(0, 100, -400) : ", max(0, 100, -400))

# memoryview() 函数返回给定参数的内存查看对象(Momory view)。
# 所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问。
v = memoryview(bytearray("abcefg", utf-8))
print(v[1]) # 98
print(v[-1])    #103
print(v[1:4])   #<memory at 0x006DF030>
print(v[1:4].tobytes()) #b‘bce‘

# min() 方法返回给定参数的最小值,参数可以为序列。
print ("min(80, 100, 1000) : ", min(80, 100, 1000))
print ("min(-20, 100, 400) : ", min(-20, 100, 400))
print ("min(-80, -20, -10) : ", min(-80, -20, -10))
print ("min(0, 100, -400) : ", min(0, 100, -400))

# next() 返回迭代器的下一个项目。
# 首先获得Iterator对象:
it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
    try:
        # 获得下一个值:
        x = next(it)
        print(x)
    except StopIteration:
        # 遇到StopIteration就退出循环
        break

# oct() 函数将一个整数转换成8进制字符串。
print(oct(10))
print(oct(20))
print(oct(15))

# open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。
# 使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
f = open(test.txt)
f.read()

# ord() 函数是 chr() 函数(对于 8 位的 ASCII 字符串)的配对函数,它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。
print(ord(a))
print(ord())

# pow()方法返回 xy(x的y次方)的值。
# 注意:pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。
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))

# print() 方法用于打印输出,最常见的一个函数。
print(1)
print("Hello World")
a = 1
b = Hello World
print(a,b)
print("aaa""bbb")
print("aaa","bbb")
print("www","hello world","com",sep=".")  # 设置间隔符

# property() 函数的作用是在新式类中返回属性值。
# 语法:class property([fget[, fset[, fdel[, doc]]]])

# Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。
print(list(range(0, 30, 5)))
print(list(range(0, 10, 2)))
print(list(range(0, -10, -1)))
print(list(range(1, 0)))

# repr() 函数将对象转化为供解释器读取的形式。
print(repr(HELLO WORLD))
print(repr({hello world: hello.com, google: google.com}))

# reversed 函数返回一个反转的迭代器。
# 字符串
print(list(reversed(Hello)))
# 元组
print(list(reversed((H, e, l, l, o))))
# range
print(list(reversed(range(5, 9))))
# 列表
print(list(reversed([1, 2, 4, 3, 5])))

# round() 方法返回浮点数x的四舍五入值。
print ("round(70.23456) : ", round(70.23456))
print ("round(56.659,1) : ", round(56.659,1))
print ("round(80.264, 2) : ", round(80.264, 2))
print ("round(100.000056, 3) : ", round(100.000056, 3))
print ("round(-100.000056, 3) : ", round(-100.000056, 3))

# set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
x = set(runoob)
y = set(google)
print(x, y)
(set([b, r, u, o, n]), set([e, o, g, l]))   # 重复的被删除
print(x & y)         # 交集
set([o])
print(x | y)         # 并集
set([b, e, g, l, o, n, r, u])
print(x - y)         # 差集
set([r, b, u, n])

# setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。
class A(object):
    bar = 1
a = A()
print(getattr(a, bar))          # 获取属性 bar 值
setattr(a, bar, 5)       # 设置属性 bar 值
print(a.bar)

# slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。
myslice = slice(5)    # 设置截取5个元素的切片
print(myslice)  # slice(None, 5, None)
arr = range(10) # range(0, 10)
print(arr)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(arr[myslice])   # range(0, 5)       # 截取 5 个元素

# sorted() 函数对所有可迭代的对象进行排序操作。
# sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
example_list = [5, 0, 6, 1, 2, 7, 3, 4]
print(sorted(example_list, reverse=True))

# python staticmethod 返回函数的静态方法,该方法不强制要求传递参数
class C(object):
    @staticmethod
    def f():
        print(Hello World);
C.f();          # 静态方法无需实例化
cobj = C()
cobj.f()        # 也可以实例化后调用

# str() 函数将对象转化为适于人阅读的形式。
s = RUNOOB
print(str(s))
dict = {runoob: runoob.com, google: google.com};
print(str(dict))

# sum() 方法对系列进行求和计算。
print(sum([0,1,2]))
print(sum((2, 3, 4), 1))        # 元组计算总和后再加 1
print(sum([0,1,2,3,4], 2))      # 列表计算总和后再加 2

# super() 函数是用于调用父类(超类)的一个方法。
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)

# tuple函数将列表转换为元组。
list1= [Google, Taobao, Runoob, Baidu]
print(tuple(list1))

# type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。
# type() 与 isinstance()区别:
class A:
    pass
class B(A):
    pass
isinstance(A(), A)    # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

# vars() 函数返回对象object的属性和属性值的字典对象。
print(vars())
class Runoob:
    a = 1
print(vars(Runoob))
print(vars(Runoob()))

# zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象
a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b)     # 返回一个对象
print(zipped)
print(list(zipped))  # list() 转换为列表
print(list(zip(a,c)))              # 元素个数与最短的列表一致
a1, a2 = zip(*zip(a,b))          # 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式
print(list(a1))
print(list(a2))

# __import__() 函数用于动态加载类和函数 。
# 如果一个模块经常变化就可以使用 __import__() 来动态载入。
# a.py 文件代码:
#!/usr/bin/env python
#encoding: utf-8
import os
print (在 a.py 文件中 %s % id(os))
# test.py 文件代码:
#!/usr/bin/env python
#encoding: utf-8   
import sys
__import__(a)        # 导入 a.py 模块
# 执行 test.py 文件,输出结果为:
# 在 a.py 文件中 4394716136

 

以上是关于python内置函数的主要内容,如果未能解决你的问题,请参考以下文章

python有多少内置函数

VBS 环境下如何调用EXCEL内置函数

查找内置 Python 函数的源代码?

python 内置函数

熟练掌握Python的内置函数,加快编程速度

python--内置函数, 匿名函数