# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2021, 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.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-26 18:54+0800\n" "PO-Revision-Date: 2021-06-07 12:48+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 "" #: ../../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 "" #: ../../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 "" #: ../../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 "" #: ../../tutorial/stdlib2.rst:125 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 "" #: ../../tutorial/stdlib2.rst:133 msgid "Working with Binary Data Record Layouts" msgstr "" #: ../../tutorial/stdlib2.rst:135 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 "" #: ../../tutorial/stdlib2.rst:166 msgid "Multi-threading" msgstr "" #: ../../tutorial/stdlib2.rst:168 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 "" #: ../../tutorial/stdlib2.rst:173 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 "" #: ../../tutorial/stdlib2.rst:197 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 "" #: ../../tutorial/stdlib2.rst:202 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 "" #: ../../tutorial/stdlib2.rst:213 msgid "Logging" msgstr "" #: ../../tutorial/stdlib2.rst:215 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 "" #: ../../tutorial/stdlib2.rst:225 msgid "This produces the following output:" msgstr "" #: ../../tutorial/stdlib2.rst:233 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 "" #: ../../tutorial/stdlib2.rst:240 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 "" #: ../../tutorial/stdlib2.rst:248 msgid "Weak References" msgstr "" #: ../../tutorial/stdlib2.rst:250 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 "" #: ../../tutorial/stdlib2.rst:254 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 "" #: ../../tutorial/stdlib2.rst:289 msgid "Tools for Working with Lists" msgstr "" #: ../../tutorial/stdlib2.rst:291 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 "" #: ../../tutorial/stdlib2.rst:295 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 "" #: ../../tutorial/stdlib2.rst:308 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 "" #: ../../tutorial/stdlib2.rst:329 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 "" #: ../../tutorial/stdlib2.rst:339 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 "" #: ../../tutorial/stdlib2.rst:355 msgid "Decimal Floating Point Arithmetic" msgstr "" #: ../../tutorial/stdlib2.rst:357 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 "" #: ../../tutorial/stdlib2.rst:361 msgid "" "financial applications and other uses which require exact decimal " "representation," msgstr "" #: ../../tutorial/stdlib2.rst:363 msgid "control over precision," msgstr "" #: ../../tutorial/stdlib2.rst:364 msgid "control over rounding to meet legal or regulatory requirements," msgstr "" #: ../../tutorial/stdlib2.rst:365 msgid "tracking of significant decimal places, or" msgstr "" #: ../../tutorial/stdlib2.rst:366 msgid "" "applications where the user expects the results to match calculations done " "by hand." msgstr "" #: ../../tutorial/stdlib2.rst:369 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 "" #: ../../tutorial/stdlib2.rst:379 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 "" #: ../../tutorial/stdlib2.rst:385 msgid "" "Exact representation enables the :class:`~decimal.Decimal` class to perform " "modulo calculations and equality tests that are unsuitable for binary " "floating point::" msgstr "" #: ../../tutorial/stdlib2.rst:399 msgid "" "The :mod:`decimal` module provides arithmetic with as much precision as " "needed::" msgstr ""