Python3内置函数(41-50)

# 41.sorted()
# 对所有可迭代的对象进行排序操作。
# sort 与 sorted 区别:
# sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
# list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
# sorted(iterable, key=None, reverse=False)
# iterable -- 可迭代对象。
# key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
# reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
a = [12, 34, 2, 34, 6, 7, 7, 6, 4, 3432, 42, 523, 43]
print(sorted(a, reverse=True))
a.sort()
print(a)

# 42.bytearray()
# 返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256
# class bytearray([source[, encoding[, errors]]])
# 如果 source 为 整数,则返回一个长度为 source 的初始化数组;
# 如果 source 为 字符串,则按照指定的 encoding 将字符串转换为字节序列;
# 如果 source 为 可迭代类型,则元素必须为[0 ,255] 中的整数;
# 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
# 如果没有输入任何参数,默认就是初始化数组为0个元素。
lst1 = [3, 34, 56, 4, 2, 34, 6, 42, 4, 62, 45]
print(bytearray(12))
print(bytearray('abc', encoding='utf8'))
print(bytearray(lst1))

# 43.bytes()
# 返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。
# class bytes([source[, encoding[, errors]]])
# 如果 source 为整数,则返回一个长度为 source 的初始化数组;
# 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
# 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
# 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
# 如果没有输入任何参数,默认就是初始化数组为0个元素。
lst2 = [3, 34, 56, 4, 2, 34, 6, 42, 4, 62, 45]
print(bytearray(12))
print(bytearray('abc', encoding='utf8'))
print(bytearray(lst2))

# 44.ascii()
# 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回通过 repr() 函数使用 \x, \u 或 \U 编码的字符
# Python2 版本中 repr() 函数
print(ascii('abcdefghijklmn'))

# 45.float()
# 用于将整数和字符串转换成浮点数
print(float(23))
print(float(-232))
print(float(-657.87))
print(float('2334.2'))


# 46.callable()
# 用于检查一个对象是否是可调用的。如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。
def f1(a, b):
    f2 = 4
    return a + b


class A(object):
    pass


a = A()

print(callable(f1))
print(callable(a))

# 47.chr()
# 用一个整数作参数,返回一个对应的字符。
print(chr(70))
print(chr(199))
for i in range(9000):
    if i % 1000 == 0:
        print()
    print(chr(i), end=' ')


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

    def func1(self):
        print('foo')

    @classmethod
    def func2(cls):
        print('func2')
        print(cls.bar)
        cls().func1()  # 调用 foo 方法


A.func2()

# 49.complie()
# 将一个字符串编译为字节代码。
# compile(source, filename, mode[, flags[, dont_inherit]])
# source -- 字符串或者AST(Abstract Syntax Trees)对象。。
# filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
# mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
# flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
# flags和dont_inherit是用来控制编译源码时的标志
str = "for i in range(0,10): print(i)"
c = compile(str, '', 'exec')  # 编译为字节代码对象
exec(c)

# 50.complex()
# 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。
# class complex([real[, imag]])#
# real - - int, long, float或字符串;
# imag - - int, long, float;

print(complex(12, 34))
print(complex(1))
print(complex('12'))
print(complex('23+53j'))

要点:

  •  sorted() 对所有可迭代对象排序,可调整排序规则,注意区别:sord() 只能用于list。
  • bytearray() 返回一个新的字节数组,范围:(0-256)。元素可变
  • byte() 和bytearray() 的区别就是:元素不可变。
  • ascii() 返回一个表示对象的字符串
  • float() 将整数和字符串转换为浮点数 注意:字符串也可以
  • callable() 检查对象是否可以被调用。可以返回True,否则返回False
  • chr() 给定一个整数,返回该整数对应的字符
  • classmethod() 具体使用时,在类内,用classmethod,表示该函数调用时不需实例化,不需用self参数。
  • complie() 将字符串编译为字节代码,可执行
  • complex(a,b) 生成复数,注意:也可以是字符串:'6+7j' 

  •  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章