# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2022, Python Software Foundation
# This file is distributed under the same license as the Python package.
#
# Translators:
# woodrow-shen , 2016
# machineCYC, 2018
# Steven Hsu , 2021
msgid ""
msgstr ""
"Project-Id-Version: Python 3.10\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-23 00:17+0000\n"
"PO-Revision-Date: 2021-06-19 14:24+0800\n"
"Last-Translator: Adrian Liaw \n"
"Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-"
"tw)\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 2.4.3\n"
#: ../../tutorial/stdlib2.rst:5
msgid "Brief Tour of the Standard Library --- Part II"
msgstr "Python 標準函式庫概覽——第二部份"
#: ../../tutorial/stdlib2.rst:7
msgid ""
"This second tour covers more advanced modules that support professional "
"programming needs. These modules rarely occur in small scripts."
msgstr ""
"第二部分涵蓋更多支援專業程式設計所需要的進階模組。這些模組很少出現在小腳本"
"中。"
#: ../../tutorial/stdlib2.rst:14
msgid "Output Formatting"
msgstr "輸出格式化 (Output Formatting)"
#: ../../tutorial/stdlib2.rst:16
msgid ""
"The :mod:`reprlib` module provides a version of :func:`repr` customized for "
"abbreviated displays of large or deeply nested containers::"
msgstr ""
":mod:`reprlib` 模組提供了一個 :func:`repr` 的版本,專門用來以簡短的形式顯示大"
"型或深層的巢狀容器:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:23
msgid ""
"The :mod:`pprint` module offers more sophisticated control over printing "
"both built-in and user defined objects in a way that is readable by the "
"interpreter. When the result is longer than one line, the \"pretty printer\" "
"adds line breaks and indentation to more clearly reveal data structure::"
msgstr ""
":mod:`pprint` 模組能對內建和使用者自定的物件提供更複雜的列印控制,並且是以直"
"譯器可讀的方式。當結果超過一行時,「漂亮的印表機」會加入換行和縮排,以更清楚"
"地顯示資料結構:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:39
msgid ""
"The :mod:`textwrap` module formats paragraphs of text to fit a given screen "
"width::"
msgstr ""
":mod:`textwrap` 模組能夠格式化文本的段落,以符合指定的螢幕寬度:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:53
msgid ""
"The :mod:`locale` module accesses a database of culture specific data "
"formats. The grouping attribute of locale's format function provides a "
"direct way of formatting numbers with group separators::"
msgstr ""
":mod:`locale` 模組能存取一個含有特定文化相關資料格式的資料庫。locale 模組的 "
"format 函式有一個 grouping 屬性,可直接以群分隔符 (group separator) 將數字格"
"式化:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:72
msgid "Templating"
msgstr "模板化 (Templating)"
#: ../../tutorial/stdlib2.rst:74
msgid ""
"The :mod:`string` module includes a versatile :class:`~string.Template` "
"class with a simplified syntax suitable for editing by end-users. This "
"allows users to customize their applications without having to alter the "
"application."
msgstr ""
":mod:`string` 模組包含一個多功能的 :class:`~string.Template` class,提供的簡"
"化語法適合使用者進行編輯時使用。它容許使用者客製化自己的應用程式,但不必對原"
"應用程式做出變更。"
#: ../../tutorial/stdlib2.rst:78
msgid ""
"The format uses placeholder names formed by ``$`` with valid Python "
"identifiers (alphanumeric characters and underscores). Surrounding the "
"placeholder with braces allows it to be followed by more alphanumeric "
"letters with no intervening spaces. Writing ``$$`` creates a single escaped "
"``$``::"
msgstr ""
"格式化方式是使用佔位符號名稱 (placeholder name),它是由 ``$`` 加上合法的 "
"Python 識別符(字母、數字和下底線)構成。使用大括號包覆佔位符號以允許在後面接"
"上更多的字母和數字而無需插入空格。使用 ``$$`` 將會跳脫為單一字元 `$`:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:88
msgid ""
"The :meth:`~string.Template.substitute` method raises a :exc:`KeyError` when "
"a placeholder is not supplied in a dictionary or a keyword argument. For "
"mail-merge style applications, user supplied data may be incomplete and the :"
"meth:`~string.Template.safe_substitute` method may be more appropriate --- "
"it will leave placeholders unchanged if data is missing::"
msgstr ""
"如果在 dictionary 或關鍵字引數中未提供某個佔位符號的值,那麼 :meth:`~string."
"Template.substitute` method 將引發 :exc:`KeyError`\\ 。對於郵件合併 (mail-"
"merge) 類型的應用程式,使用者提供的資料有可能是不完整的,此時使用 :meth:"
"`~string.Template.safe_substitute` method 會更適當——如果資料有缺少,它會保持"
"佔位符號不變:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:103
msgid ""
"Template subclasses can specify a custom delimiter. For example, a batch "
"renaming utility for a photo browser may elect to use percent signs for "
"placeholders such as the current date, image sequence number, or file "
"format::"
msgstr ""
"Template 的 subclass(子類別)可以指定自訂的分隔符號 (delimiter)。例如,一個"
"相片瀏覽器的批次重新命名功能,可以選擇用百分號作為現在日期、照片序號或檔案格"
"式的佔位符號:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:126
msgid ""
"Another application for templating is separating program logic from the "
"details of multiple output formats. This makes it possible to substitute "
"custom templates for XML files, plain text reports, and HTML web reports."
msgstr ""
"模板化的另一個應用,是將程式邏輯與多樣的輸出格式細節分離開來。這樣就可以為 "
"XML 檔案、純文字報表和 HTML 網路報表替換自訂的模板。"
#: ../../tutorial/stdlib2.rst:134
msgid "Working with Binary Data Record Layouts"
msgstr "二進制資料記錄編排 (Binary Data Record Layouts) "
#: ../../tutorial/stdlib2.rst:136
msgid ""
"The :mod:`struct` module provides :func:`~struct.pack` and :func:`~struct."
"unpack` functions for working with variable length binary record formats. "
"The following example shows how to loop through header information in a ZIP "
"file without using the :mod:`zipfile` module. Pack codes ``\"H\"`` and ``\"I"
"\"`` represent two and four byte unsigned numbers respectively. The ``\"<"
"\"`` indicates that they are standard size and in little-endian byte order::"
msgstr ""
":mod:`struct` 模組提供了 :func:`~struct.pack` 和 :func:`~struct.unpack` 函"
"式,用於處理可變動長度的二進制記錄格式。以下範例說明,如何在不使用 :mod:"
"`zipfile` 模組的情況下,使用迴圈瀏覽一個 ZIP 檔案中的標頭資訊 (header "
"information)。壓縮程式碼 ``\"H\"`` 和 ``\"I\"`` 分別代表兩個和四個位元組的無"
"符號數 (unsigned number)。\\ ``\"<\"`` 表示它們是標準大小,並使用小端 "
"(little-endian) 位元組順序:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:167
msgid "Multi-threading"
msgstr "多執行緒 (Multi-threading)"
#: ../../tutorial/stdlib2.rst:169
msgid ""
"Threading is a technique for decoupling tasks which are not sequentially "
"dependent. Threads can be used to improve the responsiveness of "
"applications that accept user input while other tasks run in the "
"background. A related use case is running I/O in parallel with computations "
"in another thread."
msgstr ""
"執行緒是一種用來對非順序相依 (sequentially dependent) 的多個任務進行解耦 "
"(decoupling) 的技術。當其他任務在背景執行時,多執行緒可以用來提升應用程式在接"
"收使用者輸入時的反應能力。一個相關的用例是,運行 I/O 的同時,在另一個執行緒中"
"進行計算。"
#: ../../tutorial/stdlib2.rst:174
msgid ""
"The following code shows how the high level :mod:`threading` module can run "
"tasks in background while the main program continues to run::"
msgstr ""
"以下程式碼顯示了高階的 :mod:`threading` 模組如何在背景運行任務,而主程式同時"
"繼續運行:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:198
msgid ""
"The principal challenge of multi-threaded applications is coordinating "
"threads that share data or other resources. To that end, the threading "
"module provides a number of synchronization primitives including locks, "
"events, condition variables, and semaphores."
msgstr ""
"多執行緒應用程式的主要挑戰是,要協調多個彼此共享資料或資源的執行緒。為此,"
"threading 模組提供了多個同步處理原始物件 (synchronization primitive),包括鎖 "
"(lock)、事件 (event)、條件變數 (condition variable) 和號誌 (semaphore)。"
#: ../../tutorial/stdlib2.rst:203
msgid ""
"While those tools are powerful, minor design errors can result in problems "
"that are difficult to reproduce. So, the preferred approach to task "
"coordination is to concentrate all access to a resource in a single thread "
"and then use the :mod:`queue` module to feed that thread with requests from "
"other threads. Applications using :class:`~queue.Queue` objects for inter-"
"thread communication and coordination are easier to design, more readable, "
"and more reliable."
msgstr ""
"儘管這些工具很強大,但很小的設計錯誤也可能導致一些難以重現的問題。所以,任務"
"協調的首選方法是,把所有對資源的存取集中到單一的執行緒中,然後使用 :mod:"
"`queue` 模組向該執行緒饋送來自其他執行緒的請求。應用程式若使用 :class:"
"`~queue.Queue` 物件進行執行緒間的通信和協調,會更易於設計、更易讀、更可靠。"
#: ../../tutorial/stdlib2.rst:214
msgid "Logging"
msgstr "日誌記錄 (Logging)"
#: ../../tutorial/stdlib2.rst:216
msgid ""
"The :mod:`logging` module offers a full featured and flexible logging "
"system. At its simplest, log messages are sent to a file or to ``sys."
"stderr``::"
msgstr ""
":mod:`logging` 模組提供功能齊全且富彈性的日誌記錄系統。在最簡單的情況下,日誌"
"訊息會被發送到檔案或 ``sys.stderr``:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:226
msgid "This produces the following output:"
msgstr "這會產生以下輸出:"
#: ../../tutorial/stdlib2.rst:234
msgid ""
"By default, informational and debugging messages are suppressed and the "
"output is sent to standard error. Other output options include routing "
"messages through email, datagrams, sockets, or to an HTTP Server. New "
"filters can select different routing based on message priority: :const:"
"`~logging.DEBUG`, :const:`~logging.INFO`, :const:`~logging.WARNING`, :const:"
"`~logging.ERROR`, and :const:`~logging.CRITICAL`."
msgstr ""
"在預設情況,資訊和除錯訊息不會被顯示,其輸出會被發送到標準錯誤 (standard "
"error)。其他輸出選項包括,將訊息轉發到電子郵件、資料報 (datagram)、網路插座 "
"(socket) 或 HTTP 伺服器。新的過濾器可以根據訊息的優先順序,選擇不同的路由 "
"(routing) 方式:\\ :const:`~logging.DEBUG`\\ ,\\ :const:`~logging.INFO`"
"\\ ,\\ :const:`~logging.WARNING`\\ ,\\ :const:`~logging.ERROR`\\ ,及 :"
"const:`~logging.CRITICAL`\\ 。"
#: ../../tutorial/stdlib2.rst:241
msgid ""
"The logging system can be configured directly from Python or can be loaded "
"from a user editable configuration file for customized logging without "
"altering the application."
msgstr ""
"日誌記錄系統可以直接從 Python 配置,也可以透過載入使用者可編輯的配置檔案以進"
"行客製化的日誌記錄,而無須對應用程式做出變更。"
#: ../../tutorial/stdlib2.rst:249
msgid "Weak References"
msgstr "弱引用 (Weak References)"
#: ../../tutorial/stdlib2.rst:251
msgid ""
"Python does automatic memory management (reference counting for most objects "
"and :term:`garbage collection` to eliminate cycles). The memory is freed "
"shortly after the last reference to it has been eliminated."
msgstr ""
"Python 會自動進行記憶體管理(對大多數物件進行參照計數 (reference counting) 並"
"使用 :term:`garbage collection` 來消除循環參照)。當一個參照從記憶體被移除後"
"不久,該記憶體就會被釋出。"
#: ../../tutorial/stdlib2.rst:255
msgid ""
"This approach works fine for most applications but occasionally there is a "
"need to track objects only as long as they are being used by something else. "
"Unfortunately, just tracking them creates a reference that makes them "
"permanent. The :mod:`weakref` module provides tools for tracking objects "
"without creating a reference. When the object is no longer needed, it is "
"automatically removed from a weakref table and a callback is triggered for "
"weakref objects. Typical applications include caching objects that are "
"expensive to create::"
msgstr ""
"此方式對大多數應用程式來說都沒問題,但偶爾也需要在物件仍然被其他物件所使用時"
"持續追蹤它們。可惜的是,儘管只是追蹤它們,也會建立一個使它們永久化 "
"(permanent) 的參照。\\ :mod:`weakref` 模組提供的工具可以不必建立參照就能追蹤"
"物件。當該物件不再被需要時,它會自動從一個弱引用表 (weakref table) 中被移除,"
"並為弱引用物件觸發一個回呼 (callback)。典型的應用包括暫存 (cache) 那些成本較"
"為昂貴的物件:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:290
msgid "Tools for Working with Lists"
msgstr "使用於 List 的工具"
#: ../../tutorial/stdlib2.rst:292
msgid ""
"Many data structure needs can be met with the built-in list type. However, "
"sometimes there is a need for alternative implementations with different "
"performance trade-offs."
msgstr ""
"許多對於資料結構的需求,可以透過內建的 list(串列)型別來滿足。但是,有時也會"
"根據效能的各種取捨,需要一些替代的實作。"
#: ../../tutorial/stdlib2.rst:296
msgid ""
"The :mod:`array` module provides an :class:`~array.array()` object that is "
"like a list that stores only homogeneous data and stores it more compactly. "
"The following example shows an array of numbers stored as two byte unsigned "
"binary numbers (typecode ``\"H\"``) rather than the usual 16 bytes per entry "
"for regular lists of Python int objects::"
msgstr ""
":mod:`array` 模組提供了一個 :class:`~array.array()` 物件,它像是 list,但只能"
"儲存同類的資料且能緊密地儲存。下面的範例展示一個數值陣列 (array),以兩個位元"
"組的無符號二進數 (unsigned binary numbers) 為儲存單位(類型碼為 ``\"H\"``),"
"而在 Python 整數物件的正規 list 中,每個項目通常使用 16 個位元組:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:309
msgid ""
"The :mod:`collections` module provides a :class:`~collections.deque()` "
"object that is like a list with faster appends and pops from the left side "
"but slower lookups in the middle. These objects are well suited for "
"implementing queues and breadth first tree searches::"
msgstr ""
":mod:`collections` 模組提供了一個 :class:`~collections.deque()` 物件,它像是 "
"list,但從左側加入 (append) 和彈出 (pop) 的速度較快,而在中間查找的速度則較"
"慢。這種物件適用於實作佇列 (queue) 和廣度優先搜尋法 (breadth first tree "
"search):\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:330
msgid ""
"In addition to alternative list implementations, the library also offers "
"other tools such as the :mod:`bisect` module with functions for manipulating "
"sorted lists::"
msgstr ""
"除了替代的 list 實作以外,函式庫也提供了其他工具,例如 :mod:`bisect` 模組,具"
"有能夠操作 sorted list(已排序串列)的函式:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:340
msgid ""
"The :mod:`heapq` module provides functions for implementing heaps based on "
"regular lists. The lowest valued entry is always kept at position zero. "
"This is useful for applications which repeatedly access the smallest element "
"but do not want to run a full list sort::"
msgstr ""
":mod:`heapq` 模組提供了一些函式,能基於正規 list 來實作堆積 (heap)。最小值的"
"項目會永遠保持在位置零。對於一些需要多次存取最小元素,但不想要對整個 list 進"
"行排序的應用程式來說,這會很有用:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:356
msgid "Decimal Floating Point Arithmetic"
msgstr "十進制 (Decimal) 浮點數運算"
#: ../../tutorial/stdlib2.rst:358
msgid ""
"The :mod:`decimal` module offers a :class:`~decimal.Decimal` datatype for "
"decimal floating point arithmetic. Compared to the built-in :class:`float` "
"implementation of binary floating point, the class is especially helpful for"
msgstr ""
":mod:`decimal` 模組提供了一個 :class:`~decimal.Decimal` 資料類型,用於十進制"
"浮點數運算。相較於內建的二進制浮點數 :class:`float` 實作,該 class 特別適用於"
"下列情境"
#: ../../tutorial/stdlib2.rst:362
msgid ""
"financial applications and other uses which require exact decimal "
"representation,"
msgstr "金融應用程式及其他需要準確十進位制表示法的應用,"
#: ../../tutorial/stdlib2.rst:364
msgid "control over precision,"
msgstr "對於精確度 (precision) 的控制,"
#: ../../tutorial/stdlib2.rst:365
msgid "control over rounding to meet legal or regulatory requirements,"
msgstr "控制四捨五入,以滿足法律或監管規範,"
#: ../../tutorial/stdlib2.rst:366
msgid "tracking of significant decimal places, or"
msgstr "追蹤有效的小數位數 (decimal place),或"
#: ../../tutorial/stdlib2.rst:367
msgid ""
"applications where the user expects the results to match calculations done "
"by hand."
msgstr "使用者會期望計算結果與手工計算相符的應用程式。"
#: ../../tutorial/stdlib2.rst:370
msgid ""
"For example, calculating a 5% tax on a 70 cent phone charge gives different "
"results in decimal floating point and binary floating point. The difference "
"becomes significant if the results are rounded to the nearest cent::"
msgstr ""
"例如,要計算 70 美分的手機充電加上 5% 稅金的總價,使用十進制浮點數和二進制浮"
"點數,會算出不同的答案。如果把計算結果四捨五入到最接近的美分,兩者的差異會更"
"顯著:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:380
msgid ""
"The :class:`~decimal.Decimal` result keeps a trailing zero, automatically "
"inferring four place significance from multiplicands with two place "
"significance. Decimal reproduces mathematics as done by hand and avoids "
"issues that can arise when binary floating point cannot exactly represent "
"decimal quantities."
msgstr ""
":class:`~decimal.Decimal` 的運算結果會保留尾部的零,也會根據有兩個有效位數的"
"被乘數自動推斷出有四個有效位數的乘積。Decimal 可以重現手工計算的結果,以避免"
"產生二進制浮點數無法準確表示十進制數值時會導致的問題。"
#: ../../tutorial/stdlib2.rst:386
msgid ""
"Exact representation enables the :class:`~decimal.Decimal` class to perform "
"modulo calculations and equality tests that are unsuitable for binary "
"floating point::"
msgstr ""
"準確的表示法使得 :class:`~decimal.Decimal` class 能夠執行對於二進制浮點數不適"
"用的模數計算和相等性檢測:\n"
"\n"
"::"
#: ../../tutorial/stdlib2.rst:400
msgid ""
"The :mod:`decimal` module provides arithmetic with as much precision as "
"needed::"
msgstr ""
":mod:`decimal` 模組可提供運算中需要的足夠精確度:\n"
"\n"
"::"