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' 

  •  

 

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