python3 内置函数(五)

bytes函数

    描述:bytes函数返回一个新的bytes对象,该对象是一个区间[0,256]内的整数不可变序列

    语法:class bytes([source[, encoding[, errors]]])

    参数:

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

    返回值:返回一个新的bytes对象

    python3中实例:

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

b = bytes('hello','ascii')
print(b)        #b'hello'
print(type(b))      #<class 'bytes'>

float()函数

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

    语法:class float([x])

    参数:x--整数或浮点数

    返回值:返回浮点数

    python3中实例:

a = float(1)           #1.0
b = float(120.0)       # 120.0
c = float(-120.1)      #-120.0
d = float('123')       # '123'字符串 123.0

print(a,b,c,d)

iter()函数

    描述:iter()函数用来生成迭代器

    语法:iter(object[, sentinel])

    参数:object--支持迭代的集合对象

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

    返回值:迭代器对象

    python3中实例:

lst = [1,23,4]
for i in iter(lst):
    print(i)

# 运行结果:    
# 1
# 23
# 4

print()函数

    描述:print()方法用来打印输出,最常见的一个函数

    语法:print(*object, sep=' ' , end='\n' , file=sys.stdout)

    参数:

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

    返回值:无

    python3中实例:

print("hello world")
# hello world

print("aaa""bbb")       
print("aaa","bbb")
# aaabbb
# aaa bbb

print("www","runoob","com",sep=".")  # 设置间隔符
# www.runoob.com

tuple函数

    描述:tuple函数将列表转换为元组

    语法:tuple( seq )

    参数:seq--要转换为元组的序列

    返回值:返回元组

    python3中实例:

list1 = ['Google','Taobao','Baidu']
tuple1 = tuple(list1)
print(tuple1)   
# ('Google', 'Taobao', 'Baidu')

callable()函数

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

    语法:callable(object)

    参数:object--对象

    返回值:可调用返回True,否则返回False

    python3中实例:

P = callable(0)     #False
L = callable('taobao')     #False
print(P,L)

def add(a,b):
    return a + b
M = callable(add)
print(M)        #True

class A:
    def method(self):
        return 0
N = callable(A)
a = A()
K = callable(a)       # 没有实现 __call__, 返回 False
print(N,K)      #True False

class B:
    def __call__(self, *args, **kwargs):
        return 0
O = callable(B)
b=B()
J = callable(b)      # 实现 __call__, 返回 True

print(O,J)        #True True

format 格式化函数

    Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

    基本语法是通过 {}: 来代替以前的 %

    format 函数可以接受不限个参数,位置可以不按顺序。

python3中实例:

a = "{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
b = "{0} {1}".format("hello", "world")  # 设置指定位置
c = "{1} {0} {1}".format("hello", "world")  # 设置指定位置
print(a,b,c)
# 运行结果:
# hello world
# hello world
# world hello world

property()函数

    描述:property()函数的作用是在新式类中返回属性值

    语法:class property(fget[, fset[, fdel[, doc]]])

    参数:

  • fget -- 获取属性值的函数
  • fset -- 设置属性值的函数
  • fdel -- 删除属性值函数
  • doc -- 属性描述信息

    返回值:返回新式类属性

    python3实例:

class C(object):
    def __init__(self):
        self._x = None

    def getx(self):
        return self._x

    def setx(self, value):
        self._x = value

    def delx(self):
        del self._x

    x = property(getx, setx, delx, "I'm the 'x' property.")
# 如果 c  C 的实例化, c.x 将触发 getter,c.x = value 将触发 setter  del c.x 触发 deleter# 如果给定 doc 参数,其将成为这个属性值的 docstring,否则 property 函数就会复制 fget 函数的 docstring(如果有的话)


#  property 函数用作装饰器可以很方便的创建只读属性:
class Parrot(object):
    def __init__(self):
        self._voltage = 100000

    @property
    def voltage(self):
        """Get the current voltage."""
        return self._voltage
# 上面的代码将 voltage() 方法转化成同名只读属性的 getter 方法。

# property  getter,setter  deleter 方法同样可以用作装饰器:
class C(object):
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x

chr()函数

    描述:chr()用一个范围在(0~255)的整数作参数,返回一个对应的字符

    语法:chr(I)

    参数:i--可以是10进制也可以是16进制的数字

    返回值:返回对应整数的ASCII字符

    python3中实例

print("chr(0x30), chr(0x31), chr(0x61)")    # 十六进制
# 返回值chr(0x30), chr(0x31), chr(0x61)

print("chr(48), chr(49), chr(97)")          # 十进制
# 返回值chr(0x30), chr(0x31), chr(0x61)

frozenset()函数

    描述:frozenset()返回一个冻结的集合,冻结集合不能添加或删除任何元素

    语法:class frozenset([iterable])

    参数:iterable--可迭代对象

    返回值:返回新的frozenset对象,如果不添加参数,默认生成空集合

    python3中实例:

a = frozenset(range(10))    # 生成一个新的不可变集合
print(a)
# 返回值frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})

frozenset([0,1,2,3,4,5,6,7,8,9])
b = frozenset('taobao')
print(b)
# 返回值frozenset({'b', 'o', 't', 'a'})

vars()函数

    描述:vars()函数返回对象object的属性和属性值的字典对象

    语法:vars([object])

    参数:object--对象

    返回值:返回对象object的属性和属性值的字典对象,如果没有参数,就打印当前调用位置的属性和属性值 类似 locals()。

    python3中实例:

print(vars())
# 返回值{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': 
# <_frozen_importlib_external.SourceFileLoader object at 0x00000211465CC0F0>, '__spec__': None,
#  '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 
# '__file__': 'D:/py mysql/venv/pymyql 1/neizhiduixiang.py', '__cached__': None}

class Taobao:
    a = 1
print(vars(Taobao))
# 返回值{'__module__': '__main__', 'a': 1, '__dict__': <attribute '__dict__' of 'Taobao' objects>,
#  '__weakref__': <attribute '__weakref__' of 'Taobao' objects>, '__doc__': None}

taobao = Taobao()
print(vars(taobao))
# 返回值{}

classmethod修饰符

    描述:classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。

    语法:classmethod

    参数:无

    返回值:返回函数的类方法

    python3中实例:

class A(object):
    bar = 1
    def func1(self):
        print('foo')
    @classmethod
    def func2(cls):
        print('func2')
        print(cls.bar)
        cls().func1()       # 调用 foo 方法

A.func2()           # 不需要实例化
# 运行结果:
# func2
# 1
# foo

getattr()函数

    描述:getattr()函数用于返回一个对象属性值

    语法:getattr(object, name[, default])

    参数:object--对象

                name--字符串,对象属性

                default--默认返回值,如果不提供该参数,没有对应属性时,将触发AttibuterError

    返回值:返回对象属性值

    python3中实例:

class A(object):
    bar = 1
a = A()
c = getattr(a,'bar')        # 获取属性 bar d = getattr(a,'bar2')        # 属性 bar2 不存在,触发异常
e = getattr(a,'bar2',3)     # 属性 bar2 不存在,但设置了默认值
print(c,d,e)
# 运行结果:
# 1
# AttributeError: 'A' object has no attribute 'bar2'
# 3

local()函数

    描述:local()函数会以字典类型返回当前位置的全部局部变量

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

    语法:local()

    参数:无

    返回值:返回字典类型的局部变量

    pytho3中实例:

def taobao(arg):     # 两个局部变量:argz
    a = 1
    print(locals())

taobao(4)    # 返回一个名字/值对的字典
# 运行结果 {'a': 1, 'arg': 4}

repr()函数

    描述:repr()函数将对象转化为供解释器读取的形式

    语法:repr(object)

    参数:object--对象

    返回值:返回一个对象的string格式

    python3中实例:

s = 'taobao'
a = repr(s)
print(a)
# 执行结果'taobao'
dict = {'tao':'taobao.com','baidu':'baidu.com'}
b = repr(dict)
print(b)
# 执行结果{'tao': 'taobao.com', 'baidu': 'baidu.com'}

zip()函数

    描述:zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约内存

                我们可以使用list()转换来输出列表

                如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用*号操作符,可以将元组压缩为列表

    语法:zip([iterable, ....])

    参数:iterable--一个或多个迭代器

    返回值:返回一个对象

    python3中实例:

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b) #返回一个对象
print(zipped)
# 执行结果<zip object at 0x000001AB6AA79688>
A = list(zipped)  # list() 转换为列表
B = list(zip(a,c)) # 元素个数与最短的列表一致
print(A,B)
# 执行结果:
# [(1, 4), (2, 5), (3, 6)]
# [(1, 4), (2, 5), (3, 6)]

a1, a2 = zip(*zip(a,b))  #  zip 相反,*zip 可理解为解压,返回二维矩阵式
C = list(a1)
D = list(a2)
print(C,D)
# 执行结果:
# [1, 2, 3]
# [4, 5, 6]

                   

    





    


猜你喜欢

转载自blog.csdn.net/qq_39097722/article/details/80949911