# Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. # # Translators: msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-04-05 00:23+0000\n" "PO-Revision-Date: 2018-05-23 16:17+0000\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" #: ../../reference/lexical_analysis.rst:6 msgid "Lexical analysis" msgstr "詞法分析" #: ../../reference/lexical_analysis.rst:10 msgid "" "A Python program is read by a *parser*. Input to the parser is a stream of :" "term:`tokens `, generated by the *lexical analyzer* (also known as " "the *tokenizer*). This chapter describes how the lexical analyzer produces " "these tokens." msgstr "" #: ../../reference/lexical_analysis.rst:15 msgid "" "The lexical analyzer determines the program text's :ref:`encoding " "` (UTF-8 by default), and decodes the text into :ref:`source " "characters `. If the text cannot be decoded, a :" "exc:`SyntaxError` is raised." msgstr "" #: ../../reference/lexical_analysis.rst:20 msgid "" "Next, the lexical analyzer uses the source characters to generate a stream " "of tokens. The type of a generated token generally depends on the next " "source character to be processed. Similarly, other special behavior of the " "analyzer depends on the first source character that hasn't yet been " "processed. The following table gives a quick summary of these source " "characters, with links to sections that contain more information." msgstr "" #: ../../reference/lexical_analysis.rst:30 msgid "Character" msgstr "字元" #: ../../reference/lexical_analysis.rst:31 msgid "Next token (or other relevant documentation)" msgstr "" #: ../../reference/lexical_analysis.rst:33 #: ../../reference/lexical_analysis.rst:266 msgid "space" msgstr "space(空白)" #: ../../reference/lexical_analysis.rst:34 #: ../../reference/lexical_analysis.rst:266 msgid "tab" msgstr "tab(定位字元)" #: ../../reference/lexical_analysis.rst:35 msgid "formfeed" msgstr "" #: ../../reference/lexical_analysis.rst:36 msgid ":ref:`Whitespace `" msgstr ":ref:`空白字元 `" #: ../../reference/lexical_analysis.rst:38 msgid "CR, LF" msgstr "CR, LF" #: ../../reference/lexical_analysis.rst:39 msgid ":ref:`New line `" msgstr "" #: ../../reference/lexical_analysis.rst:40 msgid ":ref:`Indentation `" msgstr "" #: ../../reference/lexical_analysis.rst:42 msgid "backslash (``\\``)" msgstr "反斜線 (``\\``)" #: ../../reference/lexical_analysis.rst:43 msgid ":ref:`Explicit line joining `" msgstr "" #: ../../reference/lexical_analysis.rst:44 msgid "(Also significant in :ref:`string escape sequences `)" msgstr "" #: ../../reference/lexical_analysis.rst:46 msgid "hash (``#``)" msgstr "" #: ../../reference/lexical_analysis.rst:47 msgid ":ref:`Comment `" msgstr "" #: ../../reference/lexical_analysis.rst:49 msgid "quote (``'``, ``\"``)" msgstr "" #: ../../reference/lexical_analysis.rst:50 msgid ":ref:`String literal `" msgstr "" #: ../../reference/lexical_analysis.rst:52 msgid "ASCII letter (``a``-``z``, ``A``-``Z``)" msgstr "" #: ../../reference/lexical_analysis.rst:53 msgid "non-ASCII character" msgstr "非 ASCII 字元" #: ../../reference/lexical_analysis.rst:54 #: ../../reference/lexical_analysis.rst:58 msgid ":ref:`Name `" msgstr "" #: ../../reference/lexical_analysis.rst:55 msgid "Prefixed :ref:`string or bytes literal `" msgstr "" #: ../../reference/lexical_analysis.rst:57 msgid "underscore (``_``)" msgstr "底線 (``_``)" #: ../../reference/lexical_analysis.rst:59 msgid "(Can also be part of :ref:`numeric literals `)" msgstr "" #: ../../reference/lexical_analysis.rst:61 msgid "number (``0``-``9``)" msgstr "" #: ../../reference/lexical_analysis.rst:62 #: ../../reference/lexical_analysis.rst:65 msgid ":ref:`Numeric literal `" msgstr "" #: ../../reference/lexical_analysis.rst:64 msgid "dot (``.``)" msgstr "" #: ../../reference/lexical_analysis.rst:66 msgid ":ref:`Operator `" msgstr "" #: ../../reference/lexical_analysis.rst:68 msgid "question mark (``?``)" msgstr "" #: ../../reference/lexical_analysis.rst:69 msgid "dollar (``$``)" msgstr "" #: ../../reference/lexical_analysis.rst:74 msgid "backquote (``​`​``)" msgstr "" #: ../../reference/lexical_analysis.rst:75 msgid "control character" msgstr "控制字元" #: ../../reference/lexical_analysis.rst:76 msgid "Error (outside string literals and comments)" msgstr "" #: ../../reference/lexical_analysis.rst:78 msgid "other printing character" msgstr "" #: ../../reference/lexical_analysis.rst:79 msgid ":ref:`Operator or delimiter `" msgstr "" #: ../../reference/lexical_analysis.rst:81 msgid "end of file" msgstr "" #: ../../reference/lexical_analysis.rst:82 msgid ":ref:`End marker `" msgstr "" #: ../../reference/lexical_analysis.rst:88 msgid "Line structure" msgstr "" #: ../../reference/lexical_analysis.rst:92 msgid "A Python program is divided into a number of *logical lines*." msgstr "" #: ../../reference/lexical_analysis.rst:98 msgid "Logical lines" msgstr "" #: ../../reference/lexical_analysis.rst:102 msgid "" "The end of a logical line is represented by the token :data:`~token." "NEWLINE`. Statements cannot cross logical line boundaries except where :data:" "`!NEWLINE` is allowed by the syntax (e.g., between statements in compound " "statements). A logical line is constructed from one or more *physical lines* " "by following the :ref:`explicit ` or :ref:`implicit " "` *line joining* rules." msgstr "" #: ../../reference/lexical_analysis.rst:113 msgid "Physical lines" msgstr "" #: ../../reference/lexical_analysis.rst:115 msgid "" "A physical line is a sequence of characters terminated by one the following " "end-of-line sequences:" msgstr "" #: ../../reference/lexical_analysis.rst:118 msgid "the Unix form using ASCII LF (linefeed)," msgstr "" #: ../../reference/lexical_analysis.rst:119 msgid "" "the Windows form using the ASCII sequence CR LF (return followed by " "linefeed)," msgstr "" #: ../../reference/lexical_analysis.rst:120 msgid "the '`Classic Mac OS`__' form using the ASCII CR (return) character." msgstr "" #: ../../reference/lexical_analysis.rst:124 msgid "" "Regardless of platform, each of these sequences is replaced by a single " "ASCII LF (linefeed) character. (This is done even inside :ref:`string " "literals `.) Each line can use any of the sequences; they do not " "need to be consistent within a file." msgstr "" #: ../../reference/lexical_analysis.rst:130 msgid "" "The end of input also serves as an implicit terminator for the final " "physical line." msgstr "" #: ../../reference/lexical_analysis.rst:133 msgid "Formally:" msgstr "" #: ../../reference/lexical_analysis.rst:144 msgid "Comments" msgstr "" #: ../../reference/lexical_analysis.rst:149 msgid "" "A comment starts with a hash character (``#``) that is not part of a string " "literal, and ends at the end of the physical line. A comment signifies the " "end of the logical line unless the implicit line joining rules are invoked. " "Comments are ignored by the syntax." msgstr "" #: ../../reference/lexical_analysis.rst:158 msgid "Encoding declarations" msgstr "" #: ../../reference/lexical_analysis.rst:163 msgid "" "If a comment in the first or second line of the Python script matches the " "regular expression ``coding[=:]\\s*([-\\w.]+)``, this comment is processed " "as an encoding declaration; the first group of this expression names the " "encoding of the source code file. The encoding declaration must appear on a " "line of its own. If it is the second line, the first line must also be a " "comment-only line. The recommended forms of an encoding expression are ::" msgstr "" #: ../../reference/lexical_analysis.rst:170 msgid "# -*- coding: -*-" msgstr "# -*- coding: -*-" #: ../../reference/lexical_analysis.rst:172 msgid "which is recognized also by GNU Emacs, and ::" msgstr "" #: ../../reference/lexical_analysis.rst:174 msgid "# vim:fileencoding=" msgstr "# vim:fileencoding=" #: ../../reference/lexical_analysis.rst:176 msgid "which is recognized by Bram Moolenaar's VIM." msgstr "" #: ../../reference/lexical_analysis.rst:178 msgid "" "If no encoding declaration is found, the default encoding is UTF-8. If the " "implicit or explicit encoding of a file is UTF-8, an initial UTF-8 byte-" "order mark (``b'\\xef\\xbb\\xbf'``) is ignored rather than being a syntax " "error." msgstr "" #: ../../reference/lexical_analysis.rst:182 msgid "" "If an encoding is declared, the encoding name must be recognized by Python " "(see :ref:`standard-encodings`). The encoding is used for all lexical " "analysis, including string literals, comments and identifiers." msgstr "" #: ../../reference/lexical_analysis.rst:189 msgid "" "All lexical analysis, including string literals, comments and identifiers, " "works on Unicode text decoded using the source encoding. Any Unicode code " "point, except the NUL control character, can appear in Python source." msgstr "" #: ../../reference/lexical_analysis.rst:203 msgid "Explicit line joining" msgstr "" #: ../../reference/lexical_analysis.rst:207 msgid "" "Two or more physical lines may be joined into logical lines using backslash " "characters (``\\``), as follows: when a physical line ends in a backslash " "that is not part of a string literal or comment, it is joined with the " "following forming a single logical line, deleting the backslash and the " "following end-of-line character. For example::" msgstr "" #: ../../reference/lexical_analysis.rst:213 msgid "" "if 1900 < year < 2100 and 1 <= month <= 12 \\\n" " and 1 <= day <= 31 and 0 <= hour < 24 \\\n" " and 0 <= minute < 60 and 0 <= second < 60: # Looks like a valid date\n" " return 1" msgstr "" "if 1900 < year < 2100 and 1 <= month <= 12 \\\n" " and 1 <= day <= 31 and 0 <= hour < 24 \\\n" " and 0 <= minute < 60 and 0 <= second < 60: # 看起來像個有效日期\n" " return 1" #: ../../reference/lexical_analysis.rst:218 msgid "" "A line ending in a backslash cannot carry a comment. A backslash does not " "continue a comment. A backslash does not continue a token except for string " "literals (i.e., tokens other than string literals cannot be split across " "physical lines using a backslash). A backslash is illegal elsewhere on a " "line outside a string literal." msgstr "" #: ../../reference/lexical_analysis.rst:228 msgid "Implicit line joining" msgstr "" #: ../../reference/lexical_analysis.rst:230 msgid "" "Expressions in parentheses, square brackets or curly braces can be split " "over more than one physical line without using backslashes. For example::" msgstr "" #: ../../reference/lexical_analysis.rst:233 msgid "" "month_names = ['Januari', 'Februari', 'Maart', # These are the\n" " 'April', 'Mei', 'Juni', # Dutch names\n" " 'Juli', 'Augustus', 'September', # for the months\n" " 'Oktober', 'November', 'December'] # of the year" msgstr "" "month_names = ['Januari', 'Februari', 'Maart', # 這些是\n" " 'April', 'Mei', 'Juni', # 荷蘭文的\n" " 'Juli', 'Augustus', 'September', # 一年之中\n" " 'Oktober', 'November', 'December'] # 月份名稱" #: ../../reference/lexical_analysis.rst:238 msgid "" "Implicitly continued lines can carry comments. The indentation of the " "continuation lines is not important. Blank continuation lines are allowed. " "There is no NEWLINE token between implicit continuation lines. Implicitly " "continued lines can also occur within triple-quoted strings (see below); in " "that case they cannot carry comments." msgstr "" #: ../../reference/lexical_analysis.rst:248 msgid "Blank lines" msgstr "" #: ../../reference/lexical_analysis.rst:252 msgid "" "A logical line that contains only spaces, tabs, formfeeds and possibly a " "comment, is ignored (i.e., no :data:`~token.NEWLINE` token is generated). " "During interactive input of statements, handling of a blank line may differ " "depending on the implementation of the read-eval-print loop. In the standard " "interactive interpreter, an entirely blank logical line (that is, one " "containing not even whitespace or a comment) terminates a multi-line " "statement." msgstr "" #: ../../reference/lexical_analysis.rst:264 msgid "Indentation" msgstr "" #: ../../reference/lexical_analysis.rst:268 msgid "" "Leading whitespace (spaces and tabs) at the beginning of a logical line is " "used to compute the indentation level of the line, which in turn is used to " "determine the grouping of statements." msgstr "" #: ../../reference/lexical_analysis.rst:272 msgid "" "Tabs are replaced (from left to right) by one to eight spaces such that the " "total number of characters up to and including the replacement is a multiple " "of eight (this is intended to be the same rule as used by Unix). The total " "number of spaces preceding the first non-blank character then determines the " "line's indentation. Indentation cannot be split over multiple physical " "lines using backslashes; the whitespace up to the first backslash determines " "the indentation." msgstr "" #: ../../reference/lexical_analysis.rst:280 msgid "" "Indentation is rejected as inconsistent if a source file mixes tabs and " "spaces in a way that makes the meaning dependent on the worth of a tab in " "spaces; a :exc:`TabError` is raised in that case." msgstr "" #: ../../reference/lexical_analysis.rst:284 msgid "" "**Cross-platform compatibility note:** because of the nature of text editors " "on non-UNIX platforms, it is unwise to use a mixture of spaces and tabs for " "the indentation in a single source file. It should also be noted that " "different platforms may explicitly limit the maximum indentation level." msgstr "" #: ../../reference/lexical_analysis.rst:289 msgid "" "A formfeed character may be present at the start of the line; it will be " "ignored for the indentation calculations above. Formfeed characters " "occurring elsewhere in the leading whitespace have an undefined effect (for " "instance, they may reset the space count to zero)." msgstr "" #: ../../reference/lexical_analysis.rst:296 msgid "" "The indentation levels of consecutive lines are used to generate :data:" "`~token.INDENT` and :data:`~token.DEDENT` tokens, using a stack, as follows." msgstr "" #: ../../reference/lexical_analysis.rst:300 msgid "" "Before the first line of the file is read, a single zero is pushed on the " "stack; this will never be popped off again. The numbers pushed on the stack " "will always be strictly increasing from bottom to top. At the beginning of " "each logical line, the line's indentation level is compared to the top of " "the stack. If it is equal, nothing happens. If it is larger, it is pushed on " "the stack, and one :data:`!INDENT` token is generated. If it is smaller, it " "*must* be one of the numbers occurring on the stack; all numbers on the " "stack that are larger are popped off, and for each number popped off a :data:" "`!DEDENT` token is generated. At the end of the file, a :data:`!DEDENT` " "token is generated for each number remaining on the stack that is larger " "than zero." msgstr "" #: ../../reference/lexical_analysis.rst:311 msgid "" "Here is an example of a correctly (though confusingly) indented piece of " "Python code::" msgstr "" #: ../../reference/lexical_analysis.rst:314 msgid "" "def perm(l):\n" " # Compute the list of all permutations of l\n" " if len(l) <= 1:\n" " return [l]\n" " r = []\n" " for i in range(len(l)):\n" " s = l[:i] + l[i+1:]\n" " p = perm(s)\n" " for x in p:\n" " r.append(l[i:i+1] + x)\n" " return r" msgstr "" #: ../../reference/lexical_analysis.rst:326 msgid "The following example shows various indentation errors::" msgstr "" #: ../../reference/lexical_analysis.rst:328 msgid "" " def perm(l): # error: first line indented\n" "for i in range(len(l)): # error: not indented\n" " s = l[:i] + l[i+1:]\n" " p = perm(l[:i] + l[i+1:]) # error: unexpected indent\n" " for x in p:\n" " r.append(l[i:i+1] + x)\n" " return r # error: inconsistent dedent" msgstr "" #: ../../reference/lexical_analysis.rst:336 msgid "" "(Actually, the first three errors are detected by the parser; only the last " "error is found by the lexical analyzer --- the indentation of ``return r`` " "does not match a level popped off the stack.)" msgstr "" #: ../../reference/lexical_analysis.rst:344 msgid "Whitespace between tokens" msgstr "" #: ../../reference/lexical_analysis.rst:346 msgid "" "Except at the beginning of a logical line or in string literals, the " "whitespace characters space, tab and formfeed can be used interchangeably to " "separate tokens:" msgstr "" #: ../../reference/lexical_analysis.rst:356 msgid "" "Whitespace is needed between two tokens only if their concatenation could " "otherwise be interpreted as a different token. For example, ``ab`` is one " "token, but ``a b`` is two tokens. However, ``+a`` and ``+ a`` both produce " "two tokens, ``+`` and ``a``, as ``+a`` is not a valid token." msgstr "" #: ../../reference/lexical_analysis.rst:365 msgid "End marker" msgstr "" #: ../../reference/lexical_analysis.rst:367 msgid "" "At the end of non-interactive input, the lexical analyzer generates an :data:" "`~token.ENDMARKER` token." msgstr "" #: ../../reference/lexical_analysis.rst:374 msgid "Other tokens" msgstr "" #: ../../reference/lexical_analysis.rst:376 msgid "" "Besides :data:`~token.NEWLINE`, :data:`~token.INDENT` and :data:`~token." "DEDENT`, the following categories of tokens exist: *identifiers* and " "*keywords* (:data:`~token.NAME`), *literals* (such as :data:`~token.NUMBER` " "and :data:`~token.STRING`), and other symbols (*operators* and " "*delimiters*, :data:`~token.OP`). Whitespace characters (other than logical " "line terminators, discussed earlier) are not tokens, but serve to delimit " "tokens. Where ambiguity exists, a token comprises the longest possible " "string that forms a legal token, when read from left to right." msgstr "" #: ../../reference/lexical_analysis.rst:390 msgid "Names (identifiers and keywords)" msgstr "" #: ../../reference/lexical_analysis.rst:394 msgid "" ":data:`~token.NAME` tokens represent *identifiers*, *keywords*, and *soft " "keywords*." msgstr "" #: ../../reference/lexical_analysis.rst:397 msgid "Names are composed of the following characters:" msgstr "" #: ../../reference/lexical_analysis.rst:399 msgid "uppercase and lowercase letters (``A-Z`` and ``a-z``)," msgstr "" #: ../../reference/lexical_analysis.rst:400 msgid "the underscore (``_``)," msgstr "底線 (``_``)," #: ../../reference/lexical_analysis.rst:401 msgid "" "digits (``0`` through ``9``), which cannot appear as the first character, and" msgstr "" #: ../../reference/lexical_analysis.rst:402 msgid "" "non-ASCII characters. Valid names may only contain \"letter-like\" and " "\"digit-like\" characters; see :ref:`lexical-names-nonascii` for details." msgstr "" #: ../../reference/lexical_analysis.rst:405 msgid "" "Names must contain at least one character, but have no upper length limit. " "Case is significant." msgstr "" #: ../../reference/lexical_analysis.rst:408 msgid "Formally, names are described by the following lexical definitions:" msgstr "" #: ../../reference/lexical_analysis.rst:418 msgid "" "Note that not all names matched by this grammar are valid; see :ref:`lexical-" "names-nonascii` for details." msgstr "" #: ../../reference/lexical_analysis.rst:425 msgid "Keywords" msgstr "關鍵字" #: ../../reference/lexical_analysis.rst:431 msgid "" "The following names are used as reserved words, or *keywords* of the " "language, and cannot be used as ordinary identifiers. They must be spelled " "exactly as written here:" msgstr "" #: ../../reference/lexical_analysis.rst:435 msgid "" "False await else import pass\n" "None break except in raise\n" "True class finally is return\n" "and continue for lambda try\n" "as def from nonlocal while\n" "assert del global not with\n" "async elif if or yield" msgstr "" "False await else import pass\n" "None break except in raise\n" "True class finally is return\n" "and continue for lambda try\n" "as def from nonlocal while\n" "assert del global not with\n" "async elif if or yield" #: ../../reference/lexical_analysis.rst:449 msgid "Soft Keywords" msgstr "軟關鍵字" #: ../../reference/lexical_analysis.rst:455 msgid "" "Some names are only reserved under specific contexts. These are known as " "*soft keywords*:" msgstr "" #: ../../reference/lexical_analysis.rst:458 msgid "" "``match``, ``case``, and ``_``, when used in the :keyword:`match` statement." msgstr "" #: ../../reference/lexical_analysis.rst:459 msgid "``type``, when used in the :keyword:`type` statement." msgstr "" #: ../../reference/lexical_analysis.rst:461 msgid "" "These syntactically act as keywords in their specific contexts, but this " "distinction is done at the parser level, not when tokenizing." msgstr "" #: ../../reference/lexical_analysis.rst:464 msgid "" "As soft keywords, their use in the grammar is possible while still " "preserving compatibility with existing code that uses these names as " "identifier names." msgstr "" #: ../../reference/lexical_analysis.rst:468 msgid "``type`` is now a soft keyword." msgstr "``type`` 現在是軟關鍵字。" #: ../../reference/lexical_analysis.rst:477 msgid "Reserved classes of identifiers" msgstr "" #: ../../reference/lexical_analysis.rst:479 msgid "" "Certain classes of identifiers (besides keywords) have special meanings. " "These classes are identified by the patterns of leading and trailing " "underscore characters:" msgstr "" #: ../../reference/lexical_analysis.rst:483 msgid "``_*``" msgstr "``_*``" #: ../../reference/lexical_analysis.rst:484 msgid "Not imported by ``from module import *``." msgstr "" #: ../../reference/lexical_analysis.rst:486 msgid "``_``" msgstr "``_``" #: ../../reference/lexical_analysis.rst:487 msgid "" "In a ``case`` pattern within a :keyword:`match` statement, ``_`` is a :ref:" "`soft keyword ` that denotes a :ref:`wildcard `." msgstr "" #: ../../reference/lexical_analysis.rst:491 msgid "" "Separately, the interactive interpreter makes the result of the last " "evaluation available in the variable ``_``. (It is stored in the :mod:" "`builtins` module, alongside built-in functions like ``print``.)" msgstr "" #: ../../reference/lexical_analysis.rst:496 msgid "" "Elsewhere, ``_`` is a regular identifier. It is often used to name " "\"special\" items, but it is not special to Python itself." msgstr "" #: ../../reference/lexical_analysis.rst:501 msgid "" "The name ``_`` is often used in conjunction with internationalization; refer " "to the documentation for the :mod:`gettext` module for more information on " "this convention." msgstr "" #: ../../reference/lexical_analysis.rst:505 msgid "It is also commonly used for unused variables." msgstr "" #: ../../reference/lexical_analysis.rst:507 msgid "``__*__``" msgstr "``__*__``" #: ../../reference/lexical_analysis.rst:508 msgid "" "System-defined names, informally known as \"dunder\" names. These names are " "defined by the interpreter and its implementation (including the standard " "library). Current system names are discussed in the :ref:`specialnames` " "section and elsewhere. More will likely be defined in future versions of " "Python. *Any* use of ``__*__`` names, in any context, that does not follow " "explicitly documented use, is subject to breakage without warning." msgstr "" #: ../../reference/lexical_analysis.rst:515 msgid "``__*``" msgstr "``__*``" #: ../../reference/lexical_analysis.rst:516 msgid "" "Class-private names. Names in this category, when used within the context " "of a class definition, are re-written to use a mangled form to help avoid " "name clashes between \"private\" attributes of base and derived classes. See " "section :ref:`atom-identifiers`." msgstr "" #: ../../reference/lexical_analysis.rst:525 msgid "Non-ASCII characters in names" msgstr "名稱中的非 ASCII 字元" #: ../../reference/lexical_analysis.rst:527 msgid "" "Names that contain non-ASCII characters need additional normalization and " "validation beyond the rules and grammar explained :ref:`above " "`. For example, ``ř_1``, ``蛇``, or ``साँप`` are valid names, " "but ``r〰2``, ``€``, or ``🐍`` are not." msgstr "" #: ../../reference/lexical_analysis.rst:533 msgid "This section explains the exact rules." msgstr "" #: ../../reference/lexical_analysis.rst:535 msgid "" "All names are converted into the `normalization form`_ NFKC while parsing. " "This means that, for example, some typographic variants of characters are " "converted to their \"basic\" form. For example, ``fiⁿₐˡᵢᶻₐᵗᵢᵒₙ`` normalizes " "to ``finalization``, so Python treats them as the same name::" msgstr "" #: ../../reference/lexical_analysis.rst:540 msgid "" ">>> fiⁿₐˡᵢᶻₐᵗᵢᵒₙ = 3\n" ">>> finalization\n" "3" msgstr "" #: ../../reference/lexical_analysis.rst:546 msgid "" "Normalization is done at the lexical level only. Run-time functions that " "take names as *strings* generally do not normalize their arguments. For " "example, the variable defined above is accessible at run time in the :func:" "`globals` dictionary as ``globals()[\"finalization\"]`` but not ``globals()" "[\"fiⁿₐˡᵢᶻₐᵗᵢᵒₙ\"]``." msgstr "" #: ../../reference/lexical_analysis.rst:553 msgid "" "Similarly to how ASCII-only names must contain only letters, digits and the " "underscore, and cannot start with a digit, a valid name must start with a " "character in the \"letter-like\" set ``xid_start``, and the remaining " "characters must be in the \"letter- and digit-like\" set ``xid_continue``." msgstr "" #: ../../reference/lexical_analysis.rst:559 msgid "" "These sets are based on the *XID_Start* and *XID_Continue* sets as defined " "by the Unicode standard annex `UAX-31`_. Python's ``xid_start`` additionally " "includes the underscore (``_``). Note that Python does not necessarily " "conform to `UAX-31`_." msgstr "" #: ../../reference/lexical_analysis.rst:564 msgid "" "A non-normative listing of characters in the *XID_Start* and *XID_Continue* " "sets as defined by Unicode is available in the `DerivedCoreProperties.txt`_ " "file in the Unicode Character Database. For reference, the construction " "rules for the ``xid_*`` sets are given below." msgstr "" #: ../../reference/lexical_analysis.rst:569 msgid "The set ``id_start`` is defined as the union of:" msgstr "" #: ../../reference/lexical_analysis.rst:571 msgid "Unicode category ```` - uppercase letters (includes ``A`` to ``Z``)" msgstr "" #: ../../reference/lexical_analysis.rst:572 msgid "Unicode category ```` - lowercase letters (includes ``a`` to ``z``)" msgstr "" #: ../../reference/lexical_analysis.rst:573 msgid "Unicode category ```` - titlecase letters" msgstr "" #: ../../reference/lexical_analysis.rst:574 msgid "Unicode category ```` - modifier letters" msgstr "" #: ../../reference/lexical_analysis.rst:575 msgid "Unicode category ```` - other letters" msgstr "" #: ../../reference/lexical_analysis.rst:576 msgid "Unicode category ```` - letter numbers" msgstr "" #: ../../reference/lexical_analysis.rst:577 msgid "{``\"_\"``} - the underscore" msgstr "{``\"_\"``} - 底線" #: ../../reference/lexical_analysis.rst:578 msgid "" "```` - an explicit set of characters in `PropList.txt`_ to " "support backwards compatibility" msgstr "" #: ../../reference/lexical_analysis.rst:581 msgid "" "The set ``xid_start`` then closes this set under NFKC normalization, by " "removing all characters whose normalization is not of the form ``id_start " "id_continue*``." msgstr "" #: ../../reference/lexical_analysis.rst:585 msgid "The set ``id_continue`` is defined as the union of:" msgstr "" #: ../../reference/lexical_analysis.rst:587 msgid "``id_start`` (see above)" msgstr "" #: ../../reference/lexical_analysis.rst:588 msgid "Unicode category ```` - decimal numbers (includes ``0`` to ``9``)" msgstr "" #: ../../reference/lexical_analysis.rst:589 msgid "Unicode category ```` - connector punctuations" msgstr "" #: ../../reference/lexical_analysis.rst:590 msgid "Unicode category ```` - nonspacing marks" msgstr "" #: ../../reference/lexical_analysis.rst:591 msgid "Unicode category ```` - spacing combining marks" msgstr "" #: ../../reference/lexical_analysis.rst:592 msgid "" "```` - another explicit set of characters in `PropList." "txt`_ to support backwards compatibility" msgstr "" #: ../../reference/lexical_analysis.rst:595 msgid "Again, ``xid_continue`` closes this set under NFKC normalization." msgstr "" #: ../../reference/lexical_analysis.rst:597 msgid "" "Unicode categories use the version of the Unicode Character Database as " "included in the :mod:`unicodedata` module." msgstr "" #: ../../reference/lexical_analysis.rst:607 msgid ":pep:`3131` -- Supporting Non-ASCII Identifiers" msgstr "" #: ../../reference/lexical_analysis.rst:608 msgid ":pep:`672` -- Unicode-related Security Considerations for Python" msgstr "" #: ../../reference/lexical_analysis.rst:614 msgid "Literals" msgstr "" #: ../../reference/lexical_analysis.rst:618 msgid "Literals are notations for constant values of some built-in types." msgstr "" #: ../../reference/lexical_analysis.rst:620 msgid "" "In terms of lexical analysis, Python has :ref:`string, bytes ` and :" "ref:`numeric ` literals." msgstr "" #: ../../reference/lexical_analysis.rst:623 msgid "" "Other \"literals\" are lexically denoted using :ref:`keywords ` " "(``None``, ``True``, ``False``) and the special :ref:`ellipsis token " "` (``...``)." msgstr "" #: ../../reference/lexical_analysis.rst:634 msgid "String and Bytes literals" msgstr "" #: ../../reference/lexical_analysis.rst:636 msgid "" "String literals are text enclosed in single quotes (``'``) or double quotes " "(``\"``). For example:" msgstr "" #: ../../reference/lexical_analysis.rst:639 msgid "" "\"spam\"\n" "'eggs'" msgstr "" "\"spam\"\n" "'eggs'" #: ../../reference/lexical_analysis.rst:644 msgid "" "The quote used to start the literal also terminates it, so a string literal " "can only contain the other quote (except with escape sequences, see below). " "For example:" msgstr "" #: ../../reference/lexical_analysis.rst:648 msgid "" "'Say \"Hello\", please.'\n" "\"Don't do that!\"" msgstr "" "'Say \"Hello\", please.'\n" "\"Don't do that!\"" #: ../../reference/lexical_analysis.rst:653 msgid "" "Except for this limitation, the choice of quote character (``'`` or ``\"``) " "does not affect how the literal is parsed." msgstr "" #: ../../reference/lexical_analysis.rst:656 msgid "" "Inside a string literal, the backslash (``\\``) character introduces an :dfn:" "`escape sequence`, which has special meaning depending on the character " "after the backslash. For example, ``\\\"`` denotes the double quote " "character, and does *not* end the string:" msgstr "" #: ../../reference/lexical_analysis.rst:662 msgid "" ">>> print(\"Say \\\"Hello\\\" to everyone!\")\n" "Say \"Hello\" to everyone!" msgstr "" ">>> print(\"Say \\\"Hello\\\" to everyone!\")\n" "Say \"Hello\" to everyone!" #: ../../reference/lexical_analysis.rst:667 msgid "" "See :ref:`escape sequences ` below for a full list of such " "sequences, and more details." msgstr "" #: ../../reference/lexical_analysis.rst:676 msgid "Triple-quoted strings" msgstr "三引號字串" #: ../../reference/lexical_analysis.rst:678 msgid "" "Strings can also be enclosed in matching groups of three single or double " "quotes. These are generally referred to as :dfn:`triple-quoted strings`::" msgstr "" #: ../../reference/lexical_analysis.rst:682 msgid "\"\"\"This is a triple-quoted string.\"\"\"" msgstr "\"\"\"這是一個三引號字串。\"\"\"" #: ../../reference/lexical_analysis.rst:684 msgid "" "In triple-quoted literals, unescaped quotes are allowed (and are retained), " "except that three unescaped quotes in a row terminate the literal, if they " "are of the same kind (``'`` or ``\"``) used at the start::" msgstr "" #: ../../reference/lexical_analysis.rst:688 msgid "\"\"\"This string has \"quotes\" inside.\"\"\"" msgstr "\"\"\"這個字串裡面有 \"引號\"。\"\"\"" #: ../../reference/lexical_analysis.rst:690 msgid "Unescaped newlines are also allowed and retained::" msgstr "" #: ../../reference/lexical_analysis.rst:692 msgid "" "'''This triple-quoted string\n" "continues on the next line.'''" msgstr "" #: ../../reference/lexical_analysis.rst:701 msgid "String prefixes" msgstr "" #: ../../reference/lexical_analysis.rst:703 msgid "" "String literals can have an optional :dfn:`prefix` that influences how the " "content of the literal is parsed, for example:" msgstr "" #: ../../reference/lexical_analysis.rst:706 msgid "" "b\"data\"\n" "f'{result=}'" msgstr "" "b\"data\"\n" "f'{result=}'" #: ../../reference/lexical_analysis.rst:711 msgid "The allowed prefixes are:" msgstr "" #: ../../reference/lexical_analysis.rst:713 msgid "``b``: :ref:`Bytes literal `" msgstr "" #: ../../reference/lexical_analysis.rst:714 msgid "``r``: :ref:`Raw string `" msgstr "" #: ../../reference/lexical_analysis.rst:715 msgid "``f``: :ref:`Formatted string literal ` (\"f-string\")" msgstr "" #: ../../reference/lexical_analysis.rst:716 msgid "``t``: :ref:`Template string literal ` (\"t-string\")" msgstr "" #: ../../reference/lexical_analysis.rst:717 msgid "``u``: No effect (allowed for backwards compatibility)" msgstr "" #: ../../reference/lexical_analysis.rst:719 msgid "See the linked sections for details on each type." msgstr "" #: ../../reference/lexical_analysis.rst:721 msgid "" "Prefixes are case-insensitive (for example, '``B``' works the same as " "'``b``'). The '``r``' prefix can be combined with '``f``', '``t``' or " "'``b``', so '``fr``', '``rf``', '``tr``', '``rt``', '``br``', and '``rb``' " "are also valid prefixes." msgstr "" #: ../../reference/lexical_analysis.rst:725 msgid "" "The ``'rb'`` prefix of raw bytes literals has been added as a synonym of " "``'br'``." msgstr "" #: ../../reference/lexical_analysis.rst:729 msgid "" "Support for the unicode legacy literal (``u'value'``) was reintroduced to " "simplify the maintenance of dual Python 2.x and 3.x codebases. See :pep:" "`414` for more information." msgstr "" #: ../../reference/lexical_analysis.rst:735 msgid "Formal grammar" msgstr "" #: ../../reference/lexical_analysis.rst:737 msgid "" "String literals, except :ref:`\"f-strings\" ` and :ref:`\"t-" "strings\" `, are described by the following lexical definitions." msgstr "" #: ../../reference/lexical_analysis.rst:741 msgid "" "These definitions use :ref:`negative lookaheads ` (``!" "``) to indicate that an ending quote ends the literal." msgstr "" #: ../../reference/lexical_analysis.rst:759 msgid "" "Note that as in all lexical definitions, whitespace is significant. In " "particular, the prefix (if any) must be immediately followed by the starting " "quote." msgstr "" #: ../../reference/lexical_analysis.rst:781 msgid "Escape sequences" msgstr "跳脫序列" #: ../../reference/lexical_analysis.rst:783 msgid "" "Unless an '``r``' or '``R``' prefix is present, escape sequences in string " "and bytes literals are interpreted according to rules similar to those used " "by Standard C. The recognized escape sequences are:" msgstr "" #: ../../reference/lexical_analysis.rst:791 msgid "Escape Sequence" msgstr "" #: ../../reference/lexical_analysis.rst:792 msgid "Meaning" msgstr "含義" #: ../../reference/lexical_analysis.rst:793 msgid "``\\``\\ " msgstr "``\\``\\ " #: ../../reference/lexical_analysis.rst:794 msgid ":ref:`string-escape-ignore`" msgstr ":ref:`string-escape-ignore`" #: ../../reference/lexical_analysis.rst:795 msgid "``\\\\``" msgstr "``\\\\``" #: ../../reference/lexical_analysis.rst:796 msgid ":ref:`Backslash `" msgstr "" #: ../../reference/lexical_analysis.rst:797 msgid "``\\'``" msgstr "``\\'``" #: ../../reference/lexical_analysis.rst:798 msgid ":ref:`Single quote `" msgstr "" #: ../../reference/lexical_analysis.rst:799 msgid "``\\\"``" msgstr "``\\\"``" #: ../../reference/lexical_analysis.rst:800 msgid ":ref:`Double quote `" msgstr "" #: ../../reference/lexical_analysis.rst:801 msgid "``\\a``" msgstr "``\\a``" #: ../../reference/lexical_analysis.rst:802 msgid "ASCII Bell (BEL)" msgstr "" #: ../../reference/lexical_analysis.rst:803 msgid "``\\b``" msgstr "``\\b``" #: ../../reference/lexical_analysis.rst:804 msgid "ASCII Backspace (BS)" msgstr "" #: ../../reference/lexical_analysis.rst:805 msgid "``\\f``" msgstr "``\\f``" #: ../../reference/lexical_analysis.rst:806 msgid "ASCII Formfeed (FF)" msgstr "" #: ../../reference/lexical_analysis.rst:807 msgid "``\\n``" msgstr "``\\n``" #: ../../reference/lexical_analysis.rst:808 msgid "ASCII Linefeed (LF)" msgstr "" #: ../../reference/lexical_analysis.rst:809 msgid "``\\r``" msgstr "``\\r``" #: ../../reference/lexical_analysis.rst:810 msgid "ASCII Carriage Return (CR)" msgstr "" #: ../../reference/lexical_analysis.rst:811 msgid "``\\t``" msgstr "``\\t``" #: ../../reference/lexical_analysis.rst:812 msgid "ASCII Horizontal Tab (TAB)" msgstr "" #: ../../reference/lexical_analysis.rst:813 msgid "``\\v``" msgstr "``\\v``" #: ../../reference/lexical_analysis.rst:814 msgid "ASCII Vertical Tab (VT)" msgstr "" #: ../../reference/lexical_analysis.rst:815 msgid ":samp:`\\\\\\\\{ooo}`" msgstr ":samp:`\\\\\\\\{ooo}`" #: ../../reference/lexical_analysis.rst:816 msgid ":ref:`string-escape-oct`" msgstr ":ref:`string-escape-oct`" #: ../../reference/lexical_analysis.rst:817 msgid ":samp:`\\\\x{hh}`" msgstr ":samp:`\\\\x{hh}`" #: ../../reference/lexical_analysis.rst:818 msgid ":ref:`string-escape-hex`" msgstr ":ref:`string-escape-hex`" #: ../../reference/lexical_analysis.rst:819 msgid ":samp:`\\\\N\\\\{{name}\\\\}`" msgstr ":samp:`\\\\N\\\\{{name}\\\\}`" #: ../../reference/lexical_analysis.rst:820 msgid ":ref:`string-escape-named`" msgstr ":ref:`string-escape-named`" #: ../../reference/lexical_analysis.rst:821 msgid ":samp:`\\\\u{xxxx}`" msgstr ":samp:`\\\\u{xxxx}`" #: ../../reference/lexical_analysis.rst:822 #: ../../reference/lexical_analysis.rst:824 msgid ":ref:`Hexadecimal Unicode character `" msgstr "" #: ../../reference/lexical_analysis.rst:823 msgid ":samp:`\\\\U{xxxxxxxx}`" msgstr ":samp:`\\\\U{xxxxxxxx}`" #: ../../reference/lexical_analysis.rst:829 msgid "Ignored end of line" msgstr "" #: ../../reference/lexical_analysis.rst:831 msgid "A backslash can be added at the end of a line to ignore the newline::" msgstr "" #: ../../reference/lexical_analysis.rst:833 msgid "" ">>> 'This string will not include \\\n" "... backslashes or newline characters.'\n" "'This string will not include backslashes or newline characters.'" msgstr "" #: ../../reference/lexical_analysis.rst:837 msgid "" "The same result can be achieved using :ref:`triple-quoted strings " "`, or parentheses and :ref:`string literal concatenation `." msgstr "" #: ../../reference/lexical_analysis.rst:843 msgid "Escaped characters" msgstr "跳脫字元" #: ../../reference/lexical_analysis.rst:845 msgid "" "To include a backslash in a non-:ref:`raw ` Python string " "literal, it must be doubled. The ``\\\\`` escape sequence denotes a single " "backslash character::" msgstr "" #: ../../reference/lexical_analysis.rst:849 msgid "" ">>> print('C:\\\\Program Files')\n" "C:\\Program Files" msgstr "" ">>> print('C:\\\\Program Files')\n" "C:\\Program Files" #: ../../reference/lexical_analysis.rst:852 msgid "" "Similarly, the ``\\'`` and ``\\\"`` sequences denote the single and double " "quote character, respectively::" msgstr "" #: ../../reference/lexical_analysis.rst:855 msgid "" ">>> print('\\' and \\\"')\n" "' and \"" msgstr "" ">>> print('\\' and \\\"')\n" "' and \"" #: ../../reference/lexical_analysis.rst:861 msgid "Octal character" msgstr "八進位字元" #: ../../reference/lexical_analysis.rst:863 msgid "" "The sequence :samp:`\\\\\\\\{ooo}` denotes a *character* with the octal " "(base 8) value *ooo*::" msgstr "" #: ../../reference/lexical_analysis.rst:866 msgid "" ">>> '\\120'\n" "'P'" msgstr "" ">>> '\\120'\n" "'P'" #: ../../reference/lexical_analysis.rst:869 msgid "Up to three octal digits (0 through 7) are accepted." msgstr "" #: ../../reference/lexical_analysis.rst:871 #: ../../reference/lexical_analysis.rst:896 msgid "" "In a bytes literal, *character* means a *byte* with the given value. In a " "string literal, it means a Unicode character with the given value." msgstr "" #: ../../reference/lexical_analysis.rst:874 msgid "" "Octal escapes with value larger than ``0o377`` (255) produce a :exc:" "`DeprecationWarning`." msgstr "" #: ../../reference/lexical_analysis.rst:878 msgid "" "Octal escapes with value larger than ``0o377`` (255) produce a :exc:" "`SyntaxWarning`. In a future Python version they will raise a :exc:" "`SyntaxError`." msgstr "" #: ../../reference/lexical_analysis.rst:886 msgid "Hexadecimal character" msgstr "十六進位字元" #: ../../reference/lexical_analysis.rst:888 msgid "" "The sequence :samp:`\\\\x{hh}` denotes a *character* with the hex (base 16) " "value *hh*::" msgstr "" #: ../../reference/lexical_analysis.rst:891 msgid "" ">>> '\\x50'\n" "'P'" msgstr "" ">>> '\\x50'\n" "'P'" #: ../../reference/lexical_analysis.rst:894 msgid "Unlike in Standard C, exactly two hex digits are required." msgstr "與標準 C 不同,這裡需要剛好兩個十六進位數字。" #: ../../reference/lexical_analysis.rst:902 msgid "Named Unicode character" msgstr "" #: ../../reference/lexical_analysis.rst:904 msgid "" "The sequence :samp:`\\\\N\\\\{{name}\\\\}` denotes a Unicode character with " "the given *name*::" msgstr "" #: ../../reference/lexical_analysis.rst:907 msgid "" ">>> '\\N{LATIN CAPITAL LETTER P}'\n" "'P'\n" ">>> '\\N{SNAKE}'\n" "'🐍'" msgstr "" ">>> '\\N{LATIN CAPITAL LETTER P}'\n" "'P'\n" ">>> '\\N{SNAKE}'\n" "'🐍'" #: ../../reference/lexical_analysis.rst:912 msgid "This sequence cannot appear in :ref:`bytes literals `." msgstr "" #: ../../reference/lexical_analysis.rst:914 msgid "" "Support for `name aliases `__ has been added." msgstr "" "已新增對\\ `名稱別名 (name alias) `__\\ 的支援。" #: ../../reference/lexical_analysis.rst:921 msgid "Hexadecimal Unicode characters" msgstr "十六進位 Unicode 字元" #: ../../reference/lexical_analysis.rst:923 msgid "" "These sequences :samp:`\\\\u{xxxx}` and :samp:`\\\\U{xxxxxxxx}` denote the " "Unicode character with the given hex (base 16) value. Exactly four digits " "are required for ``\\u``; exactly eight digits are required for ``\\U``. The " "latter can encode any Unicode character." msgstr "" #: ../../reference/lexical_analysis.rst:929 msgid "" ">>> '\\u1234'\n" "'ሴ'\n" ">>> '\\U0001f40d'\n" "'🐍'" msgstr "" ">>> '\\u1234'\n" "'ሴ'\n" ">>> '\\U0001f40d'\n" "'🐍'" #: ../../reference/lexical_analysis.rst:936 msgid "These sequences cannot appear in :ref:`bytes literals `." msgstr "" #: ../../reference/lexical_analysis.rst:942 msgid "Unrecognized escape sequences" msgstr "無法辨識的跳脫序列" #: ../../reference/lexical_analysis.rst:944 msgid "" "Unlike in Standard C, all unrecognized escape sequences are left in the " "string unchanged, that is, *the backslash is left in the result*::" msgstr "" #: ../../reference/lexical_analysis.rst:947 msgid "" ">>> print('\\q')\n" "\\q\n" ">>> list('\\q')\n" "['\\\\', 'q']" msgstr "" ">>> print('\\q')\n" "\\q\n" ">>> list('\\q')\n" "['\\\\', 'q']" #: ../../reference/lexical_analysis.rst:952 msgid "" "Note that for bytes literals, the escape sequences only recognized in string " "literals (``\\N...``, ``\\u...``, ``\\U...``) fall into the category of " "unrecognized escapes." msgstr "" #: ../../reference/lexical_analysis.rst:956 msgid "Unrecognized escape sequences produce a :exc:`DeprecationWarning`." msgstr "" #: ../../reference/lexical_analysis.rst:959 msgid "" "Unrecognized escape sequences produce a :exc:`SyntaxWarning`. In a future " "Python version they will raise a :exc:`SyntaxError`." msgstr "" #: ../../reference/lexical_analysis.rst:972 msgid "Bytes literals" msgstr "位元組常數" #: ../../reference/lexical_analysis.rst:974 msgid "" ":dfn:`Bytes literals` are always prefixed with '``b``' or '``B``'; they " "produce an instance of the :class:`bytes` type instead of the :class:`str` " "type. They may only contain ASCII characters; bytes with a numeric value of " "128 or greater must be expressed with escape sequences (typically :ref:" "`string-escape-hex` or :ref:`string-escape-oct`):" msgstr "" #: ../../reference/lexical_analysis.rst:980 msgid "" ">>> b'\\x89PNG\\r\\n\\x1a\\n'\n" "b'\\x89PNG\\r\\n\\x1a\\n'\n" ">>> list(b'\\x89PNG\\r\\n\\x1a\\n')\n" "[137, 80, 78, 71, 13, 10, 26, 10]" msgstr "" ">>> b'\\x89PNG\\r\\n\\x1a\\n'\n" "b'\\x89PNG\\r\\n\\x1a\\n'\n" ">>> list(b'\\x89PNG\\r\\n\\x1a\\n')\n" "[137, 80, 78, 71, 13, 10, 26, 10]" #: ../../reference/lexical_analysis.rst:987 msgid "" "Similarly, a zero byte must be expressed using an escape sequence (typically " "``\\0`` or ``\\x00``)." msgstr "" #: ../../reference/lexical_analysis.rst:998 msgid "Raw string literals" msgstr "原始字串常數" #: ../../reference/lexical_analysis.rst:1000 msgid "" "Both string and bytes literals may optionally be prefixed with a letter " "'``r``' or '``R``'; such constructs are called :dfn:`raw string literals` " "and :dfn:`raw bytes literals` respectively and treat backslashes as literal " "characters. As a result, in raw string literals, :ref:`escape sequences " "` are not treated specially:" msgstr "" #: ../../reference/lexical_analysis.rst:1007 msgid "" ">>> r'\\d{4}-\\d{2}-\\d{2}'\n" "'\\\\d{4}-\\\\d{2}-\\\\d{2}'" msgstr "" ">>> r'\\d{4}-\\d{2}-\\d{2}'\n" "'\\\\d{4}-\\\\d{2}-\\\\d{2}'" #: ../../reference/lexical_analysis.rst:1012 msgid "" "Even in a raw literal, quotes can be escaped with a backslash, but the " "backslash remains in the result; for example, ``r\"\\\"\"`` is a valid " "string literal consisting of two characters: a backslash and a double quote; " "``r\"\\\"`` is not a valid string literal (even a raw string cannot end in " "an odd number of backslashes). Specifically, *a raw literal cannot end in a " "single backslash* (since the backslash would escape the following quote " "character). Note also that a single backslash followed by a newline is " "interpreted as those two characters as part of the literal, *not* as a line " "continuation." msgstr "" #: ../../reference/lexical_analysis.rst:1040 msgid "f-strings" msgstr "f-string(f 字串)" #: ../../reference/lexical_analysis.rst:1043 msgid "" "The :keyword:`await` and :keyword:`async for` can be used in expressions " "within f-strings." msgstr "" #: ../../reference/lexical_analysis.rst:1046 msgid "Added the debug specifier (``=``)" msgstr "" #: ../../reference/lexical_analysis.rst:1048 msgid "" "Many restrictions on expressions within f-strings have been removed. " "Notably, nested strings, comments, and backslashes are now permitted." msgstr "" #: ../../reference/lexical_analysis.rst:1052 msgid "" "A :dfn:`formatted string literal` or :dfn:`f-string` is a string literal " "that is prefixed with '``f``' or '``F``'. Unlike other string literals, f-" "strings do not have a constant value. They may contain *replacement fields* " "delimited by curly braces ``{}``. Replacement fields contain expressions " "which are evaluated at run time. For example::" msgstr "" #: ../../reference/lexical_analysis.rst:1059 msgid "" ">>> who = 'nobody'\n" ">>> nationality = 'Spanish'\n" ">>> f'{who.title()} expects the {nationality} Inquisition!'\n" "'Nobody expects the Spanish Inquisition!'" msgstr "" ">>> who = 'nobody'\n" ">>> nationality = 'Spanish'\n" ">>> f'{who.title()} expects the {nationality} Inquisition!'\n" "'Nobody expects the Spanish Inquisition!'" #: ../../reference/lexical_analysis.rst:1064 msgid "" "Any doubled curly braces (``{{`` or ``}}``) outside replacement fields are " "replaced with the corresponding single curly brace::" msgstr "" #: ../../reference/lexical_analysis.rst:1067 msgid "" ">>> print(f'{{...}}')\n" "{...}" msgstr "" ">>> print(f'{{...}}')\n" "{...}" #: ../../reference/lexical_analysis.rst:1070 msgid "" "Other characters outside replacement fields are treated like in ordinary " "string literals. This means that escape sequences are decoded (except when a " "literal is also marked as a raw string), and newlines are possible in triple-" "quoted f-strings::" msgstr "" #: ../../reference/lexical_analysis.rst:1076 msgid "" ">>> name = 'Galahad'\n" ">>> favorite_color = 'blue'\n" ">>> print(f'{name}:\\t{favorite_color}')\n" "Galahad: blue\n" ">>> print(rf\"C:\\Users\\{name}\")\n" "C:\\Users\\Galahad\n" ">>> print(f'''Three shall be the number of the counting\n" "... and the number of the counting shall be three.''')\n" "Three shall be the number of the counting\n" "and the number of the counting shall be three." msgstr "" #: ../../reference/lexical_analysis.rst:1087 msgid "" "Expressions in formatted string literals are treated like regular Python " "expressions. Each expression is evaluated in the context where the formatted " "string literal appears, in order from left to right. An empty expression is " "not allowed, and both :keyword:`lambda` and assignment expressions ``:=`` " "must be surrounded by explicit parentheses::" msgstr "" #: ../../reference/lexical_analysis.rst:1094 msgid "" ">>> f'{(half := 1/2)}, {half * 42}'\n" "'0.5, 21.0'" msgstr "" ">>> f'{(half := 1/2)}, {half * 42}'\n" "'0.5, 21.0'" #: ../../reference/lexical_analysis.rst:1097 msgid "" "Reusing the outer f-string quoting type inside a replacement field is " "permitted::" msgstr "" #: ../../reference/lexical_analysis.rst:1100 msgid "" ">>> a = dict(x=2)\n" ">>> f\"abc {a[\"x\"]} def\"\n" "'abc 2 def'" msgstr "" ">>> a = dict(x=2)\n" ">>> f\"abc {a[\"x\"]} def\"\n" "'abc 2 def'" #: ../../reference/lexical_analysis.rst:1104 msgid "" "Backslashes are also allowed in replacement fields and are evaluated the " "same way as in any other context::" msgstr "" #: ../../reference/lexical_analysis.rst:1107 msgid "" ">>> a = [\"a\", \"b\", \"c\"]\n" ">>> print(f\"List a contains:\\n{\"\\n\".join(a)}\")\n" "List a contains:\n" "a\n" "b\n" "c" msgstr "" ">>> a = [\"a\", \"b\", \"c\"]\n" ">>> print(f\"List a contains:\\n{\"\\n\".join(a)}\")\n" "List a contains:\n" "a\n" "b\n" "c" #: ../../reference/lexical_analysis.rst:1114 msgid "It is possible to nest f-strings::" msgstr "" #: ../../reference/lexical_analysis.rst:1116 msgid "" ">>> name = 'world'\n" ">>> f'Repeated:{f' hello {name}' * 3}'\n" "'Repeated: hello world hello world hello world'" msgstr "" ">>> name = 'world'\n" ">>> f'Repeated:{f' hello {name}' * 3}'\n" "'Repeated: hello world hello world hello world'" #: ../../reference/lexical_analysis.rst:1120 msgid "Portable Python programs should not use more than 5 levels of nesting." msgstr "" #: ../../reference/lexical_analysis.rst:1124 msgid "CPython does not limit nesting of f-strings." msgstr "" #: ../../reference/lexical_analysis.rst:1126 msgid "" "Replacement expressions can contain newlines in both single-quoted and " "triple-quoted f-strings and they can contain comments. Everything that comes " "after a ``#`` inside a replacement field is a comment (even closing braces " "and quotes). This means that replacement fields with comments must be closed " "in a different line:" msgstr "" #: ../../reference/lexical_analysis.rst:1133 msgid "" ">>> a = 2\n" ">>> f\"abc{a # This comment }\" continues until the end of the line\n" "... + 3}\"\n" "'abc5'" msgstr "" #: ../../reference/lexical_analysis.rst:1140 msgid "After the expression, replacement fields may optionally contain:" msgstr "" #: ../../reference/lexical_analysis.rst:1142 msgid "" "a *debug specifier* -- an equal sign (``=``), optionally surrounded by " "whitespace on one or both sides;" msgstr "" #: ../../reference/lexical_analysis.rst:1144 msgid "a *conversion specifier* -- ``!s``, ``!r`` or ``!a``; and/or" msgstr "" #: ../../reference/lexical_analysis.rst:1145 msgid "a *format specifier* prefixed with a colon (``:``)." msgstr "" #: ../../reference/lexical_analysis.rst:1147 msgid "" "See the :ref:`Standard Library section on f-strings ` for " "details on how these fields are evaluated." msgstr "" #: ../../reference/lexical_analysis.rst:1150 msgid "" "As that section explains, *format specifiers* are passed as the second " "argument to the :func:`format` function to format a replacement field value. " "For example, they can be used to specify a field width and padding " "characters using the :ref:`Format Specification Mini-Language `::" msgstr "" #: ../../reference/lexical_analysis.rst:1155 msgid "" ">>> number = 14.3\n" ">>> f'{number:20.7f}'\n" "' 14.3000000'" msgstr "" ">>> number = 14.3\n" ">>> f'{number:20.7f}'\n" "' 14.3000000'" #: ../../reference/lexical_analysis.rst:1159 msgid "Top-level format specifiers may include nested replacement fields::" msgstr "" #: ../../reference/lexical_analysis.rst:1161 msgid "" ">>> field_size = 20\n" ">>> precision = 7\n" ">>> f'{number:{field_size}.{precision}f}'\n" "' 14.3000000'" msgstr "" ">>> field_size = 20\n" ">>> precision = 7\n" ">>> f'{number:{field_size}.{precision}f}'\n" "' 14.3000000'" #: ../../reference/lexical_analysis.rst:1166 msgid "" "These nested fields may include their own conversion fields and :ref:`format " "specifiers `::" msgstr "" #: ../../reference/lexical_analysis.rst:1169 msgid "" ">>> number = 3\n" ">>> f'{number:{field_size}}'\n" "' 3'\n" ">>> f'{number:{field_size:05}}'\n" "'00000000000000000003'" msgstr "" ">>> number = 3\n" ">>> f'{number:{field_size}}'\n" "' 3'\n" ">>> f'{number:{field_size:05}}'\n" "'00000000000000000003'" #: ../../reference/lexical_analysis.rst:1175 msgid "" "However, these nested fields may not include more deeply nested replacement " "fields." msgstr "" #: ../../reference/lexical_analysis.rst:1178 msgid "" "Formatted string literals cannot be used as :term:`docstrings `, " "even if they do not include expressions::" msgstr "" #: ../../reference/lexical_analysis.rst:1181 msgid "" ">>> def foo():\n" "... f\"Not a docstring\"\n" "...\n" ">>> print(foo.__doc__)\n" "None" msgstr "" ">>> def foo():\n" "... f\"Not a docstring\"\n" "...\n" ">>> print(foo.__doc__)\n" "None" #: ../../reference/lexical_analysis.rst:1189 msgid ":pep:`498` -- Literal String Interpolation" msgstr "" #: ../../reference/lexical_analysis.rst:1190 msgid ":pep:`701` -- Syntactic formalization of f-strings" msgstr "" #: ../../reference/lexical_analysis.rst:1191 msgid ":meth:`str.format`, which uses a related format string mechanism." msgstr "" #: ../../reference/lexical_analysis.rst:1198 msgid "t-strings" msgstr "t-string(t 字串)" #: ../../reference/lexical_analysis.rst:1202 msgid "" "A :dfn:`template string literal` or :dfn:`t-string` is a string literal that " "is prefixed with '``t``' or '``T``'. These strings follow the same syntax " "rules as :ref:`formatted string literals `. For differences in " "evaluation rules, see the :ref:`Standard Library section on t-strings " "`" msgstr "" #: ../../reference/lexical_analysis.rst:1211 msgid "Formal grammar for f-strings" msgstr "" #: ../../reference/lexical_analysis.rst:1213 msgid "" "F-strings are handled partly by the :term:`lexical analyzer`, which produces " "the tokens :py:data:`~token.FSTRING_START`, :py:data:`~token.FSTRING_MIDDLE` " "and :py:data:`~token.FSTRING_END`, and partly by the parser, which handles " "expressions in the replacement field. The exact way the work is split is a " "CPython implementation detail." msgstr "" #: ../../reference/lexical_analysis.rst:1219 msgid "" "Correspondingly, the f-string grammar is a mix of :ref:`lexical and " "syntactic definitions `." msgstr "" #: ../../reference/lexical_analysis.rst:1222 msgid "Whitespace is significant in these situations:" msgstr "" #: ../../reference/lexical_analysis.rst:1224 msgid "" "There may be no whitespace in :py:data:`~token.FSTRING_START` (between the " "prefix and quote)." msgstr "" #: ../../reference/lexical_analysis.rst:1226 msgid "" "Whitespace in :py:data:`~token.FSTRING_MIDDLE` is part of the literal string " "contents." msgstr "" #: ../../reference/lexical_analysis.rst:1228 msgid "" "In ``fstring_replacement_field``, if ``f_debug_specifier`` is present, all " "whitespace after the opening brace until the ``f_debug_specifier``, as well " "as whitespace immediately following ``f_debug_specifier``, is retained as " "part of the expression." msgstr "" #: ../../reference/lexical_analysis.rst:1235 msgid "" "The expression is not handled in the tokenization phase; it is retrieved " "from the source code using locations of the ``{`` token and the token after " "``=``." msgstr "" #: ../../reference/lexical_analysis.rst:1240 msgid "" "The ``FSTRING_MIDDLE`` definition uses :ref:`negative lookaheads ` (``!``) to indicate special characters (backslash, newline, " "``{``, ``}``) and sequences (``f_quote``)." msgstr "" #: ../../reference/lexical_analysis.rst:1281 msgid "" "In the above grammar snippet, the ``f_quote`` and ``FSTRING_MIDDLE`` rules " "are context-sensitive -- they depend on the contents of ``FSTRING_START`` of " "the nearest enclosing ``fstring``." msgstr "" #: ../../reference/lexical_analysis.rst:1285 msgid "" "Constructing a more traditional formal grammar from this template is left as " "an exercise for the reader." msgstr "" #: ../../reference/lexical_analysis.rst:1288 msgid "" "The grammar for t-strings is identical to the one for f-strings, with *t* " "instead of *f* at the beginning of rule and token names and in the prefix." msgstr "" #: ../../reference/lexical_analysis.rst:1302 msgid "Numeric literals" msgstr "" #: ../../reference/lexical_analysis.rst:1308 msgid "" ":data:`~token.NUMBER` tokens represent numeric literals, of which there are " "three types: integers, floating-point numbers, and imaginary numbers." msgstr "" #: ../../reference/lexical_analysis.rst:1316 msgid "" "The numeric value of a numeric literal is the same as if it were passed as a " "string to the :class:`int`, :class:`float` or :class:`complex` class " "constructor, respectively. Note that not all valid inputs for those " "constructors are also valid literals." msgstr "" #: ../../reference/lexical_analysis.rst:1321 msgid "" "Numeric literals do not include a sign; a phrase like ``-1`` is actually an " "expression composed of the unary operator '``-``' and the literal ``1``." msgstr "" #: ../../reference/lexical_analysis.rst:1335 msgid "Integer literals" msgstr "" #: ../../reference/lexical_analysis.rst:1337 msgid "Integer literals denote whole numbers. For example::" msgstr "" #: ../../reference/lexical_analysis.rst:1339 msgid "" "7\n" "3\n" "2147483647" msgstr "" "7\n" "3\n" "2147483647" #: ../../reference/lexical_analysis.rst:1343 msgid "" "There is no limit for the length of integer literals apart from what can be " "stored in available memory::" msgstr "" #: ../../reference/lexical_analysis.rst:1346 msgid "7922816251426433759354395033679228162514264337593543950336" msgstr "7922816251426433759354395033679228162514264337593543950336" #: ../../reference/lexical_analysis.rst:1348 msgid "" "Underscores can be used to group digits for enhanced readability, and are " "ignored for determining the numeric value of the literal. For example, the " "following literals are equivalent::" msgstr "" #: ../../reference/lexical_analysis.rst:1352 msgid "" "100_000_000_000\n" "100000000000\n" "1_00_00_00_00_000" msgstr "" "100_000_000_000\n" "100000000000\n" "1_00_00_00_00_000" #: ../../reference/lexical_analysis.rst:1356 msgid "" "Underscores can only occur between digits. For example, ``_123``, ``321_``, " "and ``123__321`` are *not* valid literals." msgstr "" #: ../../reference/lexical_analysis.rst:1359 msgid "" "Integers can be specified in binary (base 2), octal (base 8), or hexadecimal " "(base 16) using the prefixes ``0b``, ``0o`` and ``0x``, respectively. " "Hexadecimal digits 10 through 15 are represented by letters ``A``-``F``, " "case-insensitive. For example::" msgstr "" #: ../../reference/lexical_analysis.rst:1364 msgid "" "0b100110111\n" "0b_1110_0101\n" "0o177\n" "0o377\n" "0xdeadbeef\n" "0xDead_Beef" msgstr "" "0b100110111\n" "0b_1110_0101\n" "0o177\n" "0o377\n" "0xdeadbeef\n" "0xDead_Beef" #: ../../reference/lexical_analysis.rst:1371 msgid "" "An underscore can follow the base specifier. For example, ``0x_1f`` is a " "valid literal, but ``0_x1f`` and ``0x__1f`` are not." msgstr "" #: ../../reference/lexical_analysis.rst:1375 msgid "" "Leading zeros in a non-zero decimal number are not allowed. For example, " "``0123`` is not a valid literal. This is for disambiguation with C-style " "octal literals, which Python used before version 3.0." msgstr "" #: ../../reference/lexical_analysis.rst:1380 msgid "" "Formally, integer literals are described by the following lexical " "definitions:" msgstr "" #: ../../reference/lexical_analysis.rst:1397 #: ../../reference/lexical_analysis.rst:1461 msgid "Underscores are now allowed for grouping purposes in literals." msgstr "" #: ../../reference/lexical_analysis.rst:1408 msgid "Floating-point literals" msgstr "浮點數常數 (Floating-point literals)" #: ../../reference/lexical_analysis.rst:1410 msgid "" "Floating-point (float) literals, such as ``3.14`` or ``1.5``, denote :ref:" "`approximations of real numbers `." msgstr "" #: ../../reference/lexical_analysis.rst:1413 msgid "" "They consist of *integer* and *fraction* parts, each composed of decimal " "digits. The parts are separated by a decimal point, ``.``::" msgstr "" #: ../../reference/lexical_analysis.rst:1416 msgid "" "2.71828\n" "4.0" msgstr "" "2.71828\n" "4.0" #: ../../reference/lexical_analysis.rst:1419 msgid "" "Unlike in integer literals, leading zeros are allowed. For example, " "``077.010`` is legal, and denotes the same number as ``77.01``." msgstr "" #: ../../reference/lexical_analysis.rst:1422 msgid "" "As in integer literals, single underscores may occur between digits to help " "readability::" msgstr "" #: ../../reference/lexical_analysis.rst:1425 msgid "" "96_485.332_123\n" "3.14_15_93" msgstr "" "96_485.332_123\n" "3.14_15_93" #: ../../reference/lexical_analysis.rst:1428 msgid "Either of these parts, but not both, can be empty. For example::" msgstr "" #: ../../reference/lexical_analysis.rst:1430 msgid "" "10. # (equivalent to 10.0)\n" ".001 # (equivalent to 0.001)" msgstr "" "10. # (相當於 10.0)\n" ".001 # (相當於 0.001)" #: ../../reference/lexical_analysis.rst:1433 msgid "" "Optionally, the integer and fraction may be followed by an *exponent*: the " "letter ``e`` or ``E``, followed by an optional sign, ``+`` or ``-``, and a " "number in the same format as the integer and fraction parts. The ``e`` or " "``E`` represents \"times ten raised to the power of\"::" msgstr "" #: ../../reference/lexical_analysis.rst:1438 msgid "" "1.0e3 # (represents 1.0×10³, or 1000.0)\n" "1.166e-5 # (represents 1.166×10⁻⁵, or 0.00001166)\n" "6.02214076e+23 # (represents 6.02214076×10²³, or 602214076000000000000000.)" msgstr "" #: ../../reference/lexical_analysis.rst:1442 msgid "" "In floats with only integer and exponent parts, the decimal point may be " "omitted::" msgstr "" #: ../../reference/lexical_analysis.rst:1445 msgid "" "1e3 # (equivalent to 1.e3 and 1.0e3)\n" "0e0 # (equivalent to 0.)" msgstr "" "1e3 # (相當於 1.e3 和 1.0e3)\n" "0e0 # (相當於 0.)" #: ../../reference/lexical_analysis.rst:1448 msgid "" "Formally, floating-point literals are described by the following lexical " "definitions:" msgstr "" #: ../../reference/lexical_analysis.rst:1470 msgid "Imaginary literals" msgstr "" #: ../../reference/lexical_analysis.rst:1472 msgid "" "Python has :ref:`complex number ` objects, but no complex " "literals. Instead, *imaginary literals* denote complex numbers with a zero " "real part." msgstr "" #: ../../reference/lexical_analysis.rst:1477 msgid "" "For example, in math, the complex number 3+4.2\\ *i* is written as the real " "number 3 added to the imaginary number 4.2\\ *i*. Python uses a similar " "syntax, except the imaginary unit is written as ``j`` rather than *i*::" msgstr "" #: ../../reference/lexical_analysis.rst:1482 msgid "3+4.2j" msgstr "3+4.2j" #: ../../reference/lexical_analysis.rst:1484 msgid "" "This is an expression composed of the :ref:`integer literal ` " "``3``, the :ref:`operator ` '``+``', and the :ref:`imaginary " "literal ` ``4.2j``. Since these are three separate tokens, " "whitespace is allowed between them::" msgstr "" #: ../../reference/lexical_analysis.rst:1490 msgid "3 + 4.2j" msgstr "3 + 4.2j" #: ../../reference/lexical_analysis.rst:1492 msgid "" "No whitespace is allowed *within* each token. In particular, the ``j`` " "suffix, may not be separated from the number before it." msgstr "" #: ../../reference/lexical_analysis.rst:1496 msgid "" "The number before the ``j`` has the same syntax as a floating-point literal. " "Thus, the following are valid imaginary literals::" msgstr "" #: ../../reference/lexical_analysis.rst:1499 msgid "" "4.2j\n" "3.14j\n" "10.j\n" ".001j\n" "1e100j\n" "3.14e-10j\n" "3.14_15_93j" msgstr "" "4.2j\n" "3.14j\n" "10.j\n" ".001j\n" "1e100j\n" "3.14e-10j\n" "3.14_15_93j" #: ../../reference/lexical_analysis.rst:1507 msgid "" "Unlike in a floating-point literal the decimal point can be omitted if the " "imaginary number only has an integer part. The number is still evaluated as " "a floating-point number, not an integer::" msgstr "" #: ../../reference/lexical_analysis.rst:1511 msgid "" "10j\n" "0j\n" "1000000000000000000000000j # equivalent to 1e+24j" msgstr "" "10j\n" "0j\n" "1000000000000000000000000j # 相當於 1e+24j" #: ../../reference/lexical_analysis.rst:1515 msgid "" "The ``j`` suffix is case-insensitive. That means you can use ``J`` instead::" msgstr "" #: ../../reference/lexical_analysis.rst:1518 msgid "3.14J # equivalent to 3.14j" msgstr "" #: ../../reference/lexical_analysis.rst:1520 msgid "" "Formally, imaginary literals are described by the following lexical " "definition:" msgstr "" #: ../../reference/lexical_analysis.rst:1533 msgid "Operators and delimiters" msgstr "" #: ../../reference/lexical_analysis.rst:1539 msgid "" "The following grammar defines :dfn:`operator` and :dfn:`delimiter` tokens, " "that is, the generic :data:`~token.OP` token type. A :ref:`list of these " "tokens and their names ` is also available in " "the :mod:`!token` module documentation." msgstr "" #: ../../reference/lexical_analysis.rst:1568 msgid "" "Generally, *operators* are used to combine :ref:`expressions `, " "while *delimiters* serve other purposes. However, there is no clear, formal " "distinction between the two categories." msgstr "" #: ../../reference/lexical_analysis.rst:1572 msgid "" "Some tokens can serve as either operators or delimiters, depending on usage. " "For example, ``*`` is both the multiplication operator and a delimiter used " "for sequence unpacking, and ``@`` is both the matrix multiplication and a " "delimiter that introduces decorators." msgstr "" #: ../../reference/lexical_analysis.rst:1577 msgid "" "For some tokens, the distinction is unclear. For example, some people " "consider ``.``, ``(``, and ``)`` to be delimiters, while others see the :py:" "func:`getattr` operator and the function call operator(s)." msgstr "" #: ../../reference/lexical_analysis.rst:1581 msgid "" "Some of Python's operators, like ``and``, ``or``, and ``not in``, use :ref:" "`keyword ` tokens rather than \"symbols\" (operator tokens)." msgstr "" #: ../../reference/lexical_analysis.rst:1584 msgid "" "A sequence of three consecutive periods (``...``) has a special meaning as " "an :py:data:`Ellipsis` literal." msgstr "" #: ../../reference/lexical_analysis.rst:8 msgid "lexical analysis" msgstr "lexical analysis(詞法分析)" #: ../../reference/lexical_analysis.rst:8 msgid "parser" msgstr "parser(剖析器)" #: ../../reference/lexical_analysis.rst:8 msgid "token" msgstr "token" #: ../../reference/lexical_analysis.rst:90 msgid "line structure" msgstr "line structure(列結構)" #: ../../reference/lexical_analysis.rst:100 msgid "logical line" msgstr "logical line(邏輯列)" #: ../../reference/lexical_analysis.rst:100 #: ../../reference/lexical_analysis.rst:205 #: ../../reference/lexical_analysis.rst:763 msgid "physical line" msgstr "physical line(物理列)" #: ../../reference/lexical_analysis.rst:100 #: ../../reference/lexical_analysis.rst:205 msgid "line joining" msgstr "line joining(列連接)" #: ../../reference/lexical_analysis.rst:100 msgid "NEWLINE token" msgstr "NEWLINE token(換行標誌)" #: ../../reference/lexical_analysis.rst:146 msgid "comment" msgstr "comment(註解)" #: ../../reference/lexical_analysis.rst:146 msgid "hash character" msgstr "hash character(井字號)" #: ../../reference/lexical_analysis.rst:146 #: ../../reference/lexical_analysis.rst:160 msgid "# (hash)" msgstr "# (井字號)" #: ../../reference/lexical_analysis.rst:160 msgid "source character set" msgstr "source character set(原始字元集合)" #: ../../reference/lexical_analysis.rst:160 msgid "encoding declarations (source file)" msgstr "encoding declarations (source file)(編碼宣告(原始檔案))" #: ../../reference/lexical_analysis.rst:160 msgid "source encoding declaration" msgstr "source encoding declaration(原始編碼宣告)" #: ../../reference/lexical_analysis.rst:205 msgid "line continuation" msgstr "line continuation(列延續)" #: ../../reference/lexical_analysis.rst:205 msgid "backslash character" msgstr "backslash character(反斜線字元)" #: ../../reference/lexical_analysis.rst:250 msgid "blank line" msgstr "blank line(空白列)" #: ../../reference/lexical_analysis.rst:266 msgid "indentation" msgstr "indentation(縮排)" #: ../../reference/lexical_analysis.rst:266 msgid "leading whitespace" msgstr "leading whitespace(前置空白)" #: ../../reference/lexical_analysis.rst:266 msgid "grouping" msgstr "grouping(群組)" #: ../../reference/lexical_analysis.rst:266 msgid "statement grouping" msgstr "statement grouping(陳述式群組)" #: ../../reference/lexical_analysis.rst:294 msgid "INDENT token" msgstr "INDENT token(縮排標誌)" #: ../../reference/lexical_analysis.rst:294 msgid "DEDENT token" msgstr "DEDENT token(縮排標誌)" #: ../../reference/lexical_analysis.rst:392 msgid "identifier" msgstr "identifier(識別器)" #: ../../reference/lexical_analysis.rst:392 msgid "name" msgstr "name(名稱)" #: ../../reference/lexical_analysis.rst:427 #: ../../reference/lexical_analysis.rst:451 msgid "keyword" msgstr "keyword(關鍵字)" #: ../../reference/lexical_analysis.rst:427 msgid "reserved word" msgstr "reserved word(保留字)" #: ../../reference/lexical_analysis.rst:451 msgid "soft keyword" msgstr "soft keyword(軟關鍵字)" #: ../../reference/lexical_analysis.rst:471 msgid "_, identifiers" msgstr "_, identifiers(識別器)" #: ../../reference/lexical_analysis.rst:471 msgid "__, identifiers" msgstr "__, identifiers(識別器)" #: ../../reference/lexical_analysis.rst:616 msgid "literal" msgstr "literal(常數)" #: ../../reference/lexical_analysis.rst:616 msgid "constant" msgstr "constant(常數)" #: ../../reference/lexical_analysis.rst:628 #: ../../reference/lexical_analysis.rst:671 #: ../../reference/lexical_analysis.rst:696 msgid "string literal" msgstr "string literal(字串常數)" #: ../../reference/lexical_analysis.rst:628 #: ../../reference/lexical_analysis.rst:964 msgid "bytes literal" msgstr "bytes literal(位元組常數)" #: ../../reference/lexical_analysis.rst:628 msgid "ASCII" msgstr "ASCII" #: ../../reference/lexical_analysis.rst:628 msgid "' (single quote)" msgstr "' (單引號)" #: ../../reference/lexical_analysis.rst:628 msgid "\" (double quote)" msgstr "\" (雙引號)" #: ../../reference/lexical_analysis.rst:671 msgid "triple-quoted string" msgstr "triple-quoted string(三引號字串)" #: ../../reference/lexical_analysis.rst:671 msgid "\"\"\"" msgstr "\"\"\"" #: ../../reference/lexical_analysis.rst:671 msgid "'''" msgstr "'''" #: ../../reference/lexical_analysis.rst:696 msgid "u'" msgstr "u'" #: ../../reference/lexical_analysis.rst:696 msgid "u\"" msgstr "u\"" #: ../../reference/lexical_analysis.rst:763 msgid "escape sequence" msgstr "escape sequence(跳脫序列)" #: ../../reference/lexical_analysis.rst:763 msgid "Standard C" msgstr "Standard C(標準 C)" #: ../../reference/lexical_analysis.rst:763 msgid "C" msgstr "C" #: ../../reference/lexical_analysis.rst:763 msgid "\\ (backslash)" msgstr "\\ (反斜線)" #: ../../reference/lexical_analysis.rst:763 msgid "\\\\" msgstr "\\\\" #: ../../reference/lexical_analysis.rst:763 msgid "\\a" msgstr "\\a" #: ../../reference/lexical_analysis.rst:763 msgid "\\b" msgstr "\\b" #: ../../reference/lexical_analysis.rst:763 msgid "\\f" msgstr "\\f" #: ../../reference/lexical_analysis.rst:763 msgid "\\n" msgstr "\\n" #: ../../reference/lexical_analysis.rst:763 msgid "\\r" msgstr "\\r" #: ../../reference/lexical_analysis.rst:763 msgid "\\t" msgstr "\\t" #: ../../reference/lexical_analysis.rst:763 msgid "\\v" msgstr "\\v" #: ../../reference/lexical_analysis.rst:763 msgid "\\x" msgstr "\\x" #: ../../reference/lexical_analysis.rst:763 msgid "\\N" msgstr "\\N" #: ../../reference/lexical_analysis.rst:763 msgid "\\u" msgstr "\\u" #: ../../reference/lexical_analysis.rst:763 msgid "\\U" msgstr "\\U" #: ../../reference/lexical_analysis.rst:939 msgid "unrecognized escape sequence" msgstr "unrecognized escape sequence(無法辨識的跳脫序列)" #: ../../reference/lexical_analysis.rst:964 msgid "b'" msgstr "b'" #: ../../reference/lexical_analysis.rst:964 msgid "b\"" msgstr "b\"" #: ../../reference/lexical_analysis.rst:991 msgid "r'" msgstr "r'" #: ../../reference/lexical_analysis.rst:991 msgid "raw string literal" msgstr "raw string literal(原始字串常數)" #: ../../reference/lexical_analysis.rst:991 msgid "r\"" msgstr "r\"" #: ../../reference/lexical_analysis.rst:1022 msgid "formatted string literal" msgstr "formatted string literal(格式化字串常數)" #: ../../reference/lexical_analysis.rst:1022 msgid "interpolated string literal" msgstr "interpolated string literal(插值字串常數)" #: ../../reference/lexical_analysis.rst:1022 msgid "string" msgstr "string(字串)" #: ../../reference/lexical_analysis.rst:1022 msgid "formatted literal" msgstr "formatted literal(格式化常數)" #: ../../reference/lexical_analysis.rst:1022 msgid "interpolated literal" msgstr "interpolated literal(插值常數)" #: ../../reference/lexical_analysis.rst:1022 msgid "f-string" msgstr "f-string(f 字串)" #: ../../reference/lexical_analysis.rst:1022 msgid "fstring" msgstr "fstring(f 字串)" #: ../../reference/lexical_analysis.rst:1022 msgid "f'" msgstr "f'" #: ../../reference/lexical_analysis.rst:1022 msgid "f\"" msgstr "f\"" #: ../../reference/lexical_analysis.rst:1022 msgid "{} (curly brackets)" msgstr "{} (花括號)" #: ../../reference/lexical_analysis.rst:1022 msgid "in formatted string literal" msgstr "於格式化字串常數中" #: ../../reference/lexical_analysis.rst:1022 msgid "! (exclamation)" msgstr "! (驚嘆號)" #: ../../reference/lexical_analysis.rst:1022 msgid ": (colon)" msgstr ": (冒號)" #: ../../reference/lexical_analysis.rst:1022 msgid "= (equals)" msgstr "= (等號)" #: ../../reference/lexical_analysis.rst:1022 msgid "for help in debugging using string literals" msgstr "for help in debugging using string literals(使用字串常數進行除錯)" #: ../../reference/lexical_analysis.rst:1304 msgid "number" msgstr "number(數字)" #: ../../reference/lexical_analysis.rst:1304 msgid "numeric literal" msgstr "numeric literal(數值常數)" #: ../../reference/lexical_analysis.rst:1304 #: ../../reference/lexical_analysis.rst:1326 msgid "integer literal" msgstr "integer literal(整數常數)" #: ../../reference/lexical_analysis.rst:1304 msgid "floating-point literal" msgstr "floating-point literal(浮點數常數)" #: ../../reference/lexical_analysis.rst:1304 msgid "hexadecimal literal" msgstr "hexadecimal literal(十六進位常數)" #: ../../reference/lexical_analysis.rst:1304 msgid "octal literal" msgstr "octal literal(八進位常數)" #: ../../reference/lexical_analysis.rst:1304 msgid "binary literal" msgstr "binary literal(二進位常數)" #: ../../reference/lexical_analysis.rst:1304 msgid "decimal literal" msgstr "decimal literal(十進位常數)" #: ../../reference/lexical_analysis.rst:1304 msgid "imaginary literal" msgstr "imaginary literal(虛數常數)" #: ../../reference/lexical_analysis.rst:1304 msgid "complex literal" msgstr "complex literal(複數常數)" #: ../../reference/lexical_analysis.rst:1326 msgid "0b" msgstr "0b" #: ../../reference/lexical_analysis.rst:1326 msgid "0o" msgstr "0o" #: ../../reference/lexical_analysis.rst:1326 msgid "0x" msgstr "0x" #: ../../reference/lexical_analysis.rst:1326 #: ../../reference/lexical_analysis.rst:1401 msgid "_ (underscore)" msgstr "_ (底線)" #: ../../reference/lexical_analysis.rst:1326 #: ../../reference/lexical_analysis.rst:1401 #: ../../reference/lexical_analysis.rst:1465 msgid "in numeric literal" msgstr "於數值常數中" #: ../../reference/lexical_analysis.rst:1401 msgid ". (dot)" msgstr ". (點)" #: ../../reference/lexical_analysis.rst:1401 msgid "e" msgstr "e" #: ../../reference/lexical_analysis.rst:1465 msgid "j" msgstr "j" #: ../../reference/lexical_analysis.rst:1535 msgid "operators" msgstr "operators(運算子)" #: ../../reference/lexical_analysis.rst:1535 msgid "delimiters" msgstr "delimiters(分隔符號)" #~ msgid "The equal sign ``'='``." #~ msgstr "等號 ``'='``。"