@@ -46,8 +46,8 @@ msgid ""
46
46
"Is there a source code level debugger with breakpoints, single-stepping, "
47
47
"etc.?"
48
48
msgstr ""
49
- "Existe um depurador a nível de código-fonte quepossui breakpoints, single- "
50
- "stepping e etc.?"
49
+ "Existe um depurador a nível de código-fonte quepossuo pontos de interrupção "
50
+ "(breakpoints), single-stepping etc.?"
51
51
52
52
#: ../../faq/programming.rst:17 ../../faq/programming.rst:57
53
53
msgid "Yes."
@@ -93,6 +93,12 @@ msgid ""
93
93
"the `ActivePython <https://www.activestate.com/products/python/>`_ "
94
94
"distribution."
95
95
msgstr ""
96
+ "O PythonWin é uma IDE feita para o Python que inclui um depurador de GUI "
97
+ "baseado no pdb. O depurador PythonWin colora os pontos de interrupção e tem "
98
+ "alguns recursos legais, como a depuração de programas que não são PythonWin. "
99
+ "O PythonWin está disponível como parte do projeto `pywin32 <https://github."
100
+ "com/mhammond/pywin32>`_ e como parte da distribuição `ActivePython <https://"
101
+ "www.activestate.com/products/python/>`_."
96
102
97
103
#: ../../faq/programming.rst:38
98
104
msgid ""
@@ -107,6 +113,8 @@ msgid ""
107
113
"`trepan3k <https://github.com/rocky/python3-trepan/>`_ is a gdb-like "
108
114
"debugger."
109
115
msgstr ""
116
+ "`trepan3k <https://github.com/rocky/python3-trepan/>`_ é um depurador "
117
+ "similar ao gdb."
110
118
111
119
#: ../../faq/programming.rst:43
112
120
msgid ""
@@ -126,15 +134,15 @@ msgstr ""
126
134
127
135
#: ../../faq/programming.rst:49
128
136
msgid "`Wing IDE <https://wingware.com/>`_"
129
- msgstr ""
137
+ msgstr "`Wing IDE <https://wingware.com/>`_ "
130
138
131
139
#: ../../faq/programming.rst:50
132
140
msgid "`Komodo IDE <https://www.activestate.com/products/komodo-ide/>`_"
133
- msgstr ""
141
+ msgstr "`Komodo IDE <https://www.activestate.com/products/komodo-ide/>`_ "
134
142
135
143
#: ../../faq/programming.rst:51
136
144
msgid "`PyCharm <https://www.jetbrains.com/pycharm/>`_"
137
- msgstr ""
145
+ msgstr "`PyCharm <https://www.jetbrains.com/pycharm/>`_ "
138
146
139
147
#: ../../faq/programming.rst:55
140
148
msgid "Are there tools to help find bugs or perform static analysis?"
@@ -225,29 +233,32 @@ msgstr ""
225
233
226
234
#: ../../faq/programming.rst:97
227
235
msgid "`Nuitka <https://nuitka.net/>`_ (Cross-platform)"
228
- msgstr ""
236
+ msgstr "`Nuitka <https://nuitka.net/>`_ (Multiplataforma) "
229
237
230
238
#: ../../faq/programming.rst:98
231
239
msgid "`PyInstaller <http://www.pyinstaller.org/>`_ (Cross-platform)"
232
- msgstr ""
240
+ msgstr "`PyInstaller <http://www.pyinstaller.org/>`_ (Multiplataforma) "
233
241
234
242
#: ../../faq/programming.rst:99
235
243
msgid ""
236
244
"`PyOxidizer <https://pyoxidizer.readthedocs.io/en/stable/>`_ (Cross-platform)"
237
245
msgstr ""
246
+ "`PyOxidizer <https://pyoxidizer.readthedocs.io/en/stable/>`_ "
247
+ "(Multiplataforma)"
238
248
239
249
#: ../../faq/programming.rst:100
240
250
msgid ""
241
251
"`cx_Freeze <https://marcelotduarte.github.io/cx_Freeze/>`_ (Cross-platform)"
242
252
msgstr ""
253
+ "`cx_Freeze <https://marcelotduarte.github.io/cx_Freeze/>`_ (Multiplataforma)"
243
254
244
255
#: ../../faq/programming.rst:101
245
256
msgid "`py2app <https://github.com/ronaldoussoren/py2app>`_ (macOS only)"
246
- msgstr ""
257
+ msgstr "`py2app <https://github.com/ronaldoussoren/py2app>`_ (somente macOS) "
247
258
248
259
#: ../../faq/programming.rst:102
249
260
msgid "`py2exe <http://www.py2exe.org/>`_ (Windows only)"
250
- msgstr ""
261
+ msgstr "`py2exe <http://www.py2exe.org/>`_ (somente Windows) "
251
262
252
263
#: ../../faq/programming.rst:105
253
264
msgid "Are there coding standards or a style guide for Python programs?"
@@ -364,6 +375,14 @@ msgid ""
364
375
"a component of an imported module. This clutter would defeat the usefulness "
365
376
"of the ``global`` declaration for identifying side-effects."
366
377
msgstr ""
378
+ "Embora um pouco surpreendente no início, um momento de consideração explica "
379
+ "isso. Por um lado, exigir :keyword:`global` para variáveis atribuídas "
380
+ "fornece uma barreira contra efeitos colaterais indesejados. Por outro lado, "
381
+ "se ``global`` fosse necessário para todas as referências globais, você "
382
+ "estaria usando ``global`` o tempo todo. Você teria que declarar como global "
383
+ "todas as referências a uma função embutida ou a um componente de um módulo "
384
+ "importado. Essa desordem anularia a utilidade da declaração de ``global`` "
385
+ "para identificar efeitos colaterais."
367
386
368
387
#: ../../faq/programming.rst:201
369
388
msgid ""
@@ -708,11 +727,11 @@ msgid ""
708
727
"tuple and the keyword arguments as a dictionary. You can then pass these "
709
728
"arguments when calling another function by using ``*`` and ``**``::"
710
729
msgstr ""
711
- "Preceda os argumentoscom o uso de especificadores(asteriscos) ``*`` ou "
712
- "``**`` na lista de parâmetros da função; Isso faz com que os argumentos "
713
- "posicionais como uma tupla e oskeyword arguments sejam passados como um "
714
- "dicionário. Poderás, também, passar esses argumentos ao invocar outra função "
715
- "usando ``*`` e ``**``::"
730
+ "Colete os argumentosusando os especificadores ``*`` ou ``**`` na lista de "
731
+ "parâmetros da função. Isso faz com que os argumentos posicionais como tupla "
732
+ "e osargumentos nomeados sejam passados como um dicionário. Você pode, "
733
+ "também, passar esses argumentos ao invocar outra função usando ``*`` e "
734
+ "``**``::"
716
735
717
736
#: ../../faq/programming.rst:408
718
737
msgid "What is the difference between arguments and parameters?"
@@ -827,6 +846,15 @@ msgid ""
827
846
"copy of ``y``, you'll instead end up with ``None``, which will likely cause "
828
847
"your program to generate an easily diagnosed error."
829
848
msgstr ""
849
+ "Algumas operações (por exemplo, ``y.append(10)`` e ``y.sort()``) alteram o "
850
+ "objeto, enquanto operações superficialmente semelhantes (por exemplo ``y = y "
851
+ "+ [10]`` e ``sorted(y)``) cria um novo objeto. Em geral em Python (e em "
852
+ "todos os casos na biblioteca padrão) um método que transforma um objeto "
853
+ "retornará ``None`` para ajudar a evitar confundir os dois tipos de "
854
+ "operações. Portanto, se você escrever por engano ``y.sort()`` pensando que "
855
+ "lhe dará uma cópia ordenada de ``y``, você terminará com ``None``, o que "
856
+ "provavelmente fará com que seu programa gere um erro facilmente "
857
+ "diagnosticado."
830
858
831
859
#: ../../faq/programming.rst:480
832
860
msgid ""
@@ -837,6 +865,12 @@ msgid ""
837
865
"mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += "
838
866
"1`` create new objects)."
839
867
msgstr ""
868
+ "No entanto, há uma classe de operações em que a mesma operação às vezes tem "
869
+ "comportamentos diferentes com tipos diferentes: os operadores de atribuição "
870
+ "aumentada. Por exemplo, ``+=`` transforma listas, mas não tuplas ou ints "
871
+ "(``a_list += [1, 2, 3]`` é equivalente a``a_list.extend([1, 2, 3])`` a "
872
+ "altera ``a_list``, sendo que ``some_tuple += (1, 2, 3)`` e ``some_int += 1`` "
873
+ "cria novos objetos)."
840
874
841
875
#: ../../faq/programming.rst:487
842
876
msgid "In other words:"
@@ -1028,6 +1062,10 @@ msgid ""
1028
1062
"``def`` and ``class`` statements, but in that case the value is a callable. "
1029
1063
"Consider the following code::"
1030
1064
msgstr ""
1065
+ "De um modo geral, não pode, porque os objetos realmente não têm nomes. "
1066
+ "Essencialmente, a atribuição sempre liga um nome a um valor; o mesmo é "
1067
+ "verdade para as instruções ``def`` e ``class``, mas nesse caso o valor é um "
1068
+ "chamável. Considere o seguinte código::"
1031
1069
1032
1070
#: ../../faq/programming.rst:670
1033
1071
msgid ""
@@ -1068,6 +1106,11 @@ msgid ""
1068
1106
"so the only way to find out what it's called is to ask all your neighbours "
1069
1107
"(namespaces) if it's their cat (object)..."
1070
1108
msgstr ""
1109
+ "Da mesma forma que você pega o nome daquele gato que encontrou na sua "
1110
+ "varanda: o próprio gato (objeto) não pode lhe dizer o seu nome, e ele "
1111
+ "realmente não se importa -- então a única maneira de descobrir como ele se "
1112
+ "chama é perguntar a todos os seus vizinhos (espaços de nomes) se é o gato "
1113
+ "deles (objeto)..."
1071
1114
1072
1115
#: ../../faq/programming.rst:688
1073
1116
msgid ""
@@ -1135,13 +1178,15 @@ msgstr ""
1135
1178
1136
1179
#: ../../faq/programming.rst:734
1137
1180
msgid "Is it possible to write obfuscated one-liners in Python?"
1138
- msgstr ""
1181
+ msgstr "É possível escrever instruções de uma só linha ofuscadas em Python? "
1139
1182
1140
1183
#: ../../faq/programming.rst:736
1141
1184
msgid ""
1142
1185
"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!"
1143
1186
"lambda`. See the following three examples, due to Ulf Bartelt::"
1144
1187
msgstr ""
1188
+ "sim. Normalmente, isso é feito aninhando :keyword:`lambda` dentro de :"
1189
+ "keyword:`!lambda`. Veja os três exemplos a seguir, devido a Ulf Bartelt::"
1145
1190
1146
1191
#: ../../faq/programming.rst:763
1147
1192
msgid "Don't try this at home, kids!"
@@ -1160,13 +1205,22 @@ msgid ""
1160
1205
"position. For example, :func:`divmod` is a function that accepts positional-"
1161
1206
"only parameters. Its documentation looks like this::"
1162
1207
msgstr ""
1208
+ "Uma barra na lista de argumentos de uma função indica que os parâmetros "
1209
+ "anteriores são somente-posicionais. Parâmetros somente-posicionais são "
1210
+ "aqueles sem um nome utilizável externamente. Ao chamar uma função que aceita "
1211
+ "parâmetros somente-posicionais, os argumentos são mapeados para parâmetros "
1212
+ "com base apenas em sua posição. Por exemplo, :func:`divmod` é uma função que "
1213
+ "aceita parâmetros somente-posicionais. Sua documentação se parece com isto::"
1163
1214
1164
1215
#: ../../faq/programming.rst:784
1165
1216
msgid ""
1166
1217
"The slash at the end of the parameter list means that both parameters are "
1167
1218
"positional-only. Thus, calling :func:`divmod` with keyword arguments would "
1168
1219
"lead to an error::"
1169
1220
msgstr ""
1221
+ "A barra no final da lista de parâmetros significa que ambos os parâmetros "
1222
+ "são somente-posicionais. Assim, chamar :func:`divmod` com argumentos "
1223
+ "nomeados levaria a um erro::"
1170
1224
1171
1225
#: ../../faq/programming.rst:795
1172
1226
msgid "Numbers and strings"
@@ -1215,6 +1269,9 @@ msgid ""
1215
1269
"identity to hold, and then compilers that truncate ``i // j`` need to make "
1216
1270
"``i % j`` have the same sign as ``i``."
1217
1271
msgstr ""
1272
+ "então a divisão inteira deve retornar o piso. C também requer que essa "
1273
+ "identidade seja mantida, e então os compiladores que truncarem ``i // j`` "
1274
+ "precisam fazer com que ``i % j`` tenham o mesmo sinal que ``i``."
1218
1275
1219
1276
#: ../../faq/programming.rst:832
1220
1277
msgid ""
@@ -1224,6 +1281,11 @@ msgid ""
1224
1281
"say 200 hours ago? ``-190 % 12 == 2`` is useful; ``-190 % 12 == -10`` is a "
1225
1282
"bug waiting to bite."
1226
1283
msgstr ""
1284
+ "Existem poucos casos de uso reais para ``i % j`` quando ``j`` é negativo. "
1285
+ "Quando ``j`` é positivo, existem muitos, e em virtualmente todos eles é mais "
1286
+ "útil para ``i % j`` ser ``>= 0``. Se o relógio marca 10 agora, o que dizia "
1287
+ "há 200 horas? ``-190 % 12 == 2`` é útil, enquanto ``-190 % 12 == -10`` é um "
1288
+ "bug esperando para morder."
1227
1289
1228
1290
#: ../../faq/programming.rst:840
1229
1291
msgid "How do I convert a string to a number?"
@@ -1248,6 +1310,12 @@ msgid ""
1248
1310
"the number is interpreted using Python's rules: a leading '0o' indicates "
1249
1311
"octal, and '0x' indicates a hex number."
1250
1312
msgstr ""
1313
+ "Por padrão, eles interpretam o número como decimal, de modo que "
1314
+ "``int('0144') == 144`` é verdadeiro e ``int('0x144')`` levanta :exc:"
1315
+ "`ValueError`. ``int(string, base)`` toma a base para converter como um "
1316
+ "segundo argumento opcional, então ``int( '0x144', 16) == 324``. Se a base "
1317
+ "for especificada como 0, o número é interpretado usando as regras do Python: "
1318
+ "um\" 0o\" à esquerda indica octal e\" 0x\" indica um número hexadecimal."
1251
1319
1252
1320
#: ../../faq/programming.rst:853
1253
1321
msgid ""
@@ -1258,13 +1326,22 @@ msgid ""
1258
1326
"``__import__('os').system(\" rm -rf $HOME\" )`` which would erase your home "
1259
1327
"directory."
1260
1328
msgstr ""
1329
+ "Não use a função embutida :func:`eval` se tudo que você precisa é converter "
1330
+ "strings em números. :func:`eval` será significativamente mais lento e "
1331
+ "apresenta um risco de segurança: alguém pode passar a você uma expressão "
1332
+ "Python que pode ter efeitos colaterais indesejados. Por exemplo, alguém "
1333
+ "poderia passar ``__import__('os').system(\" rm -rf $HOME\" )`` que apagaria "
1334
+ "seu diretório pessoal."
1261
1335
1262
1336
#: ../../faq/programming.rst:860
1263
1337
msgid ""
1264
1338
":func:`eval` also has the effect of interpreting numbers as Python "
1265
1339
"expressions, so that e.g. ``eval('09')`` gives a syntax error because Python "
1266
1340
"does not allow leading '0' in a decimal number (except '0')."
1267
1341
msgstr ""
1342
+ ":func:`eval` também tem o efeito de interpretar números como expressões "
1343
+ "Python, para que, por exemplo, ``eval('09')`` dá um erro de sintaxe porque "
1344
+ "Python não permite '0' inicial em um número decimal (exceto '0')."
1268
1345
1269
1346
#: ../../faq/programming.rst:866
1270
1347
msgid "How do I convert a number to a string?"
@@ -2088,8 +2165,8 @@ msgid ""
2088
2165
"How do I call a method defined in a base class from a derived class that "
2089
2166
"extends it?"
2090
2167
msgstr ""
2091
- "Como eu chamo um método definido numa classe basederiavada de uma classe "
2092
- "que estende ela?"
2168
+ "Como eu chamo um método definido numa classe basederivada de uma classe que "
2169
+ "estende ela?"
2093
2170
2094
2171
#: ../../faq/programming.rst:1539
2095
2172
msgid "Use the built-in :func:`super` function::"
@@ -2185,7 +2262,7 @@ msgid ""
2185
2262
"using default arguments. For example::"
2186
2263
msgstr ""
2187
2264
"Em Python você tem que escrever um único construtor que pega todos os casos "
2188
- "usando argumentospadrões . Por exemplo:: "
2265
+ "usando argumentospadrão . Por exemplo::"
2189
2266
2190
2267
#: ../../faq/programming.rst:1640
2191
2268
msgid "This is not entirely equivalent, but close enough in practice."