1. <th id="d83bz"></th>
      2. 您所在位置:主頁 > 職業教育 > IT培訓 > python培訓 >

        Python這些內建函數你學廢了嗎?

        時間:2022-03-15發布于:教育培訓網發布人:百學培訓瀏覽:0

        Python這些內建函數你學廢了嗎?

          在學習python中總有一些問題困擾我們:

          Python中有這么多函數,記住所有這些的最好方法是什么?

          學習我們日常需要的函數(如enumerate 和range)的最佳方法是什么?

          你怎么知道用 Python 解決問題的所有方法?你會記住它們嗎?

          實際上PyPI 上有幾十個內置函數和類,數百個工具捆綁在 Python 的標準庫中,還有數千個第三方庫。沒有人能記住所有這些東西。

          我建議對這些知識按以下進行分類:

          有些內容我們應該記住,以便我熟悉它們

          有些內容我們應該知道,,以便我以后可以更有效地查找它們

          有些內容除非有一天我需要它們,否則我根本不應該花費太長時間去研究它們。

          考慮到這種方法,我們將瀏覽 Python 文檔中的內置函數頁面。

          要說完所有內容文章會比較長,我會分幾篇進行,這篇我們先說前10個最通用的內在函數,所以如果你時間緊迫或特別想看某個內置函數,你不必逐一查看,可以直接定位到你感興趣的內容上:

          我估計大多數 Python 開發人員只需要大約 30 個內置函數,但其中 30 個取決于實際使用Python 所做的事情。

          我們全局的方式來看看 Python 的所有 71 個內置函數。

          我將嘗試將這些內置插件分為五類:

          眾所周知的內置插件:大多數較新的Pythonistas 很快就迫不及待地接觸到這些內置插件

          被新的Pythonistas忽略:了解這些函數很有用,但是當對 Python 較新時,它們很容易被忽略

          稍后再學習:這些內置插件通常很有用,但會在需要時/如果需要它們時找到它們

          也許最終會學習這些:這些可以派上用場,但僅限于特定情況

          可能不需要這些:除非正在做一些相當專業的事情,否則不太可能需要這些

          第 1 類和第2 類中的內置函數是幾乎所有 Python 程序員最終都應該學習的基本內置函數。

          第 3 類和第 4 類中的內置程序是專門的內置程序,它們通常非常有用,但對它們的需求會因你對 Python 的使用而異。第 5 類是神秘的內置插件,當你需要它們時可能會非常方便,但許多 Python 程序員可能永遠不需要。

          Pythonistas的注意事項:我將所有這些內置函數稱為函數,但其中 27 個實際上不是函數。

          眾所周知的內置函數(可能大家已經知道):

          print

          len

          str

          int

          float

          list

          tuple

          dict

          set

          range

          新的 Python 程序員經常忽略的內置函數:

          sum

          enumerate

          zip

          bool

          reversed

          sorted

          min

          max

          any

          all

          還有 5 個通常被忽視的內置插件,我建議了解這些插件,因為它們使調試更容易:

          dir

          vars

          breakpoint

          type

          help

          除了上面的 25 個內置函數外,我們還將在稍后學習中簡要介紹其他 46 個內置函數,也許最終會學習它,也可能不需要這些部分。

          10個常見的內置函數

          如果你一直在編寫 Python 代碼,那么這些內置函數可能已經很熟悉了。

          print

          你可能已經知道它的打印功能,但可能不知道 print 還可以接受的各種關鍵字參數:

          >>> words = ["Welcome", "to", "Python"]

          >>> print(words)

          ['Welcome', 'to', 'Python']

          >>> print(*words, end="!\n")

          Welcome to Python!

          >>> print(*words, sep="\n")

          Welcome

          to

          Python

          你可以自己測試下。

          len

          在 Python 中,我們不寫 my_list.length() 或 my_string.length 之類的東西;相反,我們奇怪地(至少對于新的 Pythonistas)用 len(my_list) 和 len(my_string)。

          >>> words = ["Welcome", "to", "Python"]

          >>> len(words)

          3

          不管你是否喜歡這個類似運算符的 len 函數,你都必須使用了,所以你需要習慣它。

          str

          與許多其他編程語言不同,Python 沒有類型強制,因此你無法在 Python 中連接字符串和數字。

          >>> version = 3

          >>> "Python " + version

          Traceback (most recent call last):

          File "", line 1, in

          TypeError: can only concatenate str (not "int") to str

          Python 拒絕將 3 個整數強制轉換為字符串,因此我們需要自己手動完成,使用內置的 str 函數(從技術上講是類,但正如我所說,我將調用這些函數):

          >>> version = 3

          >>> "Python " + str(version)

          'Python 3'

          int

          你是否有用戶輸入并需要將其轉換為數字?你需要 int 函數!

          int 函數可以將字符串轉換為整數:

          >>> program_name = "Python 3"

          >>> version_number = program_name.split()[-1]

          >>> int(version_number)

          3

          還可以使用 int 將浮點數截斷為整數:

          >>> from math import sqrt

          >>> sqrt(28)

          5.291502622129181

          >>> int(sqrt(28))

          5

          請注意,如果需要在除法時截斷, // 運算符可能更合適(盡管這對負數的工作方式不同):int(3 / 2) == 3 // 2。

          float

          需要轉換為數字的字符串實際上不是整數, 就需要使用 float 而不是 int 進行此轉換。

          >>> program_name = "Python 3"

          >>> version_number = program_name.split()[-1]

          >>> float(version_number)

          3.0

          >>> pi_digits = '3.141592653589793238462643383279502884197169399375'

          >>> len(pi_digits)

          50

          >>> float(pi_digits)

          3.141592653589793

          還可以使用 float 將整數轉換為浮點數。

          在 Python 2 中,我們曾經使用 float 將整數轉換為浮點數來強制浮點除法而不是整數除法。“整數除法”在 Python 3 中不再存在(除非你專門使用 // 運算符),因此我們不再需要 float 來達到此目的。因此,如果在 Python 3 代碼中看到 float(x) / y,則可以將其更改為僅 x / y。

          list

          列表函數這樣做:

          >>> numbers = [2, 1, 3, 5, 8]

          >>> squares = (n**2 for n in numbers)

          >>> squares

           at 0x7fd52dbd5930>

          >>> list_of_squares = list(squares)

          >>> list_of_squares

          [4, 1, 9, 25, 64]

          如果你知道正在使用列表,則可以使用 copy 方法制作列表的新副本:

          >>> copy_of_squares = list_of_squares.copy()

          但是如果你不知道你正在使用的迭代器是什么,列表函數是循環遍歷一個迭代器并復制它的更通用的方法:

          >>> copy_of_squares = list(list_of_squares)

          也可以為此使用列表推導,但如果是新手我不建議這樣做。

          >>> my_list = list() # Don't do this

          >>> my_list = [] # Do this instead

          使用 [] 被認為更慣用,因為這些方括號 ([]) 實際上看起來像 Python 列表。

          tuple

          tuple 函數與 list 函數非常相似,不同之處在于它生成元組:

          >>> numbers = [2, 1, 3, 4, 7]

          >>> tuple(numbers)

          (2, 1, 3, 4, 7)

          如果你需要一個元組而不是一個列表,因為正在嘗試創建一個可散列的集合以在字典鍵中使用,例如,將希望通過列表訪問元組。

          dict

          dict 函數創建一個新字典。

          與 list 和 tuple 類似,dict 函數等效于循環遍歷鍵值對的可迭代對象并從中創建字典。

          給定一個包含兩項元組的列表:

          >>> color_counts = [('red', 2), ('green', 1), ('blue', 3), ('purple', 5)]

          >>> colors = {}

          >>> for color, n in color_counts:

          ... colors[color] = n

          ...

          >>> colors

          {'red': 2, 'green': 1, 'blue' 3, 'purple': 5}

          用dict函數替換:

          >>> colors = dict(color_counts)

          >>> colors

          {'red': 2, 'green': 1, 'blue' 3, 'purple': 5}

          dict 函數接受兩種類型的參數:

          另一個字典(映射是通用術語),在這種情況下,該字典將被復制

          一個鍵值元組列表(更準確地說,是一個包含兩項迭代的迭代),在這種情況下,一個新的字典將從這些元組中構造出來

          所以這也有效:

          >>> colors

          {'red': 2, 'green': 1, 'blue' 3, 'purple': 5}

          >>> new_dictionary = dict(colors)

          >>> new_dictionary

          {'red': 2, 'green': 1, 'blue' 3, 'purple': 5}

          dict 函數還可以接受關鍵字參數來制作帶有基于字符串的鍵的字典:

          >>> person = dict(name='Trey Hunner', profession='Python Trainer')

          >>> person

          {'name': 'Trey Hunner', 'profession': 'Python Trainer'}

          但我更喜歡使用字典文字來代替:

          >>> person = {'name': 'Trey Hunner', 'profession': 'Python Trainer'}

          >>> person

          {'name': 'Trey Hunner', 'profession': 'Python Trainer'}

          字典字面量語法更靈活,速度也更快,但最重要的是,我發現它更清楚地傳達了我們正在創建字典的事實。

          與列表和元組一樣,空字典也應該使用文字語法來制作:

          >>> my_list = dict() # Don't do this

          >>> my_list = {} # Do this instead

          使用 {} 的 CPU 效率稍高一些,但更重要的是它更符合習慣:通常會看到花括號 ({}) 用于制作字典,但 dict 的使用頻率要低得多。

          set

          set 函數創建一個新集合。它接受一個可哈希值(字符串、數字或其他不可變類型)的迭代并返回一個集合:

          >>> numbers = [1, 1, 2, 3, 5, 8]

          >>> set(numbers)

          {1, 2, 3, 5, 8}

          沒有辦法用 {} 集合字面量語法創建一個空集(普通的 {} 創建一個字典),所以 set 函數是創建一個空集的唯一方法:

          >>> numbers = set()

          >>> numbers

          set()

          實際上這是一個不對,因為我們有這個:

          >>> {*()} # This makes an empty set

          set()

          但是這種語法令人困惑(它依賴于 * 運算符的一個較少使用的功能),所以我不推薦它。

          range

          range 函數為我們提供了一個 range 對象,它表示一個數字范圍:

          >>> range(10_000)

          range(0, 10000)

          >>> range(-1_000_000_000, 1_000_000_000)

          range(-1000000000, 1000000000)

          生成的數字范圍包括起始數字,但不包括終止數字(范圍(0, 10)不包括 10)。

          當想循環數字時,范圍函數很有用。

          >>> for n in range(0, 50, 10):

          ... print(n)

          ...

          0

          10

          20

          30

          40

          一個常見的用例是執行 n 次操作(順便說一下,這是一個列表生成式):

          first_five = [get_things() for _ in range(5)]

          Python 2 的 range 函數返回一個列表,這意味著上面的表達式會產生非常大的列表。Python 3 的范圍與 Python 2 的 xrange 類似(盡管它們有點不同),因為當我們遍歷這些范圍對象時,數字是惰性計算的,想必Python3的方式更好。

          以上就是最常用的python內建函數使用了,接下來一篇講解釋另外10有用的內建函數。

          聲明:

          本站(www.rxbbx.com)部分圖文轉自網絡,刊登本文僅為傳播信息之用,絕不代表贊同其觀點或擔保其真實性。若有來源標注錯誤或侵犯了您的合法權益,請作者持權屬證明與本網聯系,我們將及時更正、刪除,謝謝

        熱點推薦

        推薦圖文

        熱點標簽

        强奸到高潮视频

          1. <th id="d83bz"></th>