@@ -10,16 +10,18 @@ msgid ""
10
10
msgstr ""
11
11
"Project-Id-Version : Python 3.7\n "
12
12
"Report-Msgid-Bugs-To : \n "
13
- "POT-Creation-Date : 2018-06-26 18:54 +0800\n "
14
- "PO-Revision-Date : 2018-05-23 16:18+0000 \n "
13
+ "POT-Creation-Date : 2018-05-23 22:27 +0800\n "
14
+ "PO-Revision-Date : 2018-09-07 17:30+0800 \n "
15
15
"Last-Translator : Adrian Liaw <adrianliaw2000@gmail.com>\n "
16
16
"Language-Team : Chinese - TAIWAN (https://github.com/python/python-docs-zh- "
17
17
"tw)\n "
18
18
"Language : zh_TW\n "
19
19
"MIME-Version : 1.0\n "
20
20
"Content-Type : text/plain; charset=UTF-8\n "
21
21
"Content-Transfer-Encoding : 8bit\n "
22
+ "Language : zh_TW\n "
22
23
"Plural-Forms : nplurals=1; plural=0;\n "
24
+ "X-Generator : Poedit 2.1.1\n "
23
25
24
26
#: ../../tutorial/controlflow.rst:5
25
27
msgid "More Control Flow Tools"
@@ -74,8 +76,8 @@ msgid ""
74
76
"intended):"
75
77
msgstr ""
76
78
"在 Python 中的 :keyword:`for` 陳述式可能不同於在 C 或 Pascal 中所看到的使用方"
77
- "式。與其只能选代 (iterate) 一個等差級數(如 Pascal),或給與使用者定義选代步 "
78
- "進方式與結束條件(如 C),Python 的 :keyword:`for` 陳述选代任何序列 (list 或"
79
+ "式。與其只能疊代 (iterate) 一個等差級數(如 Pascal),或給與使用者定義疊代步 "
80
+ "進方式與結束條件(如 C),Python 的 :keyword:`for` 陳述疊代任何序列 (list 或"
79
81
"者字串)的元素,以他們出現在序列中的順序。例如(無意雙關):\n"
80
82
"\n"
81
83
"::"
@@ -87,8 +89,8 @@ msgid ""
87
89
"first make a copy. Iterating over a sequence does not implicitly make a "
88
90
"copy. The slice notation makes this especially convenient::"
89
91
msgstr ""
90
- "如果你在迴圈中需要修改一個你正在选代的序列 (例如重複一些選擇的元素),那麼會"
91
- "建議你先建立一個序列的拷貝。选代序列並不暗示建立新的拷貝 。此時 slice 語法就讓"
92
+ "如果你在迴圈中需要修改一個你正在疊代的序列 (例如重複一些選擇的元素),那麼會"
93
+ "建議你先建立一個序列的拷貝。疊代序列並不暗示建立新的拷貝 。此時 slice 語法就讓"
92
94
"這件事十分容易完成:\n"
93
95
"\n"
94
96
"::"
@@ -98,6 +100,8 @@ msgid ""
98
100
"With ``for w in words:``, the example would attempt to create an infinite "
99
101
"list, inserting ``defenestrate`` over and over again."
100
102
msgstr ""
103
+ "在 ``for w in words:`` 的情況,這個例子會試著重覆不斷地插入 "
104
+ "``defenestrate``,產生一個無限長的 list。"
101
105
102
106
#: ../../tutorial/controlflow.rst:88
103
107
msgid "The :func:`range` Function"
@@ -108,7 +112,7 @@ msgid ""
108
112
"If you do need to iterate over a sequence of numbers, the built-in function :"
109
113
"func:`range` comes in handy. It generates arithmetic progressions::"
110
114
msgstr ""
111
- "如果你需要选代一個數列的話 ,使用內建 :func:`range` 函式就很方便。它可以生成一"
115
+ "如果你需要疊代一個數列的話 ,使用內建 :func:`range` 函式就很方便。它可以生成一"
112
116
"等差級數:\n"
113
117
"\n"
114
118
"::"
@@ -122,7 +126,7 @@ msgid ""
122
126
msgstr ""
123
127
"給定的結束值永遠不會出現在生成的序列中;\\ ``range(10)`` 生成的 10 個數值,即"
124
128
"對應存取一個長度為 10 的序列內每一個元素的索引值。也可以讓 range 從其他數值計"
125
- "數,或者給定不同的級距(甚至為負;有時稱之為 ' step' ):\n"
129
+ "數,或者給定不同的級距(甚至為負;有時稱之為 step):\n"
126
130
"\n"
127
131
"::"
128
132
@@ -131,8 +135,7 @@ msgid ""
131
135
"To iterate over the indices of a sequence, you can combine :func:`range` "
132
136
"and :func:`len` as follows::"
133
137
msgstr ""
134
- "欲选代一個序列的索引值們,你可以搭配使用 :func:`range` 和 :func:`len` 如"
135
- "下:\n"
138
+ "欲疊代一個序列的索引值,你可以搭配使用 :func:`range` 和 :func:`len` 如下:\n"
136
139
"\n"
137
140
"::"
138
141
@@ -159,7 +162,7 @@ msgid ""
159
162
"really make the list, thus saving space."
160
163
msgstr ""
161
164
"在很多情況下,由 :func:`range` 回傳的物件的行為如同一個 list,但實際上它並不"
162
- "是。它是一個物件在你选代時會回傳想要的序列的連續元素 ,並不會真正建出這個序列"
165
+ "是。它是一個物件在你疊代時會回傳想要的序列的連續元素 ,並不會真正建出這個序列"
163
166
"的 list,以節省空間。"
164
167
165
168
#: ../../tutorial/controlflow.rst:142
@@ -170,10 +173,10 @@ msgid ""
170
173
"keyword:`for` statement is such an *iterator*. The function :func:`list` is "
171
174
"another; it creates lists from iterables::"
172
175
msgstr ""
173
- "我們稱這樣的物件為 *iterable*\\ (可选代的 ),意即能作為函式、陳述式中能一直"
176
+ "我們稱這樣的物件為 *iterable*\\ (可疊代的 ),意即能作為函式、陳述式中能一直"
174
177
"獲取連續元素直到用盡的部件。我們已經看過 :keyword:`for` 陳述式可做為如此的 "
175
- "*iterator*\\ (选代器 )。:func:`list` 函式為另一個例子,他可以自 iterable(可"
176
- "选代物件 )建立 list:\n"
178
+ "*iterator*\\ (疊代器 )。:func:`list` 函式為另一個例子,他可以自 iterable(可"
179
+ "疊代物件 )建立 list:\n"
177
180
"\n"
178
181
"::"
179
182
@@ -195,6 +198,8 @@ msgid ""
195
198
"The :keyword:`break` statement, like in C, breaks out of the innermost "
196
199
"enclosing :keyword:`for` or :keyword:`while` loop."
197
200
msgstr ""
201
+ ":keyword:`break` 陳述,如同 C 語言,終止包含其最內部的 :keyword:`for` 或 :"
202
+ "keyword:`while` 迴圈。"
198
203
199
204
#: ../../tutorial/controlflow.rst:163
200
205
msgid ""
@@ -204,7 +209,7 @@ msgid ""
204
209
"terminated by a :keyword:`break` statement. This is exemplified by the "
205
210
"following loop, which searches for prime numbers::"
206
211
msgstr ""
207
- "迴圈可以帶有一個 ``else`` 段落。當迴圈歷遍选代的 list (在 :keyword:`for` "
212
+ "迴圈可以帶有一個 ``else`` 段落。當迴圈歷遍疊代的 list (在 :keyword:`for` "
208
213
"中)或條件為偽(在 :keyword:`while` 中)時,這個段落會被執行;但迴圈被 :"
209
214
"keyword:`break` 陳述終止時則不會。底下尋找質數的迴圈即示範了這個行為:\n"
210
215
"\n"
@@ -237,7 +242,7 @@ msgid ""
237
242
"The :keyword:`continue` statement, also borrowed from C, continues with the "
238
243
"next iteration of the loop::"
239
244
msgstr ""
240
- ":keyword:`continue` 陳述,亦承襲於 C 語言,讓迴圈於下個选代起繼續執行 :\n"
245
+ ":keyword:`continue` 陳述,亦承襲於 C 語言,讓所屬的迴圈繼續執行下個疊代 :\n"
241
246
"\n"
242
247
"::"
243
248
@@ -270,7 +275,7 @@ msgid ""
270
275
"ignored::"
271
276
msgstr ""
272
277
":keyword:`pass` 亦可作為一個函式或條件判斷主體的預留位置,它可幫助你以更宏觀"
273
- "的角度思考並撰寫新的程式碼。\\ :keyword:`pass` 可自動忽略 :\n"
278
+ "的角度思考並撰寫新的程式碼。\\ :keyword:`pass` 可被忽略 :\n"
274
279
"\n"
275
280
"::"
276
281
@@ -283,6 +288,9 @@ msgid ""
283
288
"We can create a function that writes the Fibonacci series to an arbitrary "
284
289
"boundary::"
285
290
msgstr ""
291
+ "我們可以建立一個函式來產生費式數列到任何一個上界:\n"
292
+ "\n"
293
+ "::"
286
294
287
295
#: ../../tutorial/controlflow.rst:265
288
296
msgid ""
@@ -291,6 +299,8 @@ msgid ""
291
299
"parameters. The statements that form the body of the function start at the "
292
300
"next line, and must be indented."
293
301
msgstr ""
302
+ "關鍵字 :keyword:`def` 帶入一個函式的\\ *定義*。它之後必須連著該函式的名稱和置"
303
+ "於括號之中的參數。自下一行起,所有縮排的陳述成為該函式的主體。"
294
304
295
305
#: ../../tutorial/controlflow.rst:270
296
306
msgid ""
@@ -302,6 +312,11 @@ msgid ""
302
312
"through code; it's good practice to include docstrings in code that you "
303
313
"write, so make a habit of it."
304
314
msgstr ""
315
+ "一個函式的第一個陳述可以是一個字串值;此情況該字串值被視為該函式的說明文件字"
316
+ "串,即 :dfn:`docstring`\\ 。(關於 docstring 的細節請參見\\ :ref:`tut-"
317
+ "docstrings`\\ 段落。)有些工具可以使用 docstring 來自動產生線上或可列印的文"
318
+ "件,或讓使用者能自由地自原始碼中瀏覽文件。在原始碼中加入 docstring 是個好慣"
319
+ "例,應該養成這樣的習慣。"
305
320
306
321
#: ../../tutorial/controlflow.rst:277
307
322
msgid ""
@@ -314,6 +329,11 @@ msgid ""
314
329
"assigned a value within a function (unless named in a :keyword:`global` "
315
330
"statement), although they may be referenced."
316
331
msgstr ""
332
+ "函式執行期間會建立一個新的符號表(symbol table)來儲存該函式內的區域變數。更"
333
+ "精確地說,所有在函式內的變數賦值都會把該值儲存在一個區域符號表。然而,在讀取"
334
+ "一個變數時,會先從區域符號表起搜尋,其次為所有包含其函式的區域符號表,其次為"
335
+ "全域符號表,最後為所有內建的名稱。因此,在函式中,全域變數無法被直接賦值(除"
336
+ "非該變數有被 :keyword:`global` 陳述句提及),但它們可以被讀取。"
317
337
318
338
#: ../../tutorial/controlflow.rst:286
319
339
msgid ""
@@ -323,6 +343,10 @@ msgid ""
323
343
"*reference*, not the value of the object). [#]_ When a function calls "
324
344
"another function, a new local symbol table is created for that call."
325
345
msgstr ""
346
+ "在一個函式被呼叫的時候,實際傳入的參數(引數)會被加入至該函數的區域符號表。"
347
+ "因此,引數傳入的方式為\\ *傳值呼叫 (call by value)*\\ (這裡傳遞的「值」永遠"
348
+ "是一個物件的\\ *參照(reference)*\\ ,而不是該物件的值)。\\ [#]_ 當一個函式"
349
+ "呼叫別的函式時,在被呼叫的函式中會建立一個新的區域符號表。"
326
350
327
351
#: ../../tutorial/controlflow.rst:292
328
352
msgid ""
@@ -332,6 +356,11 @@ msgid ""
332
356
"another name which can then also be used as a function. This serves as a "
333
357
"general renaming mechanism::"
334
358
msgstr ""
359
+ "一個函式定義會把該函式名稱加入至當前的符號表。該函式名稱的值帶有一個型別,並"
360
+ "被直譯器辨識為使用者自定函式(user-defined function)。該值可以被賦予給別的變"
361
+ "數名,而該變數也可以被當作函式使用。這即是常見的重新命名方式:\n"
362
+ "\n"
363
+ "::"
335
364
336
365
#: ../../tutorial/controlflow.rst:304
337
366
msgid ""
@@ -343,23 +372,35 @@ msgid ""
343
372
"the only value written. You can see it if you really want to using :func:"
344
373
"`print`::"
345
374
msgstr ""
375
+ "如果你是來自別的語言,你可能不同意 ``fib`` 是個函式,而是個程序 (procedure),"
376
+ "因為它並沒有回傳值。實際上,即使一個函式缺少一個 :keyword:`return` 陳述,它亦"
377
+ "有一個固定的回傳值。這個值為 ``None``\\ (它是一個內建名稱)。在直譯器中單獨"
378
+ "使用 ``None`` 時,通常不會被顯示。你可以使用 :func:`print` 來看到它:\n"
379
+ "\n"
380
+ "::"
346
381
347
382
#: ../../tutorial/controlflow.rst:315
348
383
msgid ""
349
384
"It is simple to write a function that returns a list of the numbers of the "
350
385
"Fibonacci series, instead of printing it::"
351
386
msgstr ""
387
+ "如果要寫一個函式回傳費式數列的 list 而不是直接印出它,這也很容易:\n"
388
+ "\n"
389
+ "::"
352
390
353
391
#: ../../tutorial/controlflow.rst:331
354
392
msgid "This example, as usual, demonstrates some new Python features:"
355
- msgstr ""
393
+ msgstr "這個例子一樣示範了一些新的 Python 特性: "
356
394
357
395
#: ../../tutorial/controlflow.rst:333
358
396
msgid ""
359
397
"The :keyword:`return` statement returns with a value from a function. :"
360
398
"keyword:`return` without an expression argument returns ``None``. Falling "
361
399
"off the end of a function also returns ``None``."
362
400
msgstr ""
401
+ ":keyword:`return` 陳述會讓一個函式回傳一個值。單獨使用 :keyword:`return` 不外"
402
+ "加一個表達式作為引數會回傳 ``None``\\ 。一個函式執行到結束也會回傳 ``None``"
403
+ "\\ 。"
363
404
364
405
#: ../../tutorial/controlflow.rst:337
365
406
msgid ""
@@ -374,6 +415,14 @@ msgid ""
374
415
"for list objects; it adds a new element at the end of the list. In this "
375
416
"example it is equivalent to ``result = result + [a]``, but more efficient."
376
417
msgstr ""
418
+ "``result.append(a)`` 陳述呼叫了一個 list 物件的 ``result`` *method(方法)*。"
419
+ "method 為「屬於」一個物件的函式,命名規則為 ``obj.methodname``\\ ,其中 "
420
+ "``obj`` 為某個物件(亦可為一表達式),而 ``methodname`` 為該 method 的名稱,"
421
+ "並由該物件的型別所定義。不同的型別代表不同的 method。不同型別的 method 可以擁"
422
+ "有一樣的名稱而不會讓 Python 混淆。(你可以使用 *class* 定義自己的物件型別和 "
423
+ "method,見 :ref:`tut-classes`\\ )這裡 :meth:`append` method 定義在 list 物件"
424
+ "中;它會加入一個新的元素在該 list 的末端。這個例子等同於 ``result = result + "
425
+ "[a]``\\ ,但更有效率。"
377
426
378
427
#: ../../tutorial/controlflow.rst:352
379
428
msgid "More on Defining Functions"
0 commit comments