From 8b1b443bb6331d0fbf3165a8c16466d54cbb7d3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sat, 14 Jan 2023 21:14:46 +0100 Subject: [PATCH] Traducido reference/expressions Closes #1902 --- reference/expressions.po | 315 +++++++++++++++++++++++---------------- 1 file changed, 188 insertions(+), 127 deletions(-) diff --git a/reference/expressions.po b/reference/expressions.po index 0ac1915fe9..fedb1749ae 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -13,12 +13,12 @@ msgstr "" "POT-Creation-Date: 2022-10-25 19:47+0200\n" "PO-Revision-Date: 2021-08-02 19:31+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.10.3\n" #: ../Doc/reference/expressions.rst:6 @@ -330,7 +330,6 @@ msgstr "" "alcance implícitamente anidado." #: ../Doc/reference/expressions.rst:215 -#, fuzzy msgid "" "Since Python 3.6, in an :keyword:`async def` function, an :keyword:`!async " "for` clause may be used to iterate over a :term:`asynchronous iterator`. A " @@ -343,16 +342,17 @@ msgid "" "`asynchronous comprehension`. An asynchronous comprehension may suspend the " "execution of the coroutine function in which it appears. See also :pep:`530`." msgstr "" -"A partir de Python 3.6, en una función :keyword:`async def`, una cláusula :" -"keyword:`!async for` puede ser usada para iterar sobre un :term:" -"`asynchronous iterator`. Una comprensión en una función :keyword:`!async " -"def` puede consistir en una cláusula :keyword:`!for` o :keyword:`!async for` " -"siguiendo la expresión inicial, puede contener cláusulas adicionales :" -"keyword:`!for` o :keyword:`!async for` y también pueden usar expresiones :" -"keyword:`await`. Si una comprensión contiene cláusulas :keyword:`!async for` " -"o expresiones :keyword:`!await` es denominada una :dfn:`asynchronous " -"comprehension`. Una comprensión asincrónica puede suspender la ejecución de " -"la función de corrutina en la cual aparece. Vea también :pep:`530`." +"Desde Python 3.6, en una función :keyword:`async def`, se puede usar una " +"cláusula :keyword:`!async for` para iterar sobre un :term:`asynchronous " +"iterator`. Una comprensión en una función :keyword:`!async def` puede " +"consistir en una cláusula :keyword:`!for` o :keyword:`!async for` después de " +"la expresión inicial, puede contener cláusulas :keyword:`!for` o :keyword:`!" +"async for` adicionales y también puede usar expresiones :keyword:`await`. Si " +"una comprensión contiene cláusulas :keyword:`!async for` o expresiones :" +"keyword:`!await` u otras comprensiones asíncronas, se denomina :dfn:" +"`comprensión asíncrona`. Una comprensión asíncrona puede suspender la " +"ejecución de la función de rutina en la que aparece. Véase también :pep:" +"`530`." #: ../Doc/reference/expressions.rst:227 msgid "Asynchronous comprehensions were introduced." @@ -368,6 +368,9 @@ msgid "" "Asynchronous comprehensions are now allowed inside comprehensions in " "asynchronous functions. Outer comprehensions implicitly become asynchronous." msgstr "" +"Las comprensiones asincrónicas ahora están permitidas dentro de las " +"comprensiones en funciones asincrónicas. Las comprensiones externas " +"implícitamente se vuelven asincrónicas." #: ../Doc/reference/expressions.rst:242 msgid "List displays" @@ -619,7 +622,6 @@ msgid "Yield expressions" msgstr "Expresiones yield" #: ../Doc/reference/expressions.rst:427 -#, fuzzy msgid "" "The yield expression is used when defining a :term:`generator` function or " "an :term:`asynchronous generator` function and thus can only be used in the " @@ -628,12 +630,12 @@ msgid "" "keyword:`async def` function's body causes that coroutine function to be an " "asynchronous generator function. For example::" msgstr "" -"La expresión yield se usa al definir una función :term:`generator` o una " -"función :term:`asynchronous generator` y, por lo tanto, solo se puede usar " -"en el cuerpo de una definición de función. Usar una expresión yield en el " -"cuerpo de una función hace que esa función sea un generador y usarla en el " -"cuerpo de una función :keyword:`async def` hace que la función de corrutina " -"sea un generador asincrónico. Por ejemplo::" +"La expresión de rendimiento se usa al definir una función :term:`generator` " +"o una función :term:`asynchronous generator` y, por lo tanto, solo se puede " +"usar en el cuerpo de una definición de función. El uso de una expresión de " +"rendimiento en el cuerpo de una función hace que esa función sea una función " +"generadora, y su uso en el cuerpo de una función :keyword:`async def` hace " +"que la función corrutina sea una función generadora asíncrona. Por ejemplo::" #: ../Doc/reference/expressions.rst:440 msgid "" @@ -665,7 +667,6 @@ msgstr "" "sección :ref:`asynchronous-generator-functions`." #: ../Doc/reference/expressions.rst:452 -#, fuzzy msgid "" "When a generator function is called, it returns an iterator known as a " "generator. That generator then controls the execution of the generator " @@ -684,22 +685,23 @@ msgid "" "`None`. Otherwise, if :meth:`~generator.send` is used, then the result will " "be the value passed in to that method." msgstr "" -"Cuando una función generadora es invocada, retorna un iterador conocido como " -"un generador. Este generador controla la ejecución de la función generadora. " -"La ejecución empieza cuando uno de los métodos del generador es invocado. En " -"ese momento, la ejecución procede a la primera expresión yield, donde es " -"suspendida de nuevo, retornando el valor de :token:`expression_list` al " -"invocador del generador. Por suspendido, nos referimos a que se retiene todo " -"el estado local, incluyendo los enlaces actuales de variables locales, el " -"puntero de instrucción, la pila de evaluación interna y el estado de " -"cualquier manejo de excepción. Cuando la ejecución se reanuda al invocar uno " -"de los métodos del generador, la función puede proceder como si la expresión " -"yield fuera sólo otra invocación externa. El valor de la expresión yield " -"después de la reanudación depende del método que ha reanudado la ejecución. " -"Si se usa :meth:`~generator.__next__` (típicamente mediante un :keyword:" -"`for` o la función incorporada :func:`next`) entonces el resultado es :const:" -"`None`. De otra forma, si se usa :meth:`~generator.send`, entonces el " -"resultado será el valor pasado a ese método." +"Cuando se llama a una función de generador, devuelve un iterador conocido " +"como generador. Ese generador luego controla la ejecución de la función del " +"generador. La ejecución comienza cuando se llama a uno de los métodos del " +"generador. En ese momento, la ejecución procede a la primera expresión de " +"rendimiento, donde se suspende nuevamente, devolviendo el valor de :token:" +"`~python-grammar:expression_list` a la persona que llama al generador. Por " +"suspendido, queremos decir que se retiene todo el estado local, incluidos " +"los enlaces actuales de las variables locales, el puntero de instrucción, la " +"pila de evaluación interna y el estado de cualquier manejo de excepción. " +"Cuando se reanuda la ejecución llamando a uno de los métodos del generador, " +"la función puede proceder exactamente como si la expresión de rendimiento " +"fuera simplemente otra llamada externa. El valor de la expresión de " +"rendimiento después de reanudar depende del método que reanudó la ejecución. " +"Si se utiliza :meth:`~generator.__next__` (normalmente mediante un :keyword:" +"`for` o el :func:`next` integrado), el resultado es :const:`None`. De lo " +"contrario, si se usa :meth:`~generator.send`, el resultado será el valor " +"pasado a ese método." #: ../Doc/reference/expressions.rst:470 msgid "" @@ -806,13 +808,12 @@ msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" msgstr ":pep:`380` - Sintaxis para Delegar a un Subgenerador" #: ../Doc/reference/expressions.rst:516 -#, fuzzy msgid "" "The proposal to introduce the :token:`~python-grammar:yield_from` syntax, " "making delegation to subgenerators easy." msgstr "" -"La propuesta para introducir la sintaxis :token:`yield_from`, facilitando la " -"delegación a subgeneradores." +"La propuesta de introducir la sintaxis :token:`~python-grammar:yield_from`, " +"facilitando la delegación a subgeneradores." #: ../Doc/reference/expressions.rst:520 msgid ":pep:`525` - Asynchronous Generators" @@ -848,7 +849,6 @@ msgstr "" "excepción :exc:`ValueError`." #: ../Doc/reference/expressions.rst:540 -#, fuzzy msgid "" "Starts the execution of a generator function or resumes it at the last " "executed yield expression. When a generator function is resumed with a :" @@ -859,14 +859,14 @@ msgid "" "caller. If the generator exits without yielding another value, a :exc:" "`StopIteration` exception is raised." msgstr "" -"Comienza la ejecución de una función generadora o la reanuda en la última " -"expresión yield ejecutada. Cuando una función generadora es reanudada con un " -"método :meth:`~generator.__next__`, la expresión yield actual siempre evalúa " -"a :const:`None`. La ejecución entonces continúa a la siguiente expresión " -"yield, donde el generador se suspende de nuevo y el valor de :token:" -"`expression_list` se retorna al invocador de :meth:`__next__`. Si el " -"generador termina sin producir otro valor, se genera una excepción :exc:" -"`StopIteration`." +"Inicia la ejecución de una función generadora o la reanuda en la última " +"expresión de rendimiento ejecutada. Cuando se reanuda una función de " +"generador con un método :meth:`~generator.__next__`, la expresión de " +"rendimiento actual siempre se evalúa como :const:`None`. Luego, la ejecución " +"continúa con la siguiente expresión de rendimiento, donde el generador se " +"suspende nuevamente y el valor de :token:`~python-grammar:expression_list` " +"se devuelve a la persona que llama a :meth:`__next__`. Si el generador sale " +"sin generar otro valor, se genera una excepción :exc:`StopIteration`." #: ../Doc/reference/expressions.rst:549 msgid "" @@ -895,7 +895,6 @@ msgstr "" "expresión yield que pueda recibir el valor." #: ../Doc/reference/expressions.rst:567 -#, fuzzy msgid "" "Raises an exception at the point where the generator was paused, and returns " "the next value yielded by the generator function. If the generator exits " @@ -903,18 +902,19 @@ msgid "" "If the generator function does not catch the passed-in exception, or raises " "a different exception, then that exception propagates to the caller." msgstr "" -"Genera una excepción de tipo ``type`` en el punto donde el generador fue " -"pausado y retorna el siguiente valor producido por la función generadora. Si " -"el generador termina sin producir otro valor se genera una excepción :exc:" -"`StopIteration`. Si la función generadora no caza la excepción pasada o " -"genera una excepción diferente, entonces se propaga esa excepción al " -"invocador." +"Genera una excepción en el punto donde se pausó el generador y devuelve el " +"siguiente valor generado por la función del generador. Si el generador sale " +"sin generar otro valor, se genera una excepción :exc:`StopIteration`. Si la " +"función del generador no detecta la excepción pasada o genera una excepción " +"diferente, esa excepción se propaga a la persona que llama." #: ../Doc/reference/expressions.rst:573 msgid "" "In typical use, this is called with a single exception instance similar to " "the way the :keyword:`raise` keyword is used." msgstr "" +"En el uso típico, esto se llama con una sola instancia de excepción similar " +"a la forma en que se usa la palabra clave :keyword:`raise`." #: ../Doc/reference/expressions.rst:576 msgid "" @@ -926,6 +926,14 @@ msgid "" "any existing :attr:`~BaseException.__traceback__` attribute stored in " "*value* may be cleared." msgstr "" +"Sin embargo, para la compatibilidad con versiones anteriores, se admite la " +"segunda firma, siguiendo una convención de versiones anteriores de Python. " +"El argumento *type* debe ser una clase de excepción y *value* debe ser una " +"instancia de excepción. Si no se proporciona *value*, se llama al " +"constructor *type* para obtener una instancia. Si se proporciona " +"*traceback*, se establece en la excepción; de lo contrario, se puede borrar " +"cualquier atributo :attr:`~BaseException.__traceback__` existente almacenado " +"en *value*." #: ../Doc/reference/expressions.rst:590 msgid "" @@ -1013,6 +1021,21 @@ msgid "" "`~agen.asend` is used, then the result will be the value passed in to that " "method." msgstr "" +"Llamar a uno de los métodos del generador asíncrono devuelve un objeto :term:" +"`awaitable` y la ejecución comienza cuando se espera este objeto. En ese " +"momento, la ejecución procede a la primera expresión de rendimiento, donde " +"se suspende nuevamente, devolviendo el valor de :token:`~python-grammar:" +"expression_list` a la rutina en espera. Al igual que con un generador, la " +"suspensión significa que se retiene todo el estado local, incluidos los " +"enlaces actuales de las variables locales, el puntero de instrucción, la " +"pila de evaluación interna y el estado de cualquier manejo de excepción. " +"Cuando se reanuda la ejecución esperando el siguiente objeto devuelto por " +"los métodos del generador asíncrono, la función puede proceder exactamente " +"como si la expresión de rendimiento fuera simplemente otra llamada externa. " +"El valor de la expresión de rendimiento después de reanudar depende del " +"método que reanudó la ejecución. Si se utiliza :meth:`~agen.__anext__`, el " +"resultado es :const:`None`. De lo contrario, si se usa :meth:`~agen.asend`, " +"el resultado será el valor pasado a ese método." #: ../Doc/reference/expressions.rst:664 msgid "" @@ -1103,7 +1126,6 @@ msgstr "" "los cuales son usados para controlar la ejecución de una función generadora." #: ../Doc/reference/expressions.rst:711 -#, fuzzy msgid "" "Returns an awaitable which when run starts to execute the asynchronous " "generator or resumes it at the last executed yield expression. When an " @@ -1117,16 +1139,17 @@ msgid "" "`StopAsyncIteration` exception, signalling that the asynchronous iteration " "has completed." msgstr "" -"Retorna un esperable el cual, cuando corre, comienza a ejecutar el generador " -"asincrónico o lo reanuda en la última expresión yield ejecutada. Cuando se " -"reanuda una función generadora asincrónica con un método :meth:`~agen." -"__anext__`, la expresión yield actual siempre evalúa a :const:`None` en el " -"esperable retornado, el cual cuando corre continuará a la siguiente " -"expresión yield. El valor de :token:`expression_list` de la expresión yield " -"es el valor de la excepción :exc:`StopIteration` generada por la corrutina " -"completa. Si el generador asincrónico termina sin producir otro valor, el " -"esperable en su lugar genera una excepción :exc:`StopAsyncIteration`, " -"señalando que la iteración asincrónica se ha completado." +"Devuelve un awaitable que, cuando se ejecuta, comienza a ejecutar el " +"generador asíncrono o lo reanuda en la última expresión de rendimiento " +"ejecutada. Cuando se reanuda una función de generador asíncrono con un " +"método :meth:`~agen.__anext__`, la expresión de rendimiento actual siempre " +"se evalúa como :const:`None` en el awaitable devuelto, que cuando se ejecuta " +"continuará con la siguiente expresión de rendimiento. El valor de :token:" +"`~python-grammar:expression_list` de la expresión de rendimiento es el valor " +"de la excepción :exc:`StopIteration` generada por la rutina de finalización. " +"Si el generador asíncrono sale sin generar otro valor, el awaitable genera " +"una excepción :exc:`StopAsyncIteration`, lo que indica que la iteración " +"asíncrona se ha completado." #: ../Doc/reference/expressions.rst:723 msgid "" @@ -1259,12 +1282,18 @@ msgid "" "term:`generic class ` will generally return a :ref:" "`GenericAlias ` object." msgstr "" +"La suscripción de una instancia de un :ref:`container class ` generalmente seleccionará un elemento del contenedor. La suscripción " +"de un :term:`generic class ` generalmente devolverá un objeto :" +"ref:`GenericAlias `." #: ../Doc/reference/expressions.rst:839 msgid "" "When an object is subscripted, the interpreter will evaluate the primary and " "the expression list." msgstr "" +"Cuando se subíndice un objeto, el intérprete evaluará el principal y la " +"lista de expresiones." #: ../Doc/reference/expressions.rst:842 msgid "" @@ -1275,6 +1304,13 @@ msgid "" "one of these methods. For more details on when ``__class_getitem__`` is " "called instead of ``__getitem__``, see :ref:`classgetitem-versus-getitem`." msgstr "" +"El principal debe evaluarse como un objeto que admita la suscripción. Un " +"objeto puede admitir la suscripción mediante la definición de uno o ambos :" +"meth:`~object.__getitem__` y :meth:`~object.__class_getitem__`. Cuando se " +"subíndice el principal, el resultado evaluado de la lista de expresiones se " +"pasará a uno de estos métodos. Para obtener más detalles sobre cuándo se " +"llama a ``__class_getitem__`` en lugar de ``__getitem__``, consulte :ref:" +"`classgetitem-versus-getitem`." #: ../Doc/reference/expressions.rst:849 msgid "" @@ -1282,28 +1318,31 @@ msgid "" "class:`tuple` containing the items of the expression list. Otherwise, the " "expression list will evaluate to the value of the list's sole member." msgstr "" +"Si la lista de expresiones contiene al menos una coma, se evaluará como un :" +"class:`tuple` que contiene los elementos de la lista de expresiones. De lo " +"contrario, la lista de expresiones evaluará el valor del único miembro de la " +"lista." #: ../Doc/reference/expressions.rst:853 -#, fuzzy msgid "" "For built-in objects, there are two types of objects that support " "subscription via :meth:`~object.__getitem__`:" msgstr "" -"Para objetos incorporados, hay dos tipos de objetos que soportan " -"subscripción:" +"Para los objetos integrados, hay dos tipos de objetos que admiten la " +"suscripción a través de :meth:`~object.__getitem__`:" #: ../Doc/reference/expressions.rst:856 -#, fuzzy msgid "" "Mappings. If the primary is a :term:`mapping`, the expression list must " "evaluate to an object whose value is one of the keys of the mapping, and the " "subscription selects the value in the mapping that corresponds to that key. " "An example of a builtin mapping class is the :class:`dict` class." msgstr "" -"Si el primario es un mapeo, la expresión de lista debe evaluar a un objeto " -"cuyo valor es una de las claves del mapeo y la subscripción selecciona el " -"valor en el mapeo que corresponda a esa clave. (La expresión de lista es una " -"tupla excepto si tiene exactamente un elemento.)" +"Mapeos. Si el principal es un :term:`mapping`, la lista de expresiones debe " +"evaluarse como un objeto cuyo valor es una de las claves de la asignación y " +"la suscripción selecciona el valor en la asignación que corresponde a esa " +"clave. Un ejemplo de una clase de asignación integrada es la clase :class:" +"`dict`." #: ../Doc/reference/expressions.rst:860 msgid "" @@ -1312,6 +1351,10 @@ msgid "" "following section). Examples of builtin sequence classes include the :class:" "`str`, :class:`list` and :class:`tuple` classes." msgstr "" +"Secuencias. Si el primario es un :term:`sequence`, la lista de expresiones " +"debe evaluarse como un :class:`int` o un :class:`slice` (como se explica en " +"la siguiente sección). Los ejemplos de clases de secuencia integradas " +"incluyen las clases :class:`str`, :class:`list` y :class:`tuple`." #: ../Doc/reference/expressions.rst:865 msgid "" @@ -1326,16 +1369,27 @@ msgid "" "method, subclasses overriding this method will need to explicitly add that " "support." msgstr "" +"La sintaxis formal no hace ninguna provisión especial para índices negativos " +"en :term:`sequences `. Sin embargo, todas las secuencias " +"integradas proporcionan un método :meth:`~object.__getitem__` que interpreta " +"los índices negativos añadiendo la longitud de la secuencia al índice para " +"que, por ejemplo, ``x[-1]`` seleccione el último elemento de ``x``. El valor " +"resultante debe ser un número entero no negativo menor que el número de " +"elementos de la secuencia, y la suscripción selecciona el elemento cuyo " +"índice es ese valor (contando desde cero). Dado que la compatibilidad con " +"los índices negativos y el corte se produce en el método :meth:`__getitem__` " +"del objeto, las subclases que invaliden este método deberán agregar " +"explícitamente esa compatibilidad." #: ../Doc/reference/expressions.rst:879 -#, fuzzy msgid "" "A :class:`string ` is a special kind of sequence whose items are " "*characters*. A character is not a separate data type but a string of " "exactly one character." msgstr "" -"Los elementos de una cadena de caracteres son caracteres. Un caracter no es " -"un tipo de datos separado sino una cadena de exactamente un caracter." +"Un :class:`string ` es un tipo especial de secuencia cuyos elementos " +"son *characters*. Un carácter no es un tipo de datos separado sino una " +"cadena de exactamente un carácter." #: ../Doc/reference/expressions.rst:887 msgid "Slicings" @@ -1434,7 +1488,6 @@ msgstr "" "`parameter`." #: ../Doc/reference/expressions.rst:983 -#, fuzzy msgid "" "If keyword arguments are present, they are first converted to positional " "arguments, as follows. First, a list of unfilled slots is created for the " @@ -1454,26 +1507,26 @@ msgid "" "specified, a :exc:`TypeError` exception is raised. Otherwise, the list of " "filled slots is used as the argument list for the call." msgstr "" -"Si hay argumentos de palabra clave, primero se convierten en argumentos " -"posicionales, como se indica a continuación. En primer lugar, se crea una " -"lista de ranuras sin rellenar para los parámetros formales. Si hay N " -"argumentos posicionales, se colocan en las primeras N ranuras. A " -"continuación, para cada argumento de palabra clave, el identificador se " -"utiliza para determinar la ranura correspondiente (si el identificador es el " -"mismo que el primer nombre de parámetro formal, se utiliza la primera " -"ranura, etc.). Si la ranura ya está llena, se genera una excepción :exc:" -"`TypeError`. De lo contrario, el valor del argumento se coloca en la ranura, " -"llenándolo (incluso si la expresión es ``None``, esta llena la ranura). " -"Cuando se han procesado todos los argumentos, las ranuras que aún no han " -"sido rellenadas se rellenan con el valor predeterminado correspondiente de " -"la definición de función. (Los valores predeterminados son calculados una " -"vez, cuando se define la función; por lo tanto, un objeto mutable como una " -"lista o diccionario utilizado como valor predeterminado será compartido por " -"todas las llamadas que no especifican un valor de argumento para la ranura " -"correspondiente; esto normalmente debe ser evitado.) Si hay ranuras sin " -"rellenar para las que no se especifica ningún valor predeterminado, se " -"genera una excepción :exc:`TypeError`. De lo contrario, la lista de ranuras " -"rellenas se utiliza como la lista de argumentos para la llamada." +"Si hay argumentos de palabras clave, primero se convierten en argumentos " +"posicionales, como se indica a continuación. Primero, se crea una lista de " +"espacios vacíos para los parámetros formales. Si hay N argumentos " +"posicionales, se colocan en las primeras N ranuras. A continuación, para " +"cada argumento de palabra clave, se usa el identificador para determinar el " +"espacio correspondiente (si el identificador es el mismo que el nombre del " +"primer parámetro formal, se usa el primer espacio, y así sucesivamente). Si " +"el espacio ya está ocupado, se genera una excepción :exc:`TypeError`. De lo " +"contrario, el argumento se coloca en el espacio, llenándolo (incluso si la " +"expresión es ``None``, llena el espacio). Cuando se han procesado todos los " +"argumentos, las ranuras que aún están sin llenar se llenan con el valor " +"predeterminado correspondiente de la definición de la función. (Los valores " +"predeterminados se calculan, una vez, cuando se define la función; por lo " +"tanto, un objeto mutable, como una lista o un diccionario utilizado como " +"valor predeterminado, será compartido por todas las llamadas que no " +"especifiquen un valor de argumento para la ranura correspondiente; esto " +"debería normalmente se evita.) Si hay ranuras sin llenar para las que no se " +"especifica ningún valor predeterminado, se genera una excepción :exc:" +"`TypeError`. De lo contrario, la lista de espacios ocupados se utiliza como " +"lista de argumentos para la llamada." #: ../Doc/reference/expressions.rst:1003 msgid "" @@ -1548,17 +1601,15 @@ msgstr "" "``*expression`` -- ver abajo). Así que::" #: ../Doc/reference/expressions.rst:1049 -#, fuzzy msgid "" "It is unusual for both keyword arguments and the ``*expression`` syntax to " "be used in the same call, so in practice this confusion does not often arise." msgstr "" -"Es inusual usar en la misma invocación tanto argumentos de palabra clave " -"como la sintaxis ``*expression``, así que en la práctica no surge esta " -"confusión." +"Es inusual que se utilicen argumentos de palabras clave y la sintaxis " +"``*expression`` en la misma llamada, por lo que en la práctica esta " +"confusión no suele surgir." #: ../Doc/reference/expressions.rst:1055 -#, fuzzy msgid "" "If the syntax ``**expression`` appears in the function call, ``expression`` " "must evaluate to a :term:`mapping`, the contents of which are treated as " @@ -1566,11 +1617,12 @@ msgid "" "given a value (by an explicit keyword argument, or from another unpacking), " "a :exc:`TypeError` exception is raised." msgstr "" -"Si la sintaxis ``*expression`` aparece en la invocación de función, " -"``expression`` debe evaluar a un :term:`mapping`, los contenidos del mismo " -"son tratados como argumentos de palabra clave adicionales. Si una palabra " -"clave está ya presente (como un argumento de palabra clave explícito o desde " -"otro desempaquetado), se genera una excepción :exc:`TypeError`." +"Si la sintaxis ``**expression`` aparece en la llamada de función, " +"``expression`` debe evaluarse como :term:`mapping`, cuyo contenido se trata " +"como argumentos de palabra clave adicionales. Si ya se ha dado un valor a un " +"parámetro que coincide con una clave (por un argumento de palabra clave " +"explícito o por otro desempaquetado), se genera una excepción :exc:" +"`TypeError`." #: ../Doc/reference/expressions.rst:1061 msgid "" @@ -1583,6 +1635,14 @@ msgid "" "parameter, if there is one, or if there is not, a :exc:`TypeError` exception " "is raised." msgstr "" +"Cuando se usa ``**expression``, cada clave en esta asignación debe ser una " +"cadena. Cada valor del mapeo se asigna al primer parámetro formal elegible " +"para la asignación de palabras clave cuyo nombre es igual a la clave. No es " +"necesario que una clave sea un identificador de Python (por ejemplo, ``\"max-" +"temp °F\"`` es aceptable, aunque no coincidirá con ningún parámetro formal " +"que pueda declararse). Si no hay ninguna coincidencia con un parámetro " +"formal, el par clave-valor se recopila mediante el parámetro ``**``; si lo " +"hay, o si no lo hay, se genera una excepción :exc:`TypeError`." #: ../Doc/reference/expressions.rst:1071 msgid "" @@ -2345,15 +2405,14 @@ msgstr "" "verdadero)." #: ../Doc/reference/expressions.rst:1553 -#, fuzzy msgid "" "Mappings (instances of :class:`dict`) compare equal if and only if they have " "equal ``(key, value)`` pairs. Equality comparison of the keys and values " "enforces reflexivity." msgstr "" -"Los mapeos (instancias de :class:`dict`) comparan igual si y sólo si tienen " -"pares `(clave, valor)` iguales. La comparación de igualdad de claves y " -"valores refuerza la reflexibilidad." +"Las asignaciones (instancias de :class:`dict`) se comparan iguales si y solo " +"si tienen pares ``(key, value)`` iguales. La comparación de igualdad de las " +"claves y los valores impone la reflexividad." #: ../Doc/reference/expressions.rst:1557 msgid "" @@ -2680,7 +2739,6 @@ msgid "Assignment expressions" msgstr "Expresiones de asignación" #: ../Doc/reference/expressions.rst:1745 -#, fuzzy msgid "" "An assignment expression (sometimes also called a \"named expression\" or " "\"walrus\") assigns an :token:`~python-grammar:expression` to an :token:" @@ -2688,8 +2746,9 @@ msgid "" "`~python-grammar:expression`." msgstr "" "Una expresión de asignación (a veces también llamada \"expresión con " -"nombre\" o \"walrus\") asigna un :token:`expression` a un :token:" -"`identifier`, mientras que también retorna el valor de :token:`expression`." +"nombre\" o \"morsa\") asigna un :token:`~python-grammar:expression` a un :" +"token:`~python-grammar:identifier`, al tiempo que devuelve el valor de el :" +"token:`~python-grammar:expression`." #: ../Doc/reference/expressions.rst:1750 msgid "One common use case is when handling matched regular expressions:" @@ -2708,6 +2767,11 @@ msgid "" "all other places where they can be used, parentheses are not required, " "including in ``if`` and ``while`` statements." msgstr "" +"Las expresiones de asignación deben estar entre paréntesis cuando se usan " +"como subexpresiones en expresiones de división, condicional, lambda, " +"argumento de palabra clave y comprensión si y en declaraciones ``assert`` y " +"``with``. En todos los demás lugares donde se pueden usar, no se requieren " +"paréntesis, incluidas las declaraciones ``if`` y ``while``." #: ../Doc/reference/expressions.rst:1771 msgid "See :pep:`572` for more details about assignment expressions." @@ -2840,7 +2904,6 @@ msgid "Operator precedence" msgstr "Prioridad de operador" #: ../Doc/reference/expressions.rst:1901 -#, fuzzy msgid "" "The following table summarizes the operator precedence in Python, from " "highest precedence (most binding) to lowest precedence (least binding). " @@ -2850,12 +2913,12 @@ msgid "" "group from right to left)." msgstr "" "La siguiente tabla resume la precedencia del operador en Python, desde la " -"precedencia más alta (más vinculante) hasta la precedencia más baja (menos " -"vinculante). Los operadores en el mismo cuadro tienen la misma precedencia. " -"A menos que la sintaxis se proporcione explícitamente, los operadores son " -"binarios. Los operadores en el mismo cuadro se agrupan de izquierda a " -"derecha (excepto para la exponenciación, que se agrupa de derecha a " -"izquierda)." +"precedencia más alta (la más vinculante) hasta la precedencia más baja (la " +"menos vinculante). Los operadores en el mismo cuadro tienen la misma " +"precedencia. A menos que se proporcione explícitamente la sintaxis, los " +"operadores son binarios. Los operadores en el mismo cuadro se agrupan de " +"izquierda a derecha (excepto la exponenciación y las expresiones " +"condicionales, que se agrupan de derecha a izquierda)." #: ../Doc/reference/expressions.rst:1907 msgid "" @@ -2901,9 +2964,8 @@ msgid "Subscription, slicing, call, attribute reference" msgstr "Subscripción, segmentación, invocación, referencia de atributo" #: ../Doc/reference/expressions.rst:1924 -#, fuzzy msgid ":keyword:`await x `" -msgstr ":keyword:`await` ``x``" +msgstr ":keyword:`await x `" #: ../Doc/reference/expressions.rst:1926 msgid "``**``" @@ -2986,9 +3048,8 @@ msgid "Comparisons, including membership tests and identity tests" msgstr "Comparaciones, incluyendo comprobaciones de membresía y de identidad" #: ../Doc/reference/expressions.rst:1948 -#, fuzzy msgid ":keyword:`not x `" -msgstr ":keyword:`or`" +msgstr ":keyword:`not x `" #: ../Doc/reference/expressions.rst:1948 msgid "Boolean NOT"