@@ -46,8 +46,8 @@ msgid ""
4646"Is there a source code level debugger with breakpoints, single-stepping, "
4747"etc.?"
4848msgstr ""
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.?"
5151
5252#: ../../faq/programming.rst:17 ../../faq/programming.rst:57
5353msgid "Yes."
@@ -93,6 +93,12 @@ msgid ""
9393"the `ActivePython <https://www.activestate.com/products/python/>`_ "
9494"distribution."
9595msgstr ""
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/>`_."
96102
97103#: ../../faq/programming.rst:38
98104msgid ""
@@ -107,6 +113,8 @@ msgid ""
107113"`trepan3k <https://github.com/rocky/python3-trepan/>`_ is a gdb-like "
108114"debugger."
109115msgstr ""
116+ "`trepan3k <https://github.com/rocky/python3-trepan/>`_ é um depurador "
117+ "similar ao gdb."
110118
111119#: ../../faq/programming.rst:43
112120msgid ""
@@ -126,15 +134,15 @@ msgstr ""
126134
127135#: ../../faq/programming.rst:49
128136msgid "`Wing IDE <https://wingware.com/>`_"
129- msgstr ""
137+ msgstr "`Wing IDE <https://wingware.com/>`_ "
130138
131139#: ../../faq/programming.rst:50
132140msgid "`Komodo IDE <https://www.activestate.com/products/komodo-ide/>`_"
133- msgstr ""
141+ msgstr "`Komodo IDE <https://www.activestate.com/products/komodo-ide/>`_ "
134142
135143#: ../../faq/programming.rst:51
136144msgid "`PyCharm <https://www.jetbrains.com/pycharm/>`_"
137- msgstr ""
145+ msgstr "`PyCharm <https://www.jetbrains.com/pycharm/>`_ "
138146
139147#: ../../faq/programming.rst:55
140148msgid "Are there tools to help find bugs or perform static analysis?"
@@ -225,29 +233,32 @@ msgstr ""
225233
226234#: ../../faq/programming.rst:97
227235msgid "`Nuitka <https://nuitka.net/>`_ (Cross-platform)"
228- msgstr ""
236+ msgstr "`Nuitka <https://nuitka.net/>`_ (Multiplataforma) "
229237
230238#: ../../faq/programming.rst:98
231239msgid "`PyInstaller <http://www.pyinstaller.org/>`_ (Cross-platform)"
232- msgstr ""
240+ msgstr "`PyInstaller <http://www.pyinstaller.org/>`_ (Multiplataforma) "
233241
234242#: ../../faq/programming.rst:99
235243msgid ""
236244"`PyOxidizer <https://pyoxidizer.readthedocs.io/en/stable/>`_ (Cross-platform)"
237245msgstr ""
246+ "`PyOxidizer <https://pyoxidizer.readthedocs.io/en/stable/>`_ "
247+ "(Multiplataforma)"
238248
239249#: ../../faq/programming.rst:100
240250msgid ""
241251"`cx_Freeze <https://marcelotduarte.github.io/cx_Freeze/>`_ (Cross-platform)"
242252msgstr ""
253+ "`cx_Freeze <https://marcelotduarte.github.io/cx_Freeze/>`_ (Multiplataforma)"
243254
244255#: ../../faq/programming.rst:101
245256msgid "`py2app <https://github.com/ronaldoussoren/py2app>`_ (macOS only)"
246- msgstr ""
257+ msgstr "`py2app <https://github.com/ronaldoussoren/py2app>`_ (somente macOS) "
247258
248259#: ../../faq/programming.rst:102
249260msgid "`py2exe <http://www.py2exe.org/>`_ (Windows only)"
250- msgstr ""
261+ msgstr "`py2exe <http://www.py2exe.org/>`_ (somente Windows) "
251262
252263#: ../../faq/programming.rst:105
253264msgid "Are there coding standards or a style guide for Python programs?"
@@ -364,6 +375,14 @@ msgid ""
364375"a component of an imported module. This clutter would defeat the usefulness "
365376"of the ``global`` declaration for identifying side-effects."
366377msgstr ""
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."
367386
368387#: ../../faq/programming.rst:201
369388msgid ""
@@ -708,11 +727,11 @@ msgid ""
708727"tuple and the keyword arguments as a dictionary. You can then pass these "
709728"arguments when calling another function by using ``*`` and ``**``::"
710729msgstr ""
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+ "``**``::"
716735
717736#: ../../faq/programming.rst:408
718737msgid "What is the difference between arguments and parameters?"
@@ -827,6 +846,15 @@ msgid ""
827846"copy of ``y``, you'll instead end up with ``None``, which will likely cause "
828847"your program to generate an easily diagnosed error."
829848msgstr ""
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."
830858
831859#: ../../faq/programming.rst:480
832860msgid ""
@@ -837,6 +865,12 @@ msgid ""
837865"mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += "
838866"1`` create new objects)."
839867msgstr ""
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)."
840874
841875#: ../../faq/programming.rst:487
842876msgid "In other words:"
@@ -1028,6 +1062,10 @@ msgid ""
10281062"``def`` and ``class`` statements, but in that case the value is a callable. "
10291063"Consider the following code::"
10301064msgstr ""
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::"
10311069
10321070#: ../../faq/programming.rst:670
10331071msgid ""
@@ -1068,6 +1106,11 @@ msgid ""
10681106"so the only way to find out what it's called is to ask all your neighbours "
10691107"(namespaces) if it's their cat (object)..."
10701108msgstr ""
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)..."
10711114
10721115#: ../../faq/programming.rst:688
10731116msgid ""
@@ -1135,13 +1178,15 @@ msgstr ""
11351178
11361179#: ../../faq/programming.rst:734
11371180msgid "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? "
11391182
11401183#: ../../faq/programming.rst:736
11411184msgid ""
11421185"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!"
11431186"lambda`. See the following three examples, due to Ulf Bartelt::"
11441187msgstr ""
1188+ "sim. Normalmente, isso é feito aninhando :keyword:`lambda` dentro de :"
1189+ "keyword:`!lambda`. Veja os três exemplos a seguir, devido a Ulf Bartelt::"
11451190
11461191#: ../../faq/programming.rst:763
11471192msgid "Don't try this at home, kids!"
@@ -1160,13 +1205,22 @@ msgid ""
11601205"position. For example, :func:`divmod` is a function that accepts positional-"
11611206"only parameters. Its documentation looks like this::"
11621207msgstr ""
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::"
11631214
11641215#: ../../faq/programming.rst:784
11651216msgid ""
11661217"The slash at the end of the parameter list means that both parameters are "
11671218"positional-only. Thus, calling :func:`divmod` with keyword arguments would "
11681219"lead to an error::"
11691220msgstr ""
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::"
11701224
11711225#: ../../faq/programming.rst:795
11721226msgid "Numbers and strings"
@@ -1215,6 +1269,9 @@ msgid ""
12151269"identity to hold, and then compilers that truncate ``i // j`` need to make "
12161270"``i % j`` have the same sign as ``i``."
12171271msgstr ""
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``."
12181275
12191276#: ../../faq/programming.rst:832
12201277msgid ""
@@ -1224,6 +1281,11 @@ msgid ""
12241281"say 200 hours ago? ``-190 % 12 == 2`` is useful; ``-190 % 12 == -10`` is a "
12251282"bug waiting to bite."
12261283msgstr ""
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."
12271289
12281290#: ../../faq/programming.rst:840
12291291msgid "How do I convert a string to a number?"
@@ -1248,6 +1310,12 @@ msgid ""
12481310"the number is interpreted using Python's rules: a leading '0o' indicates "
12491311"octal, and '0x' indicates a hex number."
12501312msgstr ""
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."
12511319
12521320#: ../../faq/programming.rst:853
12531321msgid ""
@@ -1258,13 +1326,22 @@ msgid ""
12581326"``__import__('os').system(\" rm -rf $HOME\" )`` which would erase your home "
12591327"directory."
12601328msgstr ""
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."
12611335
12621336#: ../../faq/programming.rst:860
12631337msgid ""
12641338":func:`eval` also has the effect of interpreting numbers as Python "
12651339"expressions, so that e.g. ``eval('09')`` gives a syntax error because Python "
12661340"does not allow leading '0' in a decimal number (except '0')."
12671341msgstr ""
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')."
12681345
12691346#: ../../faq/programming.rst:866
12701347msgid "How do I convert a number to a string?"
@@ -2088,8 +2165,8 @@ msgid ""
20882165"How do I call a method defined in a base class from a derived class that "
20892166"extends it?"
20902167msgstr ""
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?"
20932170
20942171#: ../../faq/programming.rst:1539
20952172msgid "Use the built-in :func:`super` function::"
@@ -2185,7 +2262,7 @@ msgid ""
21852262"using default arguments. For example::"
21862263msgstr ""
21872264"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::"
21892266
21902267#: ../../faq/programming.rst:1640
21912268msgid "This is not entirely equivalent, but close enough in practice."