diff --git a/.idea/python-docs-de.iml b/.idea/python-docs-de.iml new file mode 100644 index 0000000..38a5f26 --- /dev/null +++ b/.idea/python-docs-de.iml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/bugs.po b/bugs.po index 22836f4..0dc1ad0 100644 --- a/bugs.po +++ b/bugs.po @@ -6,14 +6,13 @@ # Translators: # python-doc bot, 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-21 14:16+0000\n" -"PO-Revision-Date: 2025-09-16 00:00+0000\n" -"Last-Translator: python-doc bot, 2025\n" +"PO-Revision-Date: 2026-08-10 00:00+0000\n" +""Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -35,12 +34,12 @@ msgstr "" msgid "" "It can be sometimes faster to fix bugs yourself and contribute patches to " -"Python as it streamlines the process and involves less people. Learn how to :" -"ref:`contribute `." +"Python as it streamlines the process and involves less people. Learn how " +"to :ref:`contribute `." msgstr "" "Manchmal kann es schneller sein, Fehler selbst zu beheben und Patches zu " "Python beizutragen, da dies den Prozess beschleunigt und weniger Menschen " -"involviert. Erfahren Sie, wie Sie :ref:`beitragen ` " +"involviert. Erfahren Sie, wie Sie :ref:`beitragen ` " "können." msgid "Documentation bugs" @@ -52,12 +51,19 @@ msgid "" "the-tracker>`. If you have a suggestion on how to fix it, include that as " "well." msgstr "" +"Wenn du einen Fehler in dieser Dokumentation findest oder einen " +"Verbesserungsvorschlag hast, reiche bitte einen Fehlerbericht im :ref:`Issue-" +"Tracker ` ein. Wenn du einen Vorschlag zur Behebung hast, füge " +"diesen bitte ebenfalls bei." msgid "" "If the bug or suggested improvement concerns the translation of this " "documentation, submit the report to the `translation’s repository " "`_ instead." msgstr "" +"Wenn der Fehler oder der Verbesserungsvorschlag die Übersetzung dieser " +"Dokumentation betrifft, reiche den Bericht stattdessen im `Repository der " +"Übersetzung `_ ein." msgid "" "You can also open a discussion item on our `Documentation Discourse forum " @@ -72,6 +78,9 @@ msgid "" "documentation, please submit a bug report on the `python-doc-theme issue " "tracker `_." msgstr "" +"Wenn du einen Fehler im Theme (HTML / CSS / JavaScript) der Dokumentation " +"findest, reiche bitte einen Fehlerbericht im `python-doc-theme Issue-Tracker " +"`_ ein." msgid "`Documentation bugs`_" msgstr "`Dokumentationsfehler`_" @@ -204,8 +213,8 @@ msgid "" "`How to Report Bugs Effectively `_" msgstr "" -"`Effektiv Fehler melden `_ " +"`Effektiv Fehler melden `_ " msgid "" "Article which goes into some detail about how to create a useful bug report. " @@ -219,8 +228,8 @@ msgid "" "`Bug Writing Guidelines `_" msgstr "" -"`Richtlinien zum Schreiben eines Fehlerberichts `_ " +"`Richtlinien zum Schreiben eines Fehlerberichts `_ " msgid "" "Information about writing a good bug report. Some of this is specific to " diff --git a/glossary.po b/glossary.po index 8107873..6501092 100644 --- a/glossary.po +++ b/glossary.po @@ -22,7 +22,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Glossary" -msgstr "" +msgstr "Glossar" msgid "``>>>``" msgstr "``>>>``" @@ -31,12 +31,15 @@ msgid "" "The default Python prompt of the :term:`interactive` shell. Often seen for " "code examples which can be executed interactively in the interpreter." msgstr "" +"Die Standard-Python-Eingabeaufforderung der :term:`interaktiven` Shell. " +"Wird häufig bei Code-Beispielen verwendet, die interaktiv im Interpreter " +"ausgeführt werden können." msgid "``...``" msgstr "``...``" msgid "Can refer to:" -msgstr "" +msgstr "Kann sich beziehen auf:" msgid "" "The default Python prompt of the :term:`interactive` shell when entering the " @@ -44,13 +47,19 @@ msgid "" "right delimiters (parentheses, square brackets, curly braces or triple " "quotes), or after specifying a decorator." msgstr "" +"Die Standard-Python-Eingabeaufforderung der :term:`interactive`-Shell bei " +"der Eingabe von Code für einen eingerückten Codeblock, wenn dieser sich " +"innerhalb eines Paares übereinstimmender linker und rechter Begrenzer " +"(Klammern, eckige Klammern, geschweifte Klammern oder dreifache " +"Anführungszeichen) befindet, oder nach der Angabe eines Dekorators." msgid "" "The three dots form of the :ref:`Ellipsis ` object." msgstr "" +"Die drei Punkte bilden das :ref:`Ellipsis- ` -Objekt." msgid "abstract base class" -msgstr "" +msgstr "Abstrakte Basisklasse" msgid "" "Abstract base classes complement :term:`duck-typing` by providing a way to " @@ -64,9 +73,20 @@ msgid "" "module), import finders and loaders (in the :mod:`importlib.abc` module). " "You can create your own ABCs with the :mod:`abc` module." msgstr "" +"Abstrakte Basisklassen (abstract base class / ABC) ergänzen :term:`Duck-Typing`, indem sie eine " +"Möglichkeit bieten, Schnittstellen zu definieren, wenn andere Techniken wie " +":func:`hasattr` umständlich oder in subtiler Weise falsch wären (zum " +"Beispiel bei :ref:`magischen Methoden `). ABCs führen " +"virtuelle Unterklassen ein – das sind Klassen, die nicht von einer Klasse " +"erben, aber dennoch von :func:`isinstance` und :func:`issubclass` erkannt " +"werden; siehe die Dokumentation zum Modul :mod:`abc`. Python enthält viele " +"integrierte ABCs für Datenstrukturen (im Modul :mod:`collections.abc` ), " +"Zahlen (im Modul :mod:`numbers` ), Streams (im Modul :mod:`io` ) sowie" +" Import-Finder und Loader (im Modul :mod:`importlib.abc` ). Mit dem Modul" +" :mod:`abc` können Sie eigene ABCs erstellen." msgid "annotate function" -msgstr "" +msgstr "Funktion annotate“ msgid "" "A function that can be called to retrieve the :term:`annotations " @@ -75,14 +95,23 @@ msgid "" "Annotate functions are a subset of :term:`evaluate functions `." msgstr "" +"Eine Callable-Funktion, die aufgerufen werden kann, um die " +":term:`Annotationen ` eines Objekts abzurufen. Annotate-" +"Funktionen sind in der Regel :term:`Funktionen `, die automatisch " +"als Attribut :attr:`~object.__annotate__` von Funktionen, Klassen und " +"Modulen generiert werden. Annotate-Funktionen sind eine Teilmenge der " +":term:`Evaluate-Funktionen `." msgid "annotation" -msgstr "" +msgstr "Anmerkung" msgid "" "A label associated with a variable, a class attribute or a function " "parameter or return value, used by convention as a :term:`type hint`." msgstr "" +"Eine Bezeichnung, die einer Variablen, einem Klassenattribut oder einem " +"Funktionsparameter bzw. Rückgabewert zugeordnet ist und üblicherweise als " +":term:`Typhinweis` verwendet wird." msgid "" "Annotations of local variables cannot be accessed at runtime, but " @@ -90,20 +119,30 @@ msgid "" "retrieved by calling :func:`annotationlib.get_annotations` on modules, " "classes, and functions, respectively." msgstr "" +"Auf Annotationen lokaler Variablen kann zur Laufzeit nicht zugegriffen " +"werden, doch Annotationen globaler Variablen, Klassenattribute und Funktionen " +"lassen sich durch Aufruf von :func:`annotationlib.get_annotations` für Module, " +"Klassen bzw. Funktionen abrufen." msgid "" "See :term:`variable annotation`, :term:`function annotation`, :pep:`484`, :" "pep:`526`, and :pep:`649`, which describe this functionality. Also see :ref:" "`annotations-howto` for best practices on working with annotations." msgstr "" +"Siehe :term:`Variablen-Annotation`, :term:`Funktions-Annotation`, " +":pep:`484`, :pep:`526` und :pep:`649`, wo diese Funktionalität beschrieben " +"wird. Siehe außerdem :ref:`annotations-howto` für bewährte Vorgehensweisen " +"beim Umgang mit Annotationen." msgid "argument" -msgstr "" +msgstr "Argument" msgid "" "A value passed to a :term:`function` (or :term:`method`) when calling the " "function. There are two kinds of argument:" msgstr "" +"Ein Wert, der beim Aufruf einer :term:`Funktion` (oder :term:`Methode`) an " +"diese übergeben wird. Es gibt zwei Arten von Argumenten:" msgid "" ":dfn:`keyword argument`: an argument preceded by an identifier (e.g. " @@ -111,11 +150,18 @@ msgid "" "by ``**``. For example, ``3`` and ``5`` are both keyword arguments in the " "following calls to :func:`complex`::" msgstr "" +":dfn:`Schlüsselwortargument`: Ein Argument, dem in einem Funktionsaufruf ein" +" Bezeichner vorangestellt ist (z. B. ``name=``) oder das in einem " +"Wörterbuch als Wert übergeben wird, dem ``**`` vorangestellt ist. " +"Beispielsweise sind sowohl ``3`` als auch ``5`` " +"Schlüsselwortargumente in den folgenden Aufrufen von :func:`complex` ::" msgid "" "complex(real=3, imag=5)\n" "complex(**{'real': 3, 'imag': 5})" msgstr "" +"complex(real=3, imag=5)\n" +"complex(**{'real': 3, 'imag': 5})" msgid "" ":dfn:`positional argument`: an argument that is not a keyword argument. " @@ -123,11 +169,18 @@ msgid "" "be passed as elements of an :term:`iterable` preceded by ``*``. For example, " "``3`` and ``5`` are both positional arguments in the following calls::" msgstr "" +":dfn:`Positionsargument`: Ein Argument, das kein Schlüsselwortargument ist. " +"Positionsargumente können am Anfang einer Argumentliste stehen und/oder als " +"Elemente eines :term:`iterable` übergeben werden, dem ``*`` " +"vorangestellt ist. Beispielsweise sind sowohl ``3`` als auch ``5`` " +"Positionsargumente in den folgenden Aufrufen::" msgid "" "complex(3, 5)\n" "complex(*(3, 5))" msgstr "" +"complex(3, 5)\n" +"complex(*(3, 5))" msgid "" "Arguments are assigned to the named local variables in a function body. See " @@ -135,48 +188,80 @@ msgid "" "Syntactically, any expression can be used to represent an argument; the " "evaluated value is assigned to the local variable." msgstr "" +"Argumente werden im Funktionskörper den benannten lokalen Variablen " +"zugewiesen. Die Regeln für diese Zuweisung finden Sie im Abschnitt " +":ref:`calls` . Syntaktisch kann jeder Ausdruck zur Darstellung eines " +"Arguments verwendet werden; der ausgewertete Wert wird der lokalen Variablen" +" zugewiesen." msgid "" "See also the :term:`parameter` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " "and :pep:`362`." msgstr "" +"Siehe auch den Glossareintrag zu :term:`parameter`, die FAQ-Frage zum " +":ref:`Unterschied zwischen Argumenten und Parametern ` sowie :pep:`362`." msgid "asynchronous context manager" -msgstr "" +msgstr "asynchroner Kontextmanager" msgid "" "An object which controls the environment seen in an :keyword:`async with` " "statement by defining :meth:`~object.__aenter__` and :meth:`~object." "__aexit__` methods. Introduced by :pep:`492`." msgstr "" +"Ein Objekt, das die in einer :keyword:`async with`-Anweisung angezeigte " +"Umgebung steuert, indem es die Methoden :meth:`~object.__aenter__` und " +" :meth:`~object.__aexit__` definiert. Eingeführt durch :pep:`492`." msgid "asynchronous generator" -msgstr "" +msgstr "asynchroner Generator" msgid "" -"A function which returns an :term:`asynchronous generator iterator`. It " -"looks like a coroutine function defined with :keyword:`async def` except " -"that it contains :keyword:`yield` expressions for producing a series of " -"values usable in an :keyword:`async for` loop." +msgid "" +"Informally used to mean either an :term:`asynchronous generator function` or" +" an :term:`asynchronous generator iterator`, depending on context. The " +"formal terms :term:`asynchronous generator function` and :term:`asynchronous" +" generator iterator` are uncommon in practice; \"asynchronous generator\" " +"alone is almost always sufficient." msgstr "" +"Wird umgangssprachlich je nach Kontext entweder für eine :term:`asynchrone " +"Generatorfunktion` oder einen :term:`asynchronen Generator-Iterator` " +"verwendet. Die formalen Begriffe :term:`asynchrone Generatorfunktion` und " +":term:`asynchroner Generator-Iterator` sind in der Praxis selten; " +"\"asynchroner Generator\“ allein reicht fast immer aus." + +msgid "asynchronous generator function" +msgstr "asynchrone Generatorfunktion" msgid "" -"Usually refers to an asynchronous generator function, but may refer to an " -"*asynchronous generator iterator* in some contexts. In cases where the " -"intended meaning isn't clear, using the full terms avoids ambiguity." +"A function which returns an :term:`asynchronous generator iterator`. It " +"looks like a coroutine function defined with :keyword:`async def` except " +"that it contains :keyword:`yield` expressions for producing a series of " +"values usable in an :keyword:`async for` loop. See :pep:`525`." msgstr "" +"Eine Funktion, die einen :term:`asynchronen Generator-Iterator` zurückgibt. " +"Sie ähnelt einer mit :keyword:`async def` definierten Coroutine-Funktion, " +"enthält jedoch Ausdrücke vom Typ :keyword:`yield`, um eine Reihe von Werten " +"zu erzeugen, die in einer :keyword:`async for`-Schleife verwendet werden " +"können. Siehe :pep:`525`." msgid "" "An asynchronous generator function may contain :keyword:`await` expressions " "as well as :keyword:`async for`, and :keyword:`async with` statements." msgstr "" +"Eine asynchrone Generatorfunktion kann sowohl :keyword:`await` -Ausdrücke " +"als auch :keyword:`async for`- und :keyword:`async with`-Anweisungen " +"enthalten." msgid "asynchronous generator iterator" -msgstr "" +msgstr "asynchrone Generator-Iterator" msgid "An object created by an :term:`asynchronous generator` function." msgstr "" +"Ein Objekt, das von einer :term:`asynchronen Generatorfunktion` erstellt " +"wurde." msgid "" "This is an :term:`asynchronous iterator` which when called using the :meth:" @@ -184,6 +269,10 @@ msgid "" "the body of the asynchronous generator function until the next :keyword:" "`yield` expression." msgstr "" +"Dies ist ein :term:`asynchroner Iterator`, der beim Aufruf mit der Methode " +" :meth:`~object.__anext__` ein awaitable-Objekt zurückgibt, das den " +"Körper der asynchronen Generatorfunktion bis zum nächsten :keyword:`yield`" +" -Ausdruck ausführt." msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " @@ -192,18 +281,27 @@ msgid "" "awaitable returned by :meth:`~object.__anext__`, it picks up where it left " "off. See :pep:`492` and :pep:`525`." msgstr "" +"Jeder :keyword:`yield` unterbricht die Verarbeitung vorübergehend und " +"speichert dabei den Ausführungsstatus (einschließlich lokaler Variablen und " +"ausstehender \"try\“-Anweisungen). Wenn der *asynchrone Generator-Iterator* " +"mit einem anderen von :meth:`~object.__anext__` zurückgegebenen " +"\"awaitable\“ effektiv fortgesetzt wird, setzt er die Ausführung an der Stelle" +" fort, an der er unterbrochen wurde. Siehe :pep:`492` und :pep:`525`." msgid "asynchronous iterable" -msgstr "" +msgstr "asynchrones Iterabel" msgid "" "An object, that can be used in an :keyword:`async for` statement. Must " "return an :term:`asynchronous iterator` from its :meth:`~object.__aiter__` " "method. Introduced by :pep:`492`." msgstr "" +"Ein Objekt, das in einer :keyword:`async for`-Anweisung verwendet werden " +"kann. Es muss über seine Methode :meth:`~object.__aiter__` einen " +":term:`asynchronen Iterator` zurückgeben. Eingeführt durch :pep:`492`." msgid "asynchronous iterator" -msgstr "" +msgstr "asynchroner Iterator" msgid "" "An object that implements the :meth:`~object.__aiter__` and :meth:`~object." @@ -212,17 +310,49 @@ msgid "" "an asynchronous iterator's :meth:`~object.__anext__` method until it raises " "a :exc:`StopAsyncIteration` exception. Introduced by :pep:`492`." msgstr "" +"Ein Objekt, das die Methoden :meth:`~object.__aiter__` und " +":meth:`~object.__anext__` implementiert. :meth:`~object.__anext__` " +"muss ein :term:`awaitable`-Objekt zurückgeben. :keyword:`async for` " +"verarbeitet die von der Methode :meth:`~object.__anext__` eines " +"asynchronen Iterators zurückgegebenen `awaitables`, bis eine Ausnahme vom " +"Typ :exc:`StopAsyncIteration` ausgelöst wird. Eingeführt durch " +":pep:`492`." + +msgid "atomic operation" +msgstr "atomare Operation" + +msgid "" +"An operation that appears to execute as a single, indivisible step: no other" +" thread can observe it half-done, and its effects become visible all at " +"once. Python does not guarantee that high-level statements are atomic (for " +"example, ``x += 1`` performs multiple bytecode operations and is not " +"atomic). Atomicity is only guaranteed where explicitly documented. See " +"also :term:`race condition` and :term:`data race`." +msgstr "" +"Eine Operation, die scheinbar als ein einziger, unteilbarer Schritt " +"ausgeführt wird: Kein anderer Thread kann sie in einem unvollendeten Zustand" +" beobachten, und ihre Auswirkungen werden auf einmal sichtbar. Python " +"garantiert nicht, dass Anweisungen auf hoher Ebene atomar sind " +"(beispielsweise führt ``x += 1`` mehrere Bytecode-Operationen aus und " +"ist nicht atomar). Atomarität wird nur dort garantiert, wo dies " +"ausdrücklich dokumentiert ist. Siehe auch :term:`Race Condition` und " +":term:`Data Race`." msgid "attached thread state" -msgstr "" +msgstr "Zustand des angehängten Threads" msgid "A :term:`thread state` that is active for the current OS thread." msgstr "" +"Ein :term:`Thread-Status`, der für den aktuellen Betriebssystem-Thread aktiv" +" ist." msgid "" "When a :term:`thread state` is attached, the OS thread has access to the " "full Python C API and can safely invoke the bytecode interpreter." msgstr "" +"Wenn ein :term:`Thread-Status` zugeordnet ist, hat der Betriebssystem-Thread" +" Zugriff auf die vollständige Python-C-API und kann den Bytecode-Interpreter" +" sicher aufrufen." msgid "" "Unless a function explicitly notes otherwise, attempting to call the C API " @@ -231,6 +361,12 @@ msgid "" "user through the C API, or implicitly by the runtime, including during " "blocking C calls and by the bytecode interpreter in between calls." msgstr "" +"Sofern in einer Funktion nicht ausdrücklich anders angegeben, führt der " +"Versuch, die C-API ohne angehängten Thread-Status aufzurufen, zu einem " +"schwerwiegenden Fehler oder zu undefiniertem Verhalten. Ein Thread-Status " +"kann vom Benutzer explizit über die C-API angehängt und entfernt werden oder" +" implizit von der Laufzeitumgebung, unter anderem während blockierender " +"C-Aufrufe und durch den Bytecode-Interpreter zwischen den Aufrufen." msgid "" "On most builds of Python, having an attached thread state implies that the " @@ -240,6 +376,13 @@ msgid "" "an attached thread state, allowing for true parallelism of the bytecode " "interpreter." msgstr "" +"Bei den meisten Python-Builds bedeutet ein zugeordneter Thread-Zustand, dass" +" der Aufrufer den :term:`GIL` für den aktuellen Interpreter hält, sodass zu " +"einem bestimmten Zeitpunkt nur ein Betriebssystem-Thread einen zugeordneten " +"Thread-Zustand haben kann. In :term:`free-threaded-Versionen ` von Python können mehrere Threads gleichzeitig einen angehängten " +"Thread-Status halten, was eine echte Parallelität des Bytecode-Interpreters " +"ermöglicht." msgid "attribute" msgstr "Attribut" @@ -249,6 +392,10 @@ msgid "" "dotted expressions. For example, if an object *o* has an attribute *a* it " "would be referenced as *o.a*." msgstr "" +"Ein Wert, der einem Objekt zugeordnet ist und auf den in der Regel mithilfe " +"von Punktnotation unter Angabe des Namens verwiesen wird. Wenn " +"beispielsweise ein Objekt *o* ein Attribut *a* hat, würde darauf als *o.a* " +"verwiesen werden." msgid "" "It is possible to give an object an attribute whose name is not an " @@ -257,26 +404,36 @@ msgid "" "using a dotted expression, and would instead need to be retrieved with :func:" "`getattr`." msgstr "" +"Es ist möglich, einem Objekt ein Attribut zuzuweisen, dessen Name kein " +"Bezeichner im Sinne von :ref:`identifiers` ist, beispielsweise mithilfe von " +":func:`setattr`, sofern das Objekt dies zulässt. Auf ein solches Attribut " +"kann nicht über einen Punktausdruck zugegriffen werden; stattdessen muss es " +"mit :func:`getattr` abgerufen werden." msgid "awaitable" -msgstr "" +msgstr "abwartbar" msgid "" "An object that can be used in an :keyword:`await` expression. Can be a :" "term:`coroutine` or an object with an :meth:`~object.__await__` method. See " "also :pep:`492`." msgstr "" +"Ein Objekt, das in einem Ausdruck vom Typ :keyword:`await` verwendet " +"werden kann. Kann eine :term:`coroutine` oder ein Objekt mit einer Methode " +"vom Typ :meth:`~object.__await__` sein. Siehe auch :pep:`492`." msgid "BDFL" -msgstr "" +msgstr "BDFL" msgid "" "Benevolent Dictator For Life, a.k.a. `Guido van Rossum `_, Python's creator." msgstr "" +"Wohltätiger Diktator auf Lebenszeit, auch bekannt als Guido van Rossum +"`_ , der Schöpfer von Python." msgid "binary file" -msgstr "" +msgstr "Binärdatei" msgid "" "A :term:`file object` able to read and write :term:`bytes-like objects " @@ -285,14 +442,21 @@ msgid "" "stdin>`, :data:`sys.stdout.buffer `, and instances of :class:`io." "BytesIO` and :class:`gzip.GzipFile`." msgstr "" +"Ein :term:`Dateiobjekt`, das :term:`byteähnliche Objekte ` lesen und schreiben kann. Beispiele für Binärdateien sind Dateien, " +"die im Binärmodus geöffnet wurden (``'rb'``, ``'wb'`` oder ``'rb+'``), " +":data:`sys.stdin.buffer `, :data:`sys.stdout.buffer `" +" sowie Instanzen von :class:`io.BytesIO` und :class:`gzip.GzipFile`." msgid "" "See also :term:`text file` for a file object able to read and write :class:" "`str` objects." msgstr "" +"Siehe auch :term:`Textdatei` für ein Dateiobjekt, das Objekte vom Typ " +":class:`str` lesen und schreiben kann." msgid "borrowed reference" -msgstr "" +msgstr "entlehnte Referenz" msgid "" "In Python's C API, a borrowed reference is a reference to an object, where " @@ -300,6 +464,11 @@ msgid "" "pointer if the object is destroyed. For example, a garbage collection can " "remove the last :term:`strong reference` to the object and so destroy it." msgstr "" +"In der C-API von Python ist eine ausgeliehene Referenz eine Referenz auf ein" +" Objekt, wobei der Code, der das Objekt verwendet, nicht Eigentümer der " +"Referenz ist. Sie wird zu einem dangling pointer, wenn das Objekt zerstört" +" wird. Beispielsweise kann eine Garbage Collection die letzte :term:`starke " +"Referenz` auf das Objekt entfernen und es so zerstören." msgid "" "Calling :c:func:`Py_INCREF` on the :term:`borrowed reference` is recommended " @@ -308,9 +477,15 @@ msgid "" "func:`Py_NewRef` function can be used to create a new :term:`strong " "reference`." msgstr "" +"Es wird empfohlen, die Funktion :c:func:`Py_INCREF` auf die " +":term:`geliehene Referenz` anzuwenden, um diese an Ort und Stelle in eine " +":term:`starke Referenz` umzuwandeln – es sei denn, das Objekt kann nicht vor" +" der letzten Verwendung der geliehenen Referenz zerstört werden. Mit der " +"Funktion :c:func:`Py_NewRef` kann eine neue :term:`starke Referenz` " +"erstellt werden." msgid "bytes-like object" -msgstr "" +msgstr "Byte-ähnliches Objekt" msgid "" "An object that supports the :ref:`bufferobjects` and can export a C-:term:" @@ -320,6 +495,14 @@ msgid "" "with binary data; these include compression, saving to a binary file, and " "sending over a socket." msgstr "" +"Ein Objekt, das die Schnittstelle :ref:`bufferobjects` unterstützt und " +"einen C-:term:`contiguous`-Puffer exportieren kann. Dazu gehören alle " +"Objekte vom Typ :class:`bytes` , :class:`bytearray` und " +":class:`array.array` sowie viele gängige Objekte vom Typ " +":class:`memoryview` . Bytes-ähnliche Objekte können für verschiedene " +"Operationen verwendet werden, die mit Binärdaten arbeiten; dazu gehören " +"Komprimierung, das Speichern in einer Binärdatei und das Senden über einen " +"Socket." msgid "" "Some operations need the binary data to be mutable. The documentation often " @@ -329,9 +512,17 @@ msgid "" "immutable objects (\"read-only bytes-like objects\"); examples of these " "include :class:`bytes` and a :class:`memoryview` of a :class:`bytes` object." msgstr "" +"Bei einigen Operationen müssen die Binärdaten veränderbar sein. In der " +"Dokumentation werden diese häufig als \"les- und schreibbare byteähnliche " +"Objekte\" bezeichnet. Beispiele für veränderbare Pufferobjekte sind " +":class:`bytearray` und ein :class:`memoryview` eines " +":class:`bytearray` -Objekts. Andere Operationen erfordern, dass die " +"Binärdaten in unveränderbaren Objekten (read-only bytes-like objects) " +"gespeichert werden; Beispiele hierfür sind :class:`bytes` und ein " +":class:`memoryview` eines :class:`bytes` -Objekts." msgid "bytecode" -msgstr "" +msgstr "Bytecode" msgid "" "Python source code is compiled into bytecode, the internal representation of " @@ -343,55 +534,80 @@ msgid "" "expected to work between different Python virtual machines, nor to be stable " "between Python releases." msgstr "" +"Python-Quellcode wird zu Bytecode kompiliert, der internen Darstellung eines" +" Python-Programms im CPython-Interpreter. Der Bytecode wird zudem in " +"``.pyc`` -Dateien zwischengespeichert, sodass die Ausführung derselben " +"Datei beim zweiten Mal schneller erfolgt (eine Neukompilierung vom Quellcode" +" zum Bytecode kann vermieden werden). Diese \"Zwischensprache\“ läuft auf " +"einer :term:`virtuellen Maschine`, die den jedem Bytecode entsprechenden " +"Maschinencode ausführt. Beachten Sie jedoch, dass Bytecodes nicht unbedingt " +"zwischen verschiedenen virtuellen Python-Maschinen funktionieren und auch " +"nicht über Python-Versionen hinweg stabil sind." msgid "" "A list of bytecode instructions can be found in the documentation for :ref:" "`the dis module `." msgstr "" +"Eine Liste der Bytecode-Befehle finden Sie in der Dokumentation zum " +":ref:`dis-Modul `." msgid "callable" -msgstr "" +msgstr "abrufbar" msgid "" "A callable is an object that can be called, possibly with a set of arguments " "(see :term:`argument`), with the following syntax::" msgstr "" +"Ein Callable ist ein Objekt, das aufgerufen werden kann, gegebenenfalls " +"mit einer Reihe von Argumenten (siehe :term:`argument`), und zwar mit " +"folgender Syntax::" msgid "callable(argument1, argument2, argumentN)" -msgstr "" +msgstr "callable(argument1, argument2, argumentN)" msgid "" "A :term:`function`, and by extension a :term:`method`, is a callable. An " "instance of a class that implements the :meth:`~object.__call__` method is " "also a callable." msgstr "" +"Eine :term:`Funktion` und im weiteren Sinne auch eine :term:`Methode` ist " +"ein aufrufbares Objekt. Eine Instanz einer Klasse, die die Methode " +":meth:`~object.__call__` implementiert, ist ebenfalls ein aufrufbares " +"Objekt." msgid "callback" -msgstr "" +msgstr "Callback" msgid "" "A subroutine function which is passed as an argument to be executed at some " "point in the future." msgstr "" +"Eine Unterprogrammfunktion, die als Argument übergeben wird, um zu einem " +"späteren Zeitpunkt ausgeführt zu werden." msgid "class" -msgstr "" +msgstr "Klasse" msgid "" "A template for creating user-defined objects. Class definitions normally " "contain method definitions which operate on instances of the class." msgstr "" +"Eine Vorlage zum Erstellen benutzerdefinierter Objekte. Klassendefinitionen " +"enthalten in der Regel Methodendefinitionen, die auf Instanzen der Klasse " +"angewendet werden." msgid "class variable" -msgstr "" +msgstr "Klassenvariable" msgid "" "A variable defined in a class and intended to be modified only at class " "level (i.e., not in an instance of the class)." msgstr "" +"Eine Variable, die in einer Klasse definiert ist und nur auf Klassenebene " +"(d. h. nicht in einer Instanz der Klasse) geändert werden soll." msgid "closure variable" -msgstr "" +msgstr "Schließvariable" msgid "" "A :term:`free variable` referenced from a :term:`nested scope` that is " @@ -400,12 +616,22 @@ msgid "" "`nonlocal` keyword to allow write access, or implicitly defined if the " "variable is only being read." msgstr "" +"Eine :term:`freie Variable`, auf die aus einem :term:`verschachtelten " +"Gültigkeitsbereich` verwiesen wird und die in einem äußeren " +"Gültigkeitsbereich definiert ist, anstatt zur Laufzeit aus den globalen oder" +" integrierten Namensräumen aufgelöst zu werden. Sie kann explizit mit dem " +"Schlüsselwort :keyword:`nonlocal` definiert werden, um Schreibzugriff zu" +" ermöglichen, oder implizit definiert werden, wenn die Variable nur gelesen " +"wird." msgid "" "For example, in the ``inner`` function in the following code, both ``x`` and " "``print`` are :term:`free variables `, but only ``x`` is a " "*closure variable*::" msgstr "" +"Beispielsweise sind in der Funktion ``inner`` im folgenden Code sowohl " +"``x`` als auch ``print``:term:`freie Variablen `, aber nur " +"``x`` ist eine *Closure-Variable*::" msgid "" "def outer():\n" @@ -416,6 +642,13 @@ msgid "" " print(x)\n" " return inner" msgstr "" +"def outer():\n" +" x = 0\n" +" def inner():\n" +" nonlocal x\n" +" x += 1\n" +" print(x)\n" +" return inner" msgid "" "Due to the :attr:`codeobject.co_freevars` attribute (which, despite its " @@ -424,9 +657,14 @@ msgid "" "sometimes used even when the intended meaning is to refer specifically to " "closure variables." msgstr "" +"Aufgrund des Attributs :attr:`codeobject.co_freevars` (das trotz seines " +"Namens lediglich die Namen von Closure-Variablen enthält, anstatt alle " +"referenzierten freien Variablen aufzulisten) wird der allgemeinere Begriff " +":term:`freie Variable` manchmal verwendet, selbst wenn eigentlich speziell " +"auf Closure-Variablen Bezug genommen werden soll." msgid "complex number" -msgstr "" +msgstr "komplexe Zahl" msgid "" "An extension of the familiar real number system in which all numbers are " @@ -439,72 +677,151 @@ msgid "" "Use of complex numbers is a fairly advanced mathematical feature. If you're " "not aware of a need for them, it's almost certain you can safely ignore them." msgstr "" +"Eine Erweiterung des bekannten Systems der reellen Zahlen, in der alle " +"Zahlen als Summe aus einem reellen und einem imaginären Teil ausgedrückt " +"werden. Imaginäre Zahlen sind reelle Vielfache der imaginären Einheit (der " +"Quadratwurzel von ``-1``), die in der Mathematik häufig als ``i`` und im " +"Ingenieurwesen als ``j`` geschrieben werden. Python bietet integrierte " +"Unterstützung für komplexe Zahlen, die in der letztgenannten Notation " +"geschrieben werden; der Imaginärteil wird mit dem Suffix ``j`` " +"angegeben, z. B. ``3+1j`` . Um auf die komplexen Entsprechungen des " +"Moduls :mod:`math` zuzugreifen, verwenden Sie :mod:`cmath` . Die " +"Verwendung komplexer Zahlen ist eine recht fortgeschrittene mathematische " +"Funktion. Wenn Sie keinen Bedarf dafür sehen, können Sie diese Funktionen " +"mit ziemlicher Sicherheit getrost ignorieren." + +msgid "concurrency" +msgstr "Parallelität" + +msgid "" +"The ability of a computer program to perform multiple tasks at the same " +"time. Python provides libraries for writing programs that make use of " +"different forms of concurrency. :mod:`asyncio` is a library for dealing " +"with asynchronous tasks and coroutines. :mod:`threading` provides access to" +" operating system threads and :mod:`multiprocessing` to operating system " +"processes. Multi-core processors can execute threads and processes on " +"different CPU cores at the same time (see :term:`parallelism`)." +msgstr "" +"Die Fähigkeit eines Computerprogramms, mehrere Aufgaben gleichzeitig " +"auszuführen. Python bietet Bibliotheken zum Schreiben von Programmen, die " +"verschiedene Formen der Parallelität nutzen. :mod:`asyncio` ist eine " +"Bibliothek für den Umgang mit asynchronen Aufgaben und Coroutinen. " +":mod:`threading` bietet Zugriff auf Betriebssystem-Threads und " +":mod:`multiprocessing` auf Betriebssystem-Prozesse. Multi-Core-Prozessoren" +" können Threads und Prozesse gleichzeitig auf verschiedenen CPU-Kernen " +"ausführen (siehe :term:`Parallelität`)." + +msgid "concurrent modification" +msgstr "parallele Änderung" + +msgid "" +"When multiple threads modify shared data at the same time. Concurrent " +"modification without proper synchronization can cause :term:`race conditions" +" `, and might also trigger a :term:`data race `, " +"data corruption, or both." +msgstr "" +"Wenn mehrere Threads gleichzeitig gemeinsam genutzte Daten ändern. Eine " +"gleichzeitige Änderung ohne ordnungsgemäße Synchronisation kann zu " +":term:`Race Conditions ` führen und möglicherweise auch " +"einen :term:`Datenkonflikt `, Datenbeschädigungen oder beides " +"auslösen." msgid "context" -msgstr "" +msgstr "Kontext" msgid "" -"This term has different meanings depending on where and how it is used. Some " -"common meanings:" +"This term has different meanings depending on where and how it is used. Some" +" common meanings:" msgstr "" +"Dieser Begriff hat je nach Kontext und Verwendung unterschiedliche " +"Bedeutungen. Einige gängige Bedeutungen:" msgid "" "The temporary state or environment established by a :term:`context manager` " "via a :keyword:`with` statement." msgstr "" +"Der temporäre Zustand oder die Umgebung, die von einem :term:`Context " +"Manager` über eine :keyword:`with` -Anweisung eingerichtet wird." msgid "" -"The collection of key­value bindings associated with a particular :class:" -"`contextvars.Context` object and accessed via :class:`~contextvars." -"ContextVar` objects. Also see :term:`context variable`." +"The collection of key­value bindings associated with a particular " +":class:`contextvars.Context` object and accessed via " +":class:`~contextvars.ContextVar` objects. Also see :term:`context " +"variable`." msgstr "" +"Die Sammlung von Schlüssel-Wert-Zuordnungen, die einem bestimmten " +":class:`contextvars.Context` -Objekt zugeordnet sind und über " +":class:`~contextvars.ContextVar` -Objekte abgerufen werden. Siehe auch: " +":term:`Kontextvariable`." msgid "" "A :class:`contextvars.Context` object. Also see :term:`current context`." msgstr "" +"Ein :class:`contextvars.Context` -Objekt. Siehe auch: :term:`aktueller " +"Kontext`." msgid "context management protocol" -msgstr "" +msgstr "Kontextverwaltungsprotokoll" msgid "" -"The :meth:`~object.__enter__` and :meth:`~object.__exit__` methods called by " -"the :keyword:`with` statement. See :pep:`343`." +"The :meth:`~object.__enter__` and :meth:`~object.__exit__` methods called by" +" the :keyword:`with` statement. See :pep:`343`." msgstr "" +"Die Methoden :meth:`~object.__enter__` und :meth:`~object.__exit__` ," +" die von der Anweisung :keyword:`with` aufgerufen werden. Siehe " +":pep:`343`." msgid "context manager" -msgstr "" +msgstr "Kontextmanager" msgid "" "An object which implements the :term:`context management protocol` and " -"controls the environment seen in a :keyword:`with` statement. See :pep:" -"`343`." +"controls the environment seen in a :keyword:`with` statement. See " +":pep:`343`." msgstr "" +"Ein Objekt, das das :term:`Kontextverwaltungsprotokoll` implementiert und " +"die Umgebung steuert, die in einer :keyword:`with` -Anweisung sichtbar ist. " +"Siehe :pep:`343`." msgid "context variable" -msgstr "" +msgstr "Kontextvariable" msgid "" "A variable whose value depends on which context is the :term:`current " -"context`. Values are accessed via :class:`contextvars.ContextVar` objects. " -"Context variables are primarily used to isolate state between concurrent " +"context`. Values are accessed via :class:`contextvars.ContextVar` objects." +" Context variables are primarily used to isolate state between concurrent " "asynchronous tasks." msgstr "" +"Eine Variable, deren Wert davon abhängt, welcher Kontext gerade aktiv ist, " +"wird als :term:`aktueller Kontext` bezeichnet. Der Zugriff auf die Werte " +"erfolgt über Objekte vom Typ :class:`contextvars.ContextVar` . " +"Kontextvariablen werden in erster Linie dazu verwendet, den Zustand zwischen" +" parallel laufenden asynchronen Aufgaben zu isolieren." msgid "contiguous" -msgstr "" +msgstr "zusammenhängend" msgid "" "A buffer is considered contiguous exactly if it is either *C-contiguous* or " "*Fortran contiguous*. Zero-dimensional buffers are C and Fortran " -"contiguous. In one-dimensional arrays, the items must be laid out in memory " -"next to each other, in order of increasing indexes starting from zero. In " -"multidimensional C-contiguous arrays, the last index varies the fastest when " -"visiting items in order of memory address. However, in Fortran contiguous " +"contiguous. In one-dimensional arrays, the items must be laid out in memory" +" next to each other, in order of increasing indexes starting from zero. In " +"multidimensional C-contiguous arrays, the last index varies the fastest when" +" visiting items in order of memory address. However, in Fortran contiguous " "arrays, the first index varies the fastest." msgstr "" +"Ein Puffer gilt genau dann als zusammenhängend, wenn er entweder " +"*C-zusammenhängend* oder *Fortran-zusammenhängend* ist. Null-dimensionale " +"Puffer sind sowohl C- als auch Fortran-zusammenhängend. In eindimensionalen" +" Arrays müssen die Elemente im Speicher nebeneinander angeordnet sein, und " +"zwar in aufsteigender Reihenfolge der Indizes, beginnend bei Null. In " +"mehrdimensionalen C-zusammenhängenden Arrays ändert sich der letzte Index am" +" schnellsten, wenn die Elemente in der Reihenfolge ihrer Speicheradressen " +"durchlaufen werden. In Fortran-zusammenhängenden Arrays hingegen ändert " +"sich der erste Index am schnellsten." msgid "coroutine" -msgstr "" +msgstr "Koroutine" msgid "" "Coroutines are a more generalized form of subroutines. Subroutines are " @@ -512,63 +829,144 @@ msgid "" "entered, exited, and resumed at many different points. They can be " "implemented with the :keyword:`async def` statement. See also :pep:`492`." msgstr "" +"Coroutinen sind eine verallgemeinerte Form von Unterprogrammen. " +"Unterprogramme werden an einer Stelle aufgerufen und an einer anderen Stelle" +" beendet. Coroutinen können an vielen verschiedenen Stellen aufgerufen, " +"beendet und fortgesetzt werden. Sie lassen sich mit der Anweisung " +":keyword:`async def` implementieren. Siehe auch :pep:`492`." msgid "coroutine function" -msgstr "" +msgstr "Coroutinen-Funktion" msgid "" "A function which returns a :term:`coroutine` object. A coroutine function " -"may be defined with the :keyword:`async def` statement, and may contain :" -"keyword:`await`, :keyword:`async for`, and :keyword:`async with` keywords. " -"These were introduced by :pep:`492`." +"may be defined with the :keyword:`async def` statement, and may contain " +":keyword:`await`, :keyword:`async for`, and :keyword:`async with` keywords." +" These were introduced by :pep:`492`." msgstr "" +"Eine Funktion, die ein :term:`coroutine`-Objekt zurückgibt. Eine Coroutine-" +"Funktion kann mit der Anweisung :keyword:`async def` definiert werden und " +"die Schlüsselwörter :keyword:` :keyword:`await``, :keyword:`async for` sowie" +" :keyword:`async with` enthalten. Diese wurden mit :pep:`492` eingeführt." msgid "CPython" -msgstr "" +msgstr "CPython" msgid "" "The canonical implementation of the Python programming language, as " -"distributed on `python.org `_. The term \"CPython\" " -"is used when necessary to distinguish this implementation from others such " +"distributed on `python.org `_. The term \"CPython\"" +" is used when necessary to distinguish this implementation from others such " "as Jython or IronPython." msgstr "" +"Die kanonische Implementierung der Programmiersprache Python, wie sie auf " +"`python.org `_ bereitgestellt wird. Der Begriff " +"\"CPython\“ wird bei Bedarf verwendet, um diese Implementierung von anderen " +"wie Jython oder IronPython zu unterscheiden." msgid "current context" -msgstr "" +msgstr "aktueller Kontext" msgid "" "The :term:`context` (:class:`contextvars.Context` object) that is currently " "used by :class:`~contextvars.ContextVar` objects to access (get or set) the " -"values of :term:`context variables `. Each thread has its " -"own current context. Frameworks for executing asynchronous tasks (see :mod:" -"`asyncio`) associate each task with a context which becomes the current " -"context whenever the task starts or resumes execution." -msgstr "" +"values of :term:`context variables `. Each thread has its" +" own current context. Frameworks for executing asynchronous tasks (see " +":mod:`asyncio`) associate each task with a context which becomes the current" +" context whenever the task starts or resumes execution." +msgstr "" +"Der :term:`Kontext` (:class:`contextvars.Context` -Objekt), der derzeit von " +":class:`~contextvars.ContextVar` -Objekten verwendet wird, um auf die Werte " +"von :term:`Kontextvariablen ` zuzugreifen (abzurufen oder " +"festzulegen). Jeder Thread verfügt über einen eigenen aktuellen Kontext. " +"Frameworks zur Ausführung asynchroner Aufgaben (siehe :mod:`asyncio`) ordnen" +" jeder Aufgabe einen Kontext zu, der zum aktuellen Kontext wird, sobald die " +"Aufgabe ihre Ausführung beginnt oder fortsetzt." msgid "cyclic isolate" -msgstr "" +msgstr "zyklisches Isolat" msgid "" "A subgroup of one or more objects that reference each other in a reference " -"cycle, but are not referenced by objects outside the group. The goal of " -"the :term:`cyclic garbage collector ` is to identify " -"these groups and break the reference cycles so that the memory can be " -"reclaimed." -msgstr "" +"cycle, but are not referenced by objects outside the group. The goal of the" +" :term:`cyclic garbage collector ` is to identify these " +"groups and break the reference cycles so that the memory can be reclaimed." +msgstr "" +"Eine Untergruppe aus einem oder mehreren Objekten, die sich in einem " +"Referenzzyklus gegenseitig referenzieren, aber von Objekten außerhalb der " +"Gruppe nicht referenziert werden. Das Ziel des :term:`zyklischen Garbage " +"Collectors ` besteht darin, diese Gruppen zu " +"identifizieren und die Referenzzyklen aufzubrechen, damit der Speicher " +"freigegeben werden kann." + +msgid "data race" +msgstr "Datenkonflikt" + +msgid "" +"A situation where multiple threads access the same memory location " +"concurrently, at least one of the accesses is a write, and the threads do " +"not use any synchronization to control their access. Data races lead to " +":term:`non-deterministic` behavior and can cause data corruption. Proper use" +" of :term:`locks ` and other :term:`synchronization primitives " +"` prevents data races. Note that data races can " +"only happen in native code, but that :term:`native code` might be exposed in" +" a Python API. See also :term:`race condition` and :term:`thread-safe`." +msgstr "" +"Eine Situation, in der mehrere Threads gleichzeitig auf denselben " +"Speicherort zugreifen, wobei mindestens einer der Zugriffe ein " +"Schreibzugriff ist und die Threads keine Synchronisation zur Steuerung ihres" +" Zugriffs verwenden. Datenkonflikte führen zu :term:`nicht-" +"deterministischem` Verhalten und können Datenbeschädigungen verursachen. Die" +" korrekte Verwendung von :term:`Locks ` und anderen " +":term:`Synchronisationsprimitiven ` verhindert " +"Datenrennen. Beachten Sie, dass Datenrennen nur in nativem Code auftreten " +"können, dieser :term:`native Code` jedoch möglicherweise in einer Python-API" +" verfügbar ist. Siehe auch :term:`Race Condition` und :term:`thread-safe`." + +msgid "deadlock" +msgstr "Pattsituation" + +msgid "" +"A situation in which two or more tasks (threads, processes, or coroutines) " +"wait indefinitely for each other to release resources or complete actions, " +"preventing any from making progress. For example, if thread A holds lock 1 " +"and waits for lock 2, while thread B holds lock 2 and waits for lock 1, both" +" threads will wait indefinitely. In Python this often arises from acquiring" +" multiple locks in conflicting orders or from circular join/await " +"dependencies. Deadlocks can be avoided by always acquiring multiple " +":term:`locks ` in a consistent order. See also :term:`lock` and " +":term:`reentrant`." +msgstr "" +"Eine Situation, in der zwei oder mehr Aufgaben (Threads, Prozesse oder " +"Coroutinen) unbegrenzt darauf warten, dass die jeweils anderen Ressourcen " +"freigeben oder Aktionen abschließen, wodurch keine der Aufgaben vorankommt." +" Wenn beispielsweise Thread A die Sperre 1 hält und auf die Sperre 2 " +"wartet, während Thread B die Sperre 2 hält und auf die Sperre 1 wartet, " +"werden beide Threads auf unbestimmte Zeit warten. In Python entsteht dies " +"häufig durch das Erlangen mehrerer Sperren in widersprüchlicher Reihenfolge " +"oder durch zirkuläre join/await-Abhängigkeiten. Deadlocks lassen sich " +"vermeiden, indem mehrere :term:`Sperren ` stets in einer konsistenten " +"Reihenfolge erworben werden. Siehe auch :term:`Sperre` und " +":term:`reentrant`." msgid "decorator" -msgstr "" +msgstr "Dekorateur" msgid "" "A function returning another function, usually applied as a function " "transformation using the ``@wrapper`` syntax. Common examples for " -"decorators are :func:`classmethod` and :func:`staticmethod`." +"decorators are :deco:`classmethod` and :deco:`staticmethod`." msgstr "" +"Eine Funktion, die eine andere Funktion zurückgibt und in der Regel als " +"Funktionstransformation mithilfe der Syntax ``@wrapper`` angewendet " +"wird. Gängige Beispiele für Dekoratoren sind :deco:`classmethod` und " +":deco:`staticmethod`." msgid "" "The decorator syntax is merely syntactic sugar, the following two function " "definitions are semantically equivalent::" msgstr "" +"Die Dekorator-Syntax ist lediglich Syntactic Sugar; die folgenden beiden " +"Funktionsdefinitionen sind semantisch gleichbedeutend::" msgid "" "def f(arg):\n" @@ -579,65 +977,105 @@ msgid "" "def f(arg):\n" " ..." msgstr "" +"def f(arg):\n" +" ...\n" +"f = staticmethod(f)\n" +"\n" +"@staticmethod\n" +"def f(arg):\n" +" ..." msgid "" "The same concept exists for classes, but is less commonly used there. See " -"the documentation for :ref:`function definitions ` and :ref:`class " -"definitions ` for more about decorators." +"the documentation for :ref:`function definitions ` and :ref:`class" +" definitions ` for more about decorators." msgstr "" +"Das gleiche Konzept gibt es auch für Klassen, wird dort jedoch seltener " +"verwendet. Weitere Informationen zu Dekoratoren finden Sie in der " +"Dokumentation zu :ref:`Funktionsdefinitionen ` und " +":ref:`Klassendefinitionen `." msgid "descriptor" -msgstr "" +msgstr "Deskriptor" msgid "" -"Any object which defines the methods :meth:`~object.__get__`, :meth:`~object." -"__set__`, or :meth:`~object.__delete__`. When a class attribute is a " -"descriptor, its special binding behavior is triggered upon attribute " -"lookup. Normally, using *a.b* to get, set or delete an attribute looks up " -"the object named *b* in the class dictionary for *a*, but if *b* is a " -"descriptor, the respective descriptor method gets called. Understanding " +"Any object which defines the methods :meth:`~object.__get__`, " +":meth:`~object.__set__`, or :meth:`~object.__delete__`. When a class " +"attribute is a descriptor, its special binding behavior is triggered upon " +"attribute lookup. Normally, using *a.b* to get, set or delete an attribute " +"looks up the object named *b* in the class dictionary for *a*, but if *b* is" +" a descriptor, the respective descriptor method gets called. Understanding " "descriptors is a key to a deep understanding of Python because they are the " "basis for many features including functions, methods, properties, class " "methods, static methods, and reference to super classes." msgstr "" +"Jedes Objekt, das die Methoden :meth:`~object.__get__` , " +":meth:`~object.__set__` oder :meth:`~object.__delete__` definiert. " +"Wenn ein Klassenattribut ein Deskriptor ist, wird sein spezielles " +"Bindungsverhalten bei der Attributsuche ausgelöst. Normalerweise wird bei " +"der Verwendung von *a.b* zum Abrufen, Setzen oder Löschen eines Attributs " +"das Objekt mit dem Namen *b* im Klassenwörterbuch von *a* nachgeschlagen; " +"ist *b* jedoch ein Deskriptor, wird die entsprechende Deskriptormethode " +"aufgerufen. Das Verständnis von Deskriptoren ist der Schlüssel zu einem " +"tiefgreifenden Verständnis von Python, da sie die Grundlage für viele " +"Funktionen bilden, darunter Funktionen, Methoden, Eigenschaften, " +"Klassenmethoden, statische Methoden und Verweise auf Oberklassen." msgid "" "For more information about descriptors' methods, see :ref:`descriptors` or " "the :ref:`Descriptor How To Guide `." msgstr "" +"Weitere Informationen zu den Methoden von Deskriptoren finden Sie unter " +":ref:`descriptors` oder im :ref:`Descriptor How To Guide `." msgid "dictionary" -msgstr "" +msgstr "Wörterbuch" msgid "" "An associative array, where arbitrary keys are mapped to values. The keys " "can be any object with :meth:`~object.__hash__` and :meth:`~object.__eq__` " "methods. Called a hash in Perl." msgstr "" +"Ein assoziatives Array, bei dem beliebige Schlüssel Werten zugeordnet " +"werden. Die Schlüssel können beliebige Objekte sein, die über die Methoden " +" :meth:`~object.__hash__` und :meth:`~object.__eq__` verfügen. In Perl" +" wird dies als Hash bezeichnet." msgid "dictionary comprehension" -msgstr "" +msgstr "Wörterbuchverständnis" msgid "" "A compact way to process all or part of the elements in an iterable and " "return a dictionary with the results. ``results = {n: n ** 2 for n in " -"range(10)}`` generates a dictionary containing key ``n`` mapped to value ``n " -"** 2``. See :ref:`comprehensions`." +"range(10)}`` generates a dictionary containing key ``n`` mapped to value ``n" +" ** 2``. See :ref:`comprehensions`." msgstr "" +"Eine kompakte Möglichkeit, alle oder einen Teil der Elemente eines " +"iterierbaren Objekts zu verarbeiten und ein Wörterbuch mit den Ergebnissen " +"zurückzugeben. ``results = {n: n ** 2 for n in range(10)}`` generiert " +"ein Wörterbuch, das Schlüssel- ``n`` enthält, die den Wert- ``n ** 2`` " +"zugeordnet sind. Siehe :ref:`comprehensions`." msgid "dictionary view" -msgstr "" +msgstr "Wörterbuchansicht" msgid "" -"The objects returned from :meth:`dict.keys`, :meth:`dict.values`, and :meth:" -"`dict.items` are called dictionary views. They provide a dynamic view on the " -"dictionary’s entries, which means that when the dictionary changes, the view " -"reflects these changes. To force the dictionary view to become a full list " -"use ``list(dictview)``. See :ref:`dict-views`." +"The objects returned from :meth:`dict.keys`, :meth:`dict.values`, and " +":meth:`dict.items` are called dictionary views. They provide a dynamic view " +"on the dictionary’s entries, which means that when the dictionary changes, " +"the view reflects these changes. To force the dictionary view to become a " +"full list use ``list(dictview)``. See :ref:`dict-views`." msgstr "" +"Die Objekte, die von den Methoden :meth:`dict.keys` , " +":meth:`dict.values` und :meth:`dict.items` zurückgegeben werden, " +"werden als Dictionary-Ansichten bezeichnet. Sie bieten eine dynamische " +"Ansicht der Einträge im Dictionary, was bedeutet, dass sich Änderungen am " +"Dictionary unmittelbar in der Ansicht widerspiegeln. Um die Dictionary-" +"Ansicht zwangsweise in eine vollständige Liste umzuwandeln, verwenden Sie " +"``list(dictview)`` . Siehe :ref:`dict-views`." msgid "docstring" -msgstr "" +msgstr "docstring" msgid "" "A string literal which appears as the first expression in a class, function " @@ -646,33 +1084,53 @@ msgid "" "enclosing class, function or module. Since it is available via " "introspection, it is the canonical place for documentation of the object." msgstr "" +"Ein String-Literal, das als erster Ausdruck in einer Klasse, Funktion oder " +"einem Modul erscheint. Es wird zwar bei der Ausführung der Testsuite " +"ignoriert, jedoch vom Compiler erkannt und in das Attribut " +":attr:`~definition.__doc__` der umschließenden Klasse, Funktion oder des " +"Moduls übernommen. Da es über Introspektion verfügbar ist, stellt es den " +"kanonischen Ort für die Dokumentation des Objekts dar." msgid "duck-typing" -msgstr "" +msgstr "Duck-Typing" msgid "" "A programming style which does not look at an object's type to determine if " "it has the right interface; instead, the method or attribute is simply " -"called or used (\"If it looks like a duck and quacks like a duck, it must be " -"a duck.\") By emphasizing interfaces rather than specific types, well-" -"designed code improves its flexibility by allowing polymorphic " -"substitution. Duck-typing avoids tests using :func:`type` or :func:" -"`isinstance`. (Note, however, that duck-typing can be complemented with :" -"term:`abstract base classes `.) Instead, it typically " -"employs :func:`hasattr` tests or :term:`EAFP` programming." -msgstr "" +"called or used (\"If it looks like a duck and quacks like a duck, it must be" +" a duck.\") By emphasizing interfaces rather than specific types, well-" +"designed code improves its flexibility by allowing polymorphic substitution." +" Duck-typing avoids tests using :func:`type` or :func:`isinstance`. (Note," +" however, that duck-typing can be complemented with :term:`abstract base " +"classes `.) Instead, it typically employs " +":func:`hasattr` tests or :term:`EAFP` programming." +msgstr "" +"Ein Programmierstil, bei dem nicht der Typ eines Objekts herangezogen wird, " +"um festzustellen, ob es über die richtige Schnittstelle verfügt; stattdessen" +" wird die Methode oder das Attribut einfach aufgerufen bzw. verwendet (\"Wenn" +" es wie eine Ente aussieht und wie eine Ente quakt, muss es eine Ente " +"sein.\“) Durch die Betonung von Schnittstellen anstelle spezifischer Typen " +"verbessert gut gestalteter Code seine Flexibilität, indem er polymorphe " +"Substitution ermöglicht. Duck-Typing vermeidet Tests mit :func:`type` " +"oder :func:`isinstance` . (Beachten Sie jedoch, dass Duck-Typing durch " +":term:`abstrakte Basisklassen ` ergänzt werden kann.) " +"Stattdessen werden typischerweise :func:`hasattr` -Tests oder " +":term:`EAFP`-Programmierung eingesetzt." msgid "dunder" -msgstr "" +msgstr "dunder" msgid "" -"An informal short-hand for \"double underscore\", used when talking about a :" -"term:`special method`. For example, ``__init__`` is often pronounced " +"An informal short-hand for \"double underscore\", used when talking about a " +":term:`special method`. For example, ``__init__`` is often pronounced " "\"dunder init\"." msgstr "" +"Eine umgangssprachliche Abkürzung für \"doppelter Unterstrich\“, die verwendet" +" wird, wenn von einer :term:`speziellen Methode` die Rede ist. So wird " +"beispielsweise ``__init__`` oft als \"dunder init\“ ausgesprochen." msgid "EAFP" -msgstr "" +msgstr "EAFP" msgid "" "Easier to ask for forgiveness than permission. This common Python coding " @@ -682,18 +1140,28 @@ msgid "" "statements. The technique contrasts with the :term:`LBYL` style common to " "many other languages such as C." msgstr "" +"Es ist einfacher, um Verzeihung zu bitten als um Erlaubnis. Dieser gängige " +"Python-Programmierstil geht von der Existenz gültiger Schlüssel oder " +"Attribute aus und fängt Ausnahmen ab, falls sich diese Annahme als falsch " +"erweist. Dieser übersichtliche und schnelle Stil zeichnet sich durch das " +"häufige Vorkommen von :keyword:`try` - und :keyword:`except` -Anweisungen " +"aus. Diese Technik steht im Gegensatz zum :term:`LBYL`-Stil, der in vielen " +"anderen Sprachen wie beispielsweise C üblich ist." msgid "evaluate function" -msgstr "" +msgstr "Funktion auswerten" msgid "" -"A function that can be called to evaluate a lazily evaluated attribute of an " -"object, such as the value of type aliases created with the :keyword:`type` " +"A function that can be called to evaluate a lazily evaluated attribute of an" +" object, such as the value of type aliases created with the :keyword:`type` " "statement." msgstr "" +"Eine Funktion, die aufgerufen werden kann, um ein verzögert ausgewertetes " +"Attribut eines Objekts zu berechnen, beispielsweise den Wert von Typaliasen," +" die mit der Anweisung :keyword:`type` erstellt wurden." msgid "expression" -msgstr "" +msgstr "Ausdruck" msgid "" "A piece of syntax which can be evaluated to some value. In other words, an " @@ -701,106 +1169,154 @@ msgid "" "attribute access, operators or function calls which all return a value. In " "contrast to many other languages, not all language constructs are " "expressions. There are also :term:`statement`\\s which cannot be used as " -"expressions, such as :keyword:`while`. Assignments are also statements, not " -"expressions." +"expressions, such as :keyword:`while`. Assignments are also statements, not" +" expressions." msgstr "" +"Ein Syntaxelement, das zu einem Wert ausgewertet werden kann. Mit anderen " +"Worten: Ein Ausdruck ist eine Zusammenstellung von Ausdruckselementen wie " +"Literalen, Namen, Attributzugriffen, Operatoren oder Funktionsaufrufen, die " +"alle einen Wert zurückgeben. Im Gegensatz zu vielen anderen Sprachen sind " +"nicht alle Sprachkonstrukte Ausdrücke. Es gibt auch :term:`Anweisungen`\\s, " +"die nicht als Ausdrücke verwendet werden können, wie beispielsweise " +":keyword:`while`. Auch Zuweisungen sind Anweisungen und keine Ausdrücke." msgid "extension module" -msgstr "" +msgstr "Erweiterungsmodul" msgid "" -"A module written in C or C++, using Python's C API to interact with the core " -"and with user code." +"A module written in C or C++, using Python's C API to interact with the core" +" and with user code." msgstr "" +"Ein in C oder C++ geschriebenes Modul, das die C-API von Python nutzt, um " +"mit dem Kern und dem Anwendercode zu interagieren." msgid "f-string" -msgstr "" +msgstr "f-String" msgid "f-strings" -msgstr "" +msgstr "f-Strings" msgid "" -"String literals prefixed with ``f`` or ``F`` are commonly called \"f-" -"strings\" which is short for :ref:`formatted string literals `. " -"See also :pep:`498`." +"String literals prefixed with ``f`` or ``F`` are commonly called " +"\"f-strings\" which is short for :ref:`formatted string literals " +"`. See also :pep:`498`." msgstr "" +"Zeichenfolgenliterale, denen ``f`` oder ``F`` vorangestellt ist, " +"werden gemeinhin als \"f-Strings\“ bezeichnet, was die Abkürzung für " +":ref:`formatierte Zeichenfolgenliterale ` ist. Siehe auch " +":pep:`498`." msgid "file object" -msgstr "" +msgstr "Dateiobjekt" msgid "" "An object exposing a file-oriented API (with methods such as :meth:`!read` " "or :meth:`!write`) to an underlying resource. Depending on the way it was " "created, a file object can mediate access to a real on-disk file or to " -"another type of storage or communication device (for example standard input/" -"output, in-memory buffers, sockets, pipes, etc.). File objects are also " -"called :dfn:`file-like objects` or :dfn:`streams`." -msgstr "" - -msgid "" -"There are actually three categories of file objects: raw :term:`binary files " -"`, buffered :term:`binary files ` and :term:`text " -"files `. Their interfaces are defined in the :mod:`io` module. " +"another type of storage or communication device (for example standard " +"input/output, in-memory buffers, sockets, pipes, etc.). File objects are " +"also called :dfn:`file-like objects` or :dfn:`streams`." +msgstr "" +"Ein Objekt, das eine dateiorientierte API (mit Methoden wie :meth:`!read` " +" oder :meth:`!write` ) für eine zugrunde liegende Ressource " +"bereitstellt. Je nach Art seiner Erstellung kann ein Dateiobjekt den " +"Zugriff auf eine echte Datei auf der Festplatte oder auf eine andere Art von" +" Speicher- oder Kommunikationsgerät vermitteln (z. B. " +"Standardeingabe/-ausgabe, Puffer im Arbeitsspeicher, Sockets, Pipes usw.). " +"Dateiobjekte werden auch als :dfn:`dateiähnliche Objekte` oder " +":dfn:`Streams` bezeichnet." + +msgid "" +"There are actually three categories of file objects: raw :term:`binary files" +" `, buffered :term:`binary files ` and :term:`text" +" files `. Their interfaces are defined in the :mod:`io` module. " "The canonical way to create a file object is by using the :func:`open` " "function." msgstr "" +"Es gibt insgesamt drei Kategorien von Dateiobjekten: rohe " +":term:`Binärdateien `, gepufferte :term:`Binärdateien ` und :term:`Textdateien `. Ihre Schnittstellen sind im " +"Modul :mod:`io` definiert. Die übliche Vorgehensweise zum Erstellen " +"eines Dateiobjekts ist die Verwendung der Funktion :func:`open` ." msgid "file-like object" -msgstr "" +msgstr "dateiähnliches Objekt" msgid "A synonym for :term:`file object`." -msgstr "" +msgstr "Ein Synonym für :term:`Dateiobjekt`." msgid "filesystem encoding and error handler" -msgstr "" +msgstr "Dateisystem-Kodierung und Fehlerbehandlung" msgid "" -"Encoding and error handler used by Python to decode bytes from the operating " -"system and encode Unicode to the operating system." +"Encoding and error handler used by Python to decode bytes from the operating" +" system and encode Unicode to the operating system." msgstr "" +"Von Python verwendete Kodierung und Fehlerbehandlung zum Dekodieren von " +"Bytes aus dem Betriebssystem und zum Kodieren von Unicode für das " +"Betriebssystem." msgid "" "The filesystem encoding must guarantee to successfully decode all bytes " "below 128. If the file system encoding fails to provide this guarantee, API " "functions can raise :exc:`UnicodeError`." msgstr "" +"Die Dateisystemkodierung muss gewährleisten, dass alle Bytes unter 128 " +"erfolgreich dekodiert werden. Wenn die Dateisystemkodierung diese Garantie " +"nicht bieten kann, können API-Funktionen die Ausnahme :exc:`UnicodeError` " +" auslösen." msgid "" -"The :func:`sys.getfilesystemencoding` and :func:`sys." -"getfilesystemencodeerrors` functions can be used to get the filesystem " -"encoding and error handler." +"The :func:`sys.getfilesystemencoding` and " +":func:`sys.getfilesystemencodeerrors` functions can be used to get the " +"filesystem encoding and error handler." msgstr "" +"Mit den Funktionen :func:`sys.getfilesystemencoding` und " +":func:`sys.getfilesystemencodeerrors` lassen sich die Kodierung des " +"Dateisystems und der Fehlerbehandler abrufen." msgid "" "The :term:`filesystem encoding and error handler` are configured at Python " -"startup by the :c:func:`PyConfig_Read` function: see :c:member:`~PyConfig." -"filesystem_encoding` and :c:member:`~PyConfig.filesystem_errors` members of :" -"c:type:`PyConfig`." +"startup by the :c:func:`PyConfig_Read` function: see " +":c:member:`~PyConfig.filesystem_encoding` and " +":c:member:`~PyConfig.filesystem_errors` members of :c:type:`PyConfig`." msgstr "" +"Die :term:`Dateisystem-Kodierung und der Fehlerbehandler` werden beim Start " +"von Python über die Funktion :c:func:`PyConfig_Read` konfiguriert: siehe" +" :c:member:`~PyConfig.filesystem_encoding` und " +":c:member:`~PyConfig.filesystem_errors`, die zu :c:type:`PyConfig` gehören." msgid "See also the :term:`locale encoding`." -msgstr "" +msgstr "Siehe auch den Begriff :term:`Lokalisierungskodierung`." msgid "finder" -msgstr "" +msgstr "Finder" msgid "" "An object that tries to find the :term:`loader` for a module that is being " "imported." msgstr "" +"Ein Objekt, das versucht, den :term:`loader` für ein Modul zu finden, das " +"gerade importiert wird." msgid "" "There are two types of finder: :term:`meta path finders ` " "for use with :data:`sys.meta_path`, and :term:`path entry finders ` for use with :data:`sys.path_hooks`." msgstr "" +"Es gibt zwei Arten von Suchfunktionen: :term:`Meta-Pfad-Suchfunktionen ` zur Verwendung mit :data:`sys.meta_path` sowie :term:`Pfad-" +"Eingabe-Suchfunktionen ` zur Verwendung mit " +":data:`sys.path_hooks`." msgid "" "See :ref:`finders-and-loaders` and :mod:`importlib` for much more detail." msgstr "" +"Weitere Informationen finden Sie unter :ref:`finders-and-loaders` und " +":mod:`importlib`." msgid "floor division" -msgstr "" +msgstr "Etagenaufteilung" msgid "" "Mathematical division that rounds down to nearest integer. The floor " @@ -809,19 +1325,43 @@ msgid "" "division. Note that ``(-11) // 4`` is ``-3`` because that is ``-2.75`` " "rounded *downward*. See :pep:`238`." msgstr "" +"Mathematische Division, bei der auf die nächste ganze Zahl abgerundet wird. " +"Der Operator für die Floor-Division lautet ``//``. Der Ausdruck ``11 // 4`` " +"ergibt beispielsweise ``2`` – im Gegensatz zu ``2.75``, das bei einer echten" +" Float-Division zurückgegeben wird. Beachten Sie, dass ``(-11) // 4`` gleich" +" ``-3`` ist, da es sich dabei um ``-2.75`` handelt, das *nach unten* " +"abgerundet wurde. Siehe :pep:`238`." msgid "free threading" -msgstr "" +msgstr "freies Einfädeln" msgid "" "A threading model where multiple threads can run Python bytecode " -"simultaneously within the same interpreter. This is in contrast to the :" -"term:`global interpreter lock` which allows only one thread to execute " +"simultaneously within the same interpreter. This is in contrast to the " +":term:`global interpreter lock` which allows only one thread to execute " "Python bytecode at a time. See :pep:`703`." msgstr "" +"Ein Threading-Modell, bei dem mehrere Threads Python-Bytecode gleichzeitig " +"innerhalb desselben Interpreters ausführen können. Dies steht im Gegensatz " +"zum :term:`global interpreter lock`, bei dem jeweils nur ein Thread Python-" +"Bytecode ausführen kann. Siehe :pep:`703`." -msgid "free variable" +msgid "free-threaded build" +msgstr "Build mit freien Threads" + +msgid "" +"A build of :term:`CPython` that supports :term:`free threading`, configured " +"using the :option:`--disable-gil` option before compilation." msgstr "" +"Eine Version von :term:`CPython`, die :term:`Free Threading` unterstützt und" +" vor der Kompilierung mit der Option :option:`--disable-gil` " +"konfiguriert wurde." + +msgid "See :ref:`freethreading-python-howto`." +msgstr "Siehe :ref:`freethreading-python-howto`." + +msgid "free variable" +msgstr "freie Variable" msgid "" "Formally, as defined in the :ref:`language execution model `, a " @@ -831,64 +1371,97 @@ msgid "" "attribute, the term is also sometimes used as a synonym for :term:`closure " "variable`." msgstr "" +"Formal gesehen ist, gemäß der Definition im :ref:`Sprachausführungsmodell " +"`, eine freie Variable jede Variable, die in einem Namensraum " +"verwendet wird und keine lokale Variable in diesem Namensraum ist. Ein " +"Beispiel finden Sie unter :term:`Closure-Variable`. In der Praxis wird der " +"Begriff aufgrund des Namens des Attributs :attr:`codeobject.co_freevars` " +" manchmal auch als Synonym für :term:`Closure-Variable` verwendet." msgid "function" -msgstr "" +msgstr "Funktion" msgid "" "A series of statements which returns some value to a caller. It can also be " "passed zero or more :term:`arguments ` which may be used in the " -"execution of the body. See also :term:`parameter`, :term:`method`, and the :" -"ref:`function` section." +"execution of the body. See also :term:`parameter`, :term:`method`, and the " +":ref:`function` section." msgstr "" +"Eine Anweisungsfolge, die einen Wert an den Aufrufer zurückgibt. Ihr können " +"zudem null oder mehr :term:`Argumente ` übergeben werden, die bei " +"der Ausführung des Hauptteils verwendet werden können. Siehe auch " +":term:`Parameter`, :term:`Methode` sowie den Abschnitt :ref:`function` ." msgid "function annotation" -msgstr "" +msgstr "Funktionsanmerkung" msgid "An :term:`annotation` of a function parameter or return value." msgstr "" +"Eine :term:`Annotation` eines Funktionsparameters oder eines Rückgabewerts." msgid "" "Function annotations are usually used for :term:`type hints `: " "for example, this function is expected to take two :class:`int` arguments " "and is also expected to have an :class:`int` return value::" msgstr "" +"Funktionsannotationen werden in der Regel für :term:`Typangaben `: verwendet. Beispielsweise wird erwartet, dass diese Funktion zwei " +":class:`int` Argumente entgegennimmt und zudem einen :class:`int` " +"Rückgabewert hat::" msgid "" "def sum_two_numbers(a: int, b: int) -> int:\n" " return a + b" msgstr "" +"def sum_two_numbers(a: int, b: int) -> int:\n" +" return a + b" msgid "Function annotation syntax is explained in section :ref:`function`." msgstr "" +"Die Syntax für Funktionsannotationen wird im Abschnitt :ref:`function` " +"erläutert." msgid "" "See :term:`variable annotation` and :pep:`484`, which describe this " "functionality. Also see :ref:`annotations-howto` for best practices on " "working with annotations." msgstr "" +"Siehe :term:`Variablen-Annotation` und :pep:`484`, wo diese Funktionalität " +"beschrieben wird. Siehe außerdem :ref:`annotations-howto` für bewährte " +"Vorgehensweisen beim Umgang mit Annotationen." msgid "__future__" -msgstr "" +msgstr "__Zukunft__" msgid "" "A :ref:`future statement `, ``from __future__ import ``, " -"directs the compiler to compile the current module using syntax or semantics " -"that will become standard in a future release of Python. The :mod:" -"`__future__` module documents the possible values of *feature*. By " +"directs the compiler to compile the current module using syntax or semantics" +" that will become standard in a future release of Python. The " +":mod:`__future__` module documents the possible values of *feature*. By " "importing this module and evaluating its variables, you can see when a new " -"feature was first added to the language and when it will (or did) become the " -"default::" +"feature was first added to the language and when it will (or did) become the" +" default::" msgstr "" +"Eine :ref:`Future-Anweisung `, ``from __future__ import ``," +" weist den Compiler an, das aktuelle Modul unter Verwendung einer Syntax " +"oder Semantik zu kompilieren, die in einer zukünftigen Version von Python " +"zum Standard werden wird. Das Modul :mod:`__future__` dokumentiert die " +"möglichen Werte von *feature*. Durch Importieren dieses Moduls und Auswerten" +" seiner Variablen können Sie sehen, wann eine neue Funktion erstmals in die " +"Sprache aufgenommen wurde und wann sie zur Standardeinstellung wird (oder " +"wurde):" msgid "" ">>> import __future__\n" ">>> __future__.division\n" "_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)" msgstr "" +">>> import __future__\n" +">>> __future__.division\n" +"_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)" msgid "garbage collection" -msgstr "" +msgstr "Garbage Collection" msgid "" "The process of freeing memory when it is not used anymore. Python performs " @@ -896,38 +1469,79 @@ msgid "" "that is able to detect and break reference cycles. The garbage collector " "can be controlled using the :mod:`gc` module." msgstr "" +"Der Vorgang, bei dem Speicher freigegeben wird, wenn er nicht mehr benötigt " +"wird. Python führt die Speicherbereinigung mithilfe der Referenzzählung und " +"eines zyklischen Garbage Collectors durch, der Referenzzyklen erkennen und " +"auflösen kann. Der Garbage Collector lässt sich über das Modul :mod:`gc` " +" steuern." msgid "generator" -msgstr "" +msgstr "Generator" msgid "" -"A function which returns a :term:`generator iterator`. It looks like a " -"normal function except that it contains :keyword:`yield` expressions for " -"producing a series of values usable in a for-loop or that can be retrieved " -"one at a time with the :func:`next` function." +"Informally used to mean either a :term:`generator function` or a " +":term:`generator iterator`, depending on context. The formal terms " +":term:`generator function` and :term:`generator iterator` are uncommon in " +"practice; \"generator\" alone is almost always sufficient." msgstr "" +"Wird umgangssprachlich je nach Kontext entweder für eine " +":term:`Generatorfunktion` oder einen :term:`Generator-Iterator` verwendet. " +"Die formalen Begriffe :term:`Generatorfunktion` und :term:`Generator-" +"Iterator` sind in der Praxis selten; der Begriff \"Generator\“ allein reicht " +"fast immer aus." + +msgid "generator function" +msgstr "Generatorfunktion" msgid "" -"Usually refers to a generator function, but may refer to a *generator " -"iterator* in some contexts. In cases where the intended meaning isn't " -"clear, using the full terms avoids ambiguity." +"A function which returns a :term:`generator` object. It looks like a normal" +" function except that it contains :keyword:`yield` expressions for producing" +" a series of values usable in a :keyword:`for`\\-loop or that can be " +"retrieved one at a time with the :func:`next` function. See " +":ref:`yieldexpr`." msgstr "" +"Eine Funktion, die ein :term:`generator`-Objekt zurückgibt. Sie sieht wie " +"eine normale Funktion aus, enthält jedoch Ausdrücke vom Typ " +":keyword:`yield` , um eine Reihe von Werten zu erzeugen, die in einer " +":keyword:`for`\\-Schleife verwendet oder mit der Funktion :func:`next` " +"einzeln abgerufen werden können. Siehe :ref:`yieldexpr`." msgid "generator iterator" -msgstr "" +msgstr "Generator-Iterator" -msgid "An object created by a :term:`generator` function." +msgid "" +"An object created by a :term:`generator function` or a :term:`generator " +"expression`." msgstr "" +"Ein Objekt, das durch eine :term:`Generatorfunktion` oder einen " +":term:`Generatorausdruck` erstellt wurde." msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " -"execution state (including local variables and pending try-statements). " -"When the *generator iterator* resumes, it picks up where it left off (in " +"execution state (including local variables and pending try-statements). When" +" the *generator iterator* resumes, it picks up where it left off (in " "contrast to functions which start fresh on every invocation)." msgstr "" +"Jeder :keyword:`yield` unterbricht die Verarbeitung vorübergehend und " +"speichert dabei den Ausführungszustand (einschließlich lokaler Variablen und" +" ausstehender try-Anweisungen). Wenn der *Generator-Iterator* fortgesetzt " +"wird, setzt er dort fort, wo er aufgehört hat (im Gegensatz zu Funktionen, " +"die bei jedem Aufruf von vorne beginnen)." -msgid "generator expression" +msgid "" +"Generator iterators also implement the :meth:`~generator.send` method to " +"send a value into the suspended generator, and the :meth:`~generator.throw` " +"method to raise an exception at the point where the generator was paused. " +"See :ref:`generator-methods`." msgstr "" +"Generator-Iteratoren implementieren außerdem die Methode " +":meth:`~generator.send` , um einen Wert an den angehaltenen Generator zu " +"übergeben, sowie die Methode :meth:`~generator.throw` , um an der Stelle," +" an der der Generator angehalten wurde, eine Ausnahme auszulösen. Siehe " +":ref:`generator-methods`." + +msgid "generator expression" +msgstr "Generatorausdruck" msgid "" "An :term:`expression` that returns an :term:`iterator`. It looks like a " @@ -935,48 +1549,68 @@ msgid "" "variable, range, and an optional :keyword:`!if` clause. The combined " "expression generates values for an enclosing function::" msgstr "" +"Ein :term:`Ausdruck`, der einen :term:`Iterator` zurückgibt. Er sieht aus " +"wie ein normaler Ausdruck, gefolgt von einer :keyword:`!for` -Klausel, die " +"eine Schleifenvariable und einen Bereich definiert, sowie einer optionalen " +":keyword:`!if` -Klausel. Der kombinierte Ausdruck generiert Werte für eine " +"umschließende Funktion::" msgid "" ">>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81\n" "285" msgstr "" +">>> sum(i*i for i in range(10)) # Summe der Quadrate von 0, 1, 4, ..., 81\n" +"285" msgid "generic function" -msgstr "" +msgstr "generische Funktion" msgid "" "A function composed of multiple functions implementing the same operation " "for different types. Which implementation should be used during a call is " "determined by the dispatch algorithm." msgstr "" +"Eine Funktion, die aus mehreren Funktionen besteht, welche dieselbe " +"Operation für verschiedene Typen implementieren. Welche Implementierung bei " +"einem Aufruf verwendet werden soll, wird durch den Dispatch-Algorithmus " +"bestimmt." msgid "" -"See also the :term:`single dispatch` glossary entry, the :func:`functools." -"singledispatch` decorator, and :pep:`443`." +"See also the :term:`single dispatch` glossary entry, the " +":deco:`functools.singledispatch` decorator, and :pep:`443`." msgstr "" +"Siehe auch den Glossareintrag :term:`single dispatch`, den Dekorator " +":deco:`functools.singledispatch` sowie :pep:`443`." msgid "generic type" -msgstr "" +msgstr "generischer Typ" msgid "" "A :term:`type` that can be parameterized; typically a :ref:`container " -"class` such as :class:`list` or :class:`dict`. Used for :" -"term:`type hints ` and :term:`annotations `." +"class` such as :class:`list` or :class:`dict`. Used for " +":term:`type hints ` and :term:`annotations `." msgstr "" +"Ein :term:`Typ`, der parametrisiert werden kann; typischerweise eine " +":ref:`Containerklasse` wie beispielsweise :class:`list` oder" +" :class:`dict`. Wird für :term:`Typ-Hinweise ` und " +":term:`Annotationen ` verwendet." msgid "" -"For more details, see :ref:`generic alias types`, :pep:" -"`483`, :pep:`484`, :pep:`585`, and the :mod:`typing` module." +"For more details, see :ref:`generic alias types`, " +":pep:`483`, :pep:`484`, :pep:`585`, and the :mod:`typing` module." msgstr "" +"Weitere Informationen finden Sie unter :ref:`generische Alias-Typen`, :pep:`483`, :pep:`484`, :pep:`585` sowie im Modul " +":mod:`typing` ." msgid "GIL" -msgstr "" +msgstr "GIL" msgid "See :term:`global interpreter lock`." -msgstr "" +msgstr "Siehe :term:`Global Interpreter Lock`." msgid "global interpreter lock" -msgstr "" +msgstr "Global Interpreter Lock" msgid "" "The mechanism used by the :term:`CPython` interpreter to assure that only " @@ -987,40 +1621,84 @@ msgid "" "multi-threaded, at the expense of much of the parallelism afforded by multi-" "processor machines." msgstr "" +"Der Mechanismus, den der :term:`CPython`-Interpreter verwendet, um " +"sicherzustellen, dass jeweils nur ein Thread Python-:term:`Bytecode` " +"ausführt. Dies vereinfacht die CPython-Implementierung, indem das " +"Objektmodell (einschließlich kritischer integrierter Typen wie " +":class:`dict`) implizit gegen gleichzeitigen Zugriff abgesichert wird. Das " +"Sperren des gesamten Interpreters erleichtert die Multithread-Fähigkeit des " +"Interpreters, geht jedoch zu Lasten eines Großteils der Parallelität, die " +"Multiprozessor-Rechner bieten." msgid "" "However, some extension modules, either standard or third-party, are " -"designed so as to release the GIL when doing computationally intensive tasks " -"such as compression or hashing. Also, the GIL is always released when doing " -"I/O." +"designed so as to release the GIL when doing computationally intensive tasks" +" such as compression or hashing. Also, the GIL is always released when " +"doing I/O." msgstr "" +"Einige Erweiterungsmodule – sei es Standardmodule oder Module von " +"Drittanbietern – sind jedoch so konzipiert, dass sie das GIL bei " +"rechenintensiven Aufgaben wie Komprimierung oder Hashing freigeben. Außerdem" +" wird das GIL bei E/A-Vorgängen stets freigegeben." msgid "" -"As of Python 3.13, the GIL can be disabled using the :option:`--disable-gil` " -"build configuration. After building Python with this option, code must be " +"As of Python 3.13, the GIL can be disabled using the :option:`--disable-gil`" +" build configuration. After building Python with this option, code must be " "run with :option:`-X gil=0 <-X>` or after setting the :envvar:`PYTHON_GIL=0 " "` environment variable. This feature enables improved " -"performance for multi-threaded applications and makes it easier to use multi-" -"core CPUs efficiently. For more details, see :pep:`703`." +"performance for multi-threaded applications and makes it easier to use " +"multi-core CPUs efficiently. For more details, see :pep:`703`." msgstr "" +"Ab Python 3.13 kann der GIL mithilfe der Build-Konfiguration " +":option:`--disable-gil` deaktiviert werden. Nach dem Kompilieren von " +"Python mit dieser Option muss der Code mit der Option :option:`-X gil=0 " +"<-X>` ausgeführt werden oder nachdem die Umgebungsvariable " +":envvar:`PYTHON_GIL=0 ` gesetzt wurde. Diese Funktion " +"ermöglicht eine verbesserte Leistung für Multithread-Anwendungen und " +"erleichtert die effiziente Nutzung von Multi-Core-CPUs. Weitere Details " +"finden Sie unter :pep:`703`." msgid "" "In prior versions of Python's C API, a function might declare that it " -"requires the GIL to be held in order to use it. This refers to having an :" -"term:`attached thread state`." +"requires the GIL to be held in order to use it. This refers to having an " +":term:`attached thread state`." msgstr "" +"In früheren Versionen der C-API von Python konnte eine Funktion angeben, " +"dass für ihre Verwendung das GIL gesperrt sein muss. Dies bezieht sich auf " +"einen :term:`angeschlossenen Thread-Zustand`." -msgid "hash-based pyc" +msgid "global state" +msgstr "globaler Zustand" + +msgid "" +"Data that is accessible throughout a program, such as module-level " +"variables, class variables, or C static variables in :term:`extension " +"modules `. In multi-threaded programs, global state " +"shared between threads typically requires synchronization to avoid " +":term:`race conditions ` and :term:`data races `." msgstr "" +"Daten, auf die im gesamten Programm zugegriffen werden kann, wie " +"beispielsweise Variablen auf Modulebene, Klassenvariablen oder statische " +"C-Variablen in :term:`Erweiterungsmodulen `. In " +"Multithread-Programmen erfordert der zwischen Threads gemeinsam genutzte " +"globale Zustand in der Regel eine Synchronisation, um " +":term:`Wettlaufbedingungen ` und :term:`Datenwettläufe ` zu vermeiden." + +msgid "hash-based pyc" +msgstr "Hash-basierte PYC-Datei" msgid "" "A bytecode cache file that uses the hash rather than the last-modified time " "of the corresponding source file to determine its validity. See :ref:`pyc-" "invalidation`." msgstr "" +"Eine Bytecode-Cache-Datei, die zur Überprüfung ihrer Gültigkeit den Hash-" +"Wert anstelle des Zeitstempels der letzten Änderung der entsprechenden " +"Quelldatei heranzieht. Siehe :ref:`pyc-invalidation`." msgid "hashable" -msgstr "" +msgstr "hashbar" msgid "" "An object is *hashable* if it has a hash value which never changes during " @@ -1028,88 +1706,162 @@ msgid "" "compared to other objects (it needs an :meth:`~object.__eq__` method). " "Hashable objects which compare equal must have the same hash value." msgstr "" +"Ein Objekt ist *hashbar*, wenn es einen Hash-Wert besitzt, der sich während " +"seiner Lebensdauer nicht ändert (es benötigt eine :meth:`~object.__hash__`" +" `-Methode), und wenn es mit anderen Objekten verglichen werden kann (es " +"benötigt eine :meth:`~object.__eq__` `-Methode). Hashbare Objekte, die als" +" gleich verglichen werden, müssen denselben Hash-Wert haben." msgid "" "Hashability makes an object usable as a dictionary key and a set member, " "because these data structures use the hash value internally." msgstr "" +"Dank der Hashbarkeit kann ein Objekt als Schlüssel in einem Wörterbuch und " +"als Element in einer Menge verwendet werden, da diese Datenstrukturen intern" +" den Hashwert nutzen." msgid "" -"Most of Python's immutable built-in objects are hashable; mutable containers " -"(such as lists or dictionaries) are not; immutable containers (such as " +"Most of Python's immutable built-in objects are hashable; mutable containers" +" (such as lists or dictionaries) are not; immutable containers (such as " "tuples and frozensets) are only hashable if their elements are hashable. " -"Objects which are instances of user-defined classes are hashable by " -"default. They all compare unequal (except with themselves), and their hash " -"value is derived from their :func:`id`." +"Objects which are instances of user-defined classes are hashable by default." +" They all compare unequal (except with themselves), and their hash value is" +" derived from their :func:`id`." msgstr "" +"Die meisten unveränderlichen, in Python integrierten Objekte sind hashbar; " +"veränderbare Container (wie Listen oder Wörterbücher) sind es nicht; " +"unveränderliche Container (wie Tupel und FrozenSets) sind nur dann hashbar, " +"wenn ihre Elemente hashbar sind. Objekte, die Instanzen benutzerdefinierter" +" Klassen sind, sind standardmäßig hashbar. Sie sind alle ungleich (außer mit" +" sich selbst), und ihr Hash-Wert wird aus ihrem :func:`id` abgeleitet." msgid "IDLE" -msgstr "" +msgstr "LEERLAUF" msgid "" "An Integrated Development and Learning Environment for Python. :ref:`idle` " "is a basic editor and interpreter environment which ships with the standard " "distribution of Python." msgstr "" +"Eine integrierte Entwicklungs- und Lernumgebung für Python. :ref:`idle` " +"ist eine einfache Editor- und Interpreter-Umgebung, die im Lieferumfang der " +"Standarddistribution von Python enthalten ist." msgid "immortal" -msgstr "" +msgstr "unsterblich" msgid "" -"*Immortal objects* are a CPython implementation detail introduced in :pep:" -"`683`." +"*Immortal objects* are a CPython implementation detail introduced in " +":pep:`683`." msgstr "" +"*Unsterbliche Objekte* sind ein Implementierungsdetail von CPython, das in " +":pep:`683` eingeführt wurde." msgid "" -"If an object is immortal, its :term:`reference count` is never modified, and " -"therefore it is never deallocated while the interpreter is running. For " +"If an object is immortal, its :term:`reference count` is never modified, and" +" therefore it is never deallocated while the interpreter is running. For " "example, :const:`True` and :const:`None` are immortal in CPython." msgstr "" +"Ist ein Objekt unsterblich, wird seine :term:`Referenzanzahl` niemals " +"geändert, sodass es während der Laufzeit des Interpreters niemals " +"freigegeben wird. Beispielsweise sind :const:`True` und :const:`None` " +" in CPython unsterblich." msgid "" -"Immortal objects can be identified via :func:`sys._is_immortal`, or via :c:" -"func:`PyUnstable_IsImmortal` in the C API." +"Immortal objects can be identified via :func:`sys._is_immortal`, or via " +":c:func:`PyUnstable_IsImmortal` in the C API." msgstr "" +"Unsterbliche Objekte können über :func:`sys._is_immortal` oder über " +":c:func:`PyUnstable_IsImmortal` in der C-API identifiziert werden." msgid "immutable" -msgstr "" +msgstr "unveränderlich" msgid "" "An object with a fixed value. Immutable objects include numbers, strings " "and tuples. Such an object cannot be altered. A new object has to be " "created if a different value has to be stored. They play an important role " "in places where a constant hash value is needed, for example as a key in a " -"dictionary." -msgstr "" +"dictionary. Immutable objects are inherently :term:`thread-safe` because " +"their state cannot be modified after creation, eliminating concerns about " +"improperly synchronized :term:`concurrent modification`." +msgstr "" +"Ein Objekt mit einem festen Wert. Zu den unveränderlichen Objekten zählen " +"Zahlen, Zeichenketten und Tupel. Ein solches Objekt kann nicht verändert " +"werden. Wenn ein anderer Wert gespeichert werden soll, muss ein neues Objekt" +" erstellt werden. Sie spielen eine wichtige Rolle in Fällen, in denen ein " +"konstanter Hash-Wert benötigt wird, beispielsweise als Schlüssel in einem " +"Wörterbuch. Unveränderliche Objekte sind von Natur aus :term:`thread-safe`," +" da ihr Zustand nach der Erstellung nicht mehr geändert werden kann, wodurch" +" Bedenken hinsichtlich unsachgemäß synchronisierter :term:`gleichzeitiger " +"Änderungen` entfallen." msgid "import path" -msgstr "" +msgstr "Importpfad" msgid "" -"A list of locations (or :term:`path entries `) that are searched " -"by the :term:`path based finder` for modules to import. During import, this " -"list of locations usually comes from :data:`sys.path`, but for subpackages " +"A list of locations (or :term:`path entries `) that are searched" +" by the :term:`path based finder` for modules to import. During import, this" +" list of locations usually comes from :data:`sys.path`, but for subpackages " "it may also come from the parent package's ``__path__`` attribute." msgstr "" +"Eine Liste von Speicherorten (oder :term:`Pfadeinträge `), die " +"vom :term:`Pfad-basierten Finder` nach zu importierenden Modulen durchsucht " +"werden. Beim Import stammt diese Liste der Speicherorte in der Regel aus " +":data:`sys.path`, bei Unterpaketen kann sie jedoch auch aus dem Attribut " +"``__path__`` des übergeordneten Pakets stammen." msgid "importing" -msgstr "" +msgstr "Importieren" msgid "" "The process by which Python code in one module is made available to Python " "code in another module." msgstr "" +"Der Vorgang, durch den Python-Code in einem Modul für Python-Code in einem " +"anderen Modul verfügbar gemacht wird." msgid "importer" +msgstr "Importeur" + +msgid "" +"An object that both finds and loads a module; both a :term:`finder` and " +":term:`loader` object." msgstr "" +"Ein Objekt, das sowohl ein Modul findet als auch lädt; es ist sowohl ein " +":term:`Finder`- als auch ein :term:`Loader`-Objekt." + +msgid "index" +msgstr "Inhaltsverzeichnis" msgid "" -"An object that both finds and loads a module; both a :term:`finder` and :" -"term:`loader` object." +"A numeric value that represents the position of an element in a " +":term:`sequence`." msgstr "" +"Ein numerischer Wert, der die Position eines Elements in einer " +":term:`Sequenz` angibt." -msgid "interactive" +msgid "" +"In Python, indexing starts at zero. For example, ``things[0]`` names the " +"*first* element of ``things``; ``things[1]`` names the second one." +msgstr "" +"In Python beginnt die Indizierung bei Null. So bezeichnet beispielsweise " +"``things[0]`` das *erste* Element von ``things`` ; ``things[1]`` " +"bezeichnet das zweite Element." + +msgid "" +"In some contexts, Python allows negative indexes for counting from the end " +"of a sequence, and indexing using :term:`slices `." msgstr "" +"In bestimmten Kontexten erlaubt Python negative Indizes, um vom Ende einer " +"Sequenz aus zu zählen, sowie die Indizierung mithilfe von :term:`Slices " +"`." + +msgid "See also :term:`subscript`." +msgstr "Siehe auch :term:`Index`." + +msgid "interactive" +msgstr "interaktiv" msgid "" "Python has an interactive interpreter which means you can enter statements " @@ -1119,167 +1871,288 @@ msgid "" "test out new ideas or inspect modules and packages (remember ``help(x)``). " "For more on interactive mode, see :ref:`tut-interac`." msgstr "" +"Python verfügt über einen interaktiven Interpreter, d. h., Sie können " +"Anweisungen und Ausdrücke an der Interpreter-Eingabeaufforderung eingeben, " +"diese sofort ausführen und die Ergebnisse anzeigen lassen. Starten Sie " +"einfach ``python`` ohne Argumente (z. B. über das Hauptmenü Ihres " +"Computers). Dies ist eine sehr leistungsstarke Methode, um neue Ideen " +"auszuprobieren oder Module und Pakete zu untersuchen (siehe auch " +"``help(x)``). Weitere Informationen zum interaktiven Modus finden Sie unter " +":ref:`tut-interac`." msgid "interpreted" -msgstr "" +msgstr "interpretiert" msgid "" "Python is an interpreted language, as opposed to a compiled one, though the " -"distinction can be blurry because of the presence of the bytecode compiler. " -"This means that source files can be run directly without explicitly creating " -"an executable which is then run. Interpreted languages typically have a " -"shorter development/debug cycle than compiled ones, though their programs " -"generally also run more slowly. See also :term:`interactive`." -msgstr "" +"distinction can be blurry because of the presence of the bytecode compiler." +" This means that source files can be run directly without explicitly " +"creating an executable which is then run. Interpreted languages typically " +"have a shorter development/debug cycle than compiled ones, though their " +"programs generally also run more slowly. See also :term:`interactive`." +msgstr "" +"Python ist eine interpretierte Sprache im Gegensatz zu einer kompilierten " +"Sprache, auch wenn diese Unterscheidung aufgrund des Bytecode-Compilers " +"nicht immer eindeutig ist. Das bedeutet, dass Quelldateien direkt ausgeführt" +" werden können, ohne dass zuvor explizit eine ausführbare Datei erstellt und" +" anschließend ausgeführt werden muss. Interpretierte Sprachen haben in der " +"Regel einen kürzeren Entwicklungs- und Debugging-Zyklus als kompilierte " +"Sprachen, allerdings laufen ihre Programme im Allgemeinen auch langsamer. " +"Siehe auch :term:`interaktiv`." msgid "interpreter shutdown" -msgstr "" - -msgid "" -"When asked to shut down, the Python interpreter enters a special phase where " -"it gradually releases all allocated resources, such as modules and various " -"critical internal structures. It also makes several calls to the :term:" -"`garbage collector `. This can trigger the execution of " -"code in user-defined destructors or weakref callbacks. Code executed during " -"the shutdown phase can encounter various exceptions as the resources it " -"relies on may not function anymore (common examples are library modules or " -"the warnings machinery)." -msgstr "" +msgstr "Beenden des Interpreters" + +msgid "" +"When asked to shut down, the Python interpreter enters a special phase where" +" it gradually releases all allocated resources, such as modules and various " +"critical internal structures. It also makes several calls to the " +":term:`garbage collector `. This can trigger the " +"execution of code in user-defined destructors or weakref callbacks. Code " +"executed during the shutdown phase can encounter various exceptions as the " +"resources it relies on may not function anymore (common examples are library" +" modules or the warnings machinery)." +msgstr "" +"Wenn der Python-Interpreter zum Beenden aufgefordert wird, wechselt er in " +"eine spezielle Phase, in der er nach und nach alle zugewiesenen Ressourcen, " +"wie beispielsweise Module und verschiedene wichtige interne Strukturen, " +"freigibt. Außerdem ruft er mehrmals den :term:`Garbage Collector ` auf. Dies kann die Ausführung von Code in benutzerdefinierten " +"Destruktoren oder weakref-Callbacks auslösen. Bei der Ausführung von Code " +"während der Beendigungsphase können verschiedene Ausnahmen auftreten, da die" +" Ressourcen, auf die er angewiesen ist, möglicherweise nicht mehr " +"funktionieren (häufige Beispiele sind Bibliotheksmodule oder die " +"Warnmechanismen)." msgid "" "The main reason for interpreter shutdown is that the ``__main__`` module or " "the script being run has finished executing." msgstr "" +"Der Hauptgrund für das Beenden des Interpreters ist, dass das Modul " +"``__main__`` oder das ausgeführte Skript die Ausführung abgeschlossen hat." msgid "iterable" -msgstr "" +msgstr "iterierbar" msgid "" "An object capable of returning its members one at a time. Examples of " "iterables include all sequence types (such as :class:`list`, :class:`str`, " -"and :class:`tuple`) and some non-sequence types like :class:`dict`, :term:" -"`file objects `, and objects of any classes you define with an :" -"meth:`~object.__iter__` method or with a :meth:`~object.__getitem__` method " -"that implements :term:`sequence` semantics." +"and :class:`tuple`) and some non-sequence types like :class:`dict`, " +":term:`file objects `, and objects of any classes you define " +"with an :meth:`~object.__iter__` method or with a " +":meth:`~object.__getitem__` method that implements :term:`sequence` " +"semantics." msgstr "" +"Ein Objekt, das seine Elemente nacheinander zurückgeben kann. Beispiele für " +"iterierbare Objekte sind alle Sequenztypen (wie :class:`list`, :class:`str` " +"und :class:`tuple`) sowie einige Nicht-Sequenztypen wie :class:`dict`, " +":term:`Dateiobjekte ` und Objekte beliebiger Klassen, die Sie " +"mit einer :meth:`~object.__iter__` -Methode oder einer " +":meth:`~object.__getitem__` -Methode definieren, die die " +":term:`sequence`-Semantik implementiert." msgid "" "Iterables can be used in a :keyword:`for` loop and in many other places " "where a sequence is needed (:func:`zip`, :func:`map`, ...). When an " -"iterable object is passed as an argument to the built-in function :func:" -"`iter`, it returns an iterator for the object. This iterator is good for " -"one pass over the set of values. When using iterables, it is usually not " -"necessary to call :func:`iter` or deal with iterator objects yourself. The :" -"keyword:`for` statement does that automatically for you, creating a " +"iterable object is passed as an argument to the built-in function " +":func:`iter`, it returns an iterator for the object. This iterator is good " +"for one pass over the set of values. When using iterables, it is usually " +"not necessary to call :func:`iter` or deal with iterator objects yourself. " +"The :keyword:`for` statement does that automatically for you, creating a " "temporary unnamed variable to hold the iterator for the duration of the " "loop. See also :term:`iterator`, :term:`sequence`, and :term:`generator`." msgstr "" +"Iterables können in einer :keyword:`for` -Schleife und an vielen anderen " +"Stellen verwendet werden, an denen eine Sequenz benötigt wird (:func:`zip`, " +":func:`map`, …). Wenn ein iterierbares Objekt als Argument an die " +"integrierte Funktion :func:`iter` übergeben wird, gibt diese einen " +"Iterator für das Objekt zurück. Dieser Iterator reicht für einen Durchlauf " +"durch die Wertemenge aus. Bei der Verwendung von Iterables ist es in der " +"Regel nicht notwendig, :func:`iter` aufzurufen oder sich selbst um " +"Iterator-Objekte zu kümmern. Die Anweisung :keyword:`for` übernimmt dies" +" automatisch für Sie und erstellt eine temporäre, unbenannte Variable, die " +"den Iterator für die Dauer der Schleife enthält. Siehe auch " +":term:`iterator`, :term:`sequence` und :term:`generator`." msgid "iterator" -msgstr "" +msgstr "Iterator" msgid "" -"An object representing a stream of data. Repeated calls to the iterator's :" -"meth:`~iterator.__next__` method (or passing it to the built-in function :" -"func:`next`) return successive items in the stream. When no more data are " +"An object representing a stream of data. Repeated calls to the iterator's " +":meth:`~iterator.__next__` method (or passing it to the built-in function " +":func:`next`) return successive items in the stream. When no more data are " "available a :exc:`StopIteration` exception is raised instead. At this " -"point, the iterator object is exhausted and any further calls to its :meth:`!" -"__next__` method just raise :exc:`StopIteration` again. Iterators are " -"required to have an :meth:`~iterator.__iter__` method that returns the " -"iterator object itself so every iterator is also iterable and may be used in " -"most places where other iterables are accepted. One notable exception is " +"point, the iterator object is exhausted and any further calls to its " +":meth:`!__next__` method just raise :exc:`StopIteration` again. Iterators " +"are required to have an :meth:`~iterator.__iter__` method that returns the " +"iterator object itself so every iterator is also iterable and may be used in" +" most places where other iterables are accepted. One notable exception is " "code which attempts multiple iteration passes. A container object (such as " -"a :class:`list`) produces a fresh new iterator each time you pass it to the :" -"func:`iter` function or use it in a :keyword:`for` loop. Attempting this " -"with an iterator will just return the same exhausted iterator object used in " -"the previous iteration pass, making it appear like an empty container." -msgstr "" +"a :class:`list`) produces a fresh new iterator each time you pass it to the " +":func:`iter` function or use it in a :keyword:`for` loop. Attempting this " +"with an iterator will just return the same exhausted iterator object used in" +" the previous iteration pass, making it appear like an empty container." +msgstr "" +"Ein Objekt, das einen Datenstrom darstellt. Wiederholte Aufrufe der Methode " +" :meth:`~iterator.__next__` des Iterators (oder die Übergabe an die " +"integrierte Funktion :func:`next` ) geben aufeinanderfolgende Elemente " +"des Datenstroms zurück. Sind keine Daten mehr verfügbar, wird stattdessen " +"die Ausnahme :exc:`StopIteration` ausgelöst. Zu diesem Zeitpunkt ist " +"das Iterator-Objekt erschöpft, und weitere Aufrufe seiner Methode " +":meth:`!__next__` lösen lediglich erneut eine :exc:`StopIteration` " +"`-Ausnahme aus. Iteratoren müssen über eine Methode " +":meth:`~iterator.__iter__` verfügen, die das Iterator-Objekt selbst " +"zurückgibt, sodass jeder Iterator auch iterierbar ist und an den meisten " +"Stellen verwendet werden kann, an denen andere iterierbare Objekte " +"akzeptiert werden. Eine bemerkenswerte Ausnahme bildet Code, der mehrere " +"Iterationsdurchläufe versucht. Ein Containerobjekt (wie beispielsweise ein " +"` :class:`list``) erzeugt jedes Mal einen neuen Iterator, wenn man es an die" +" Funktion :func:`iter` übergibt oder in einer :keyword:`for` " +"`-Schleife verwendet. Versucht man dies mit einem Iterator, wird lediglich " +"dasselbe erschöpfte Iteratorobjekt zurückgegeben, das bereits im vorherigen " +"Iterationsdurchlauf verwendet wurde, wodurch es so aussieht, als wäre der " +"Container leer." msgid "More information can be found in :ref:`typeiter`." -msgstr "" +msgstr "Weitere Informationen finden Sie unter :ref:`typeiter`." msgid "" -"CPython does not consistently apply the requirement that an iterator define :" -"meth:`~iterator.__iter__`. And also please note that the free-threading " -"CPython does not guarantee the thread-safety of iterator operations." +"CPython does not consistently apply the requirement that an iterator define " +":meth:`~iterator.__iter__`. And also please note that :term:`free-threaded " +"` CPython does not guarantee :term:`thread-safe` behavior of" +" iterator operations." msgstr "" +"CPython wendet die Anforderung, dass ein Iterator " +":meth:`~iterator.__iter__` definieren muss, nicht konsequent an. Beachten " +"Sie außerdem, dass :term:`free-threaded ` CPython kein " +":term:`thread-safe` Verhalten von Iterator-Operationen garantiert." -msgid "key function" -msgstr "" +msgid "key" +msgstr "Schlüssel" msgid "" -"A key function or collation function is a callable that returns a value used " -"for sorting or ordering. For example, :func:`locale.strxfrm` is used to " -"produce a sort key that is aware of locale specific sort conventions." +"A value that identifies an entry in a :term:`mapping`. See also " +":term:`subscript`." msgstr "" +"Ein Wert, der einen Eintrag in einem :term:`Mapping` identifiziert. Siehe " +"auch :term:`Index`." -msgid "" -"A number of tools in Python accept key functions to control how elements are " -"ordered or grouped. They include :func:`min`, :func:`max`, :func:`sorted`, :" -"meth:`list.sort`, :func:`heapq.merge`, :func:`heapq.nsmallest`, :func:`heapq." -"nlargest`, and :func:`itertools.groupby`." -msgstr "" +msgid "key function" +msgstr "Schlüsselfunktion" msgid "" -"There are several ways to create a key function. For example. the :meth:" -"`str.lower` method can serve as a key function for case insensitive sorts. " -"Alternatively, a key function can be built from a :keyword:`lambda` " -"expression such as ``lambda r: (r[0], r[2])``. Also, :func:`operator." -"attrgetter`, :func:`operator.itemgetter`, and :func:`operator.methodcaller` " -"are three key function constructors. See the :ref:`Sorting HOW TO " -"` for examples of how to create and use key functions." +"A key function or collation function is a callable that returns a value used" +" for sorting or ordering. For example, :func:`locale.strxfrm` is used to " +"produce a sort key that is aware of locale specific sort conventions." msgstr "" +"Eine Schlüsselfunktion oder Sortierfunktion ist ein aufrufbares Objekt, das " +"einen Wert zurückgibt, der zum Sortieren oder Ordnen verwendet wird. " +"Beispielsweise wird :func:`locale.strxfrm` verwendet, um einen " +"Sortierschlüssel zu erzeugen, der die lokalspezifischen Sortierkonventionen " +"berücksichtigt." + +msgid "" +"A number of tools in Python accept key functions to control how elements are" +" ordered or grouped. They include :func:`min`, :func:`max`, :func:`sorted`," +" :meth:`list.sort`, :func:`heapq.merge`, :func:`heapq.nsmallest`, " +":func:`heapq.nlargest`, and :func:`itertools.groupby`." +msgstr "" +"Eine Reihe von Tools in Python unterstützt Schlüssel-Funktionen, mit denen " +"sich die Anordnung oder Gruppierung von Elementen steuern lässt. Dazu " +"gehören :func:`min` , :func:`max` , :func:`sorted` , " +":meth:`list.sort` , :func:`heapq.merge` , :func:`heapq.nsmallest` , " +" :func:`heapq.nlargest` und :func:`itertools.groupby` ." + +msgid "" +"There are several ways to create a key function. For example. the " +":meth:`str.casefold` method can serve as a key function for case insensitive" +" sorts. Alternatively, a key function can be built from a :keyword:`lambda`" +" expression such as ``lambda r: (r[0], r[2])``. Also, " +":func:`operator.attrgetter`, :func:`operator.itemgetter`, and " +":func:`operator.methodcaller` are three key function constructors. See the " +":ref:`Sorting HOW TO ` for examples of how to create and use " +"key functions." +msgstr "" +"Es gibt verschiedene Möglichkeiten, eine Schlüsselfunktion zu erstellen. " +"Beispielsweise kann die Methode :meth:`str.casefold` als " +"Schlüsselfunktion für die Sortierung ohne Berücksichtigung der " +"Groß-/Kleinschreibung dienen. Alternativ kann eine Schlüsselfunktion aus " +"einem Ausdruck vom Typ :keyword:`lambda` erstellt werden, wie " +"beispielsweise ``lambda r: (r[0], r[2])``. Außerdem sind " +":func:`operator.attrgetter`, :func:`operator.itemgetter` und " +":func:`operator.methodcaller` drei Konstruktoren für Schlüsselfunktionen. " +"Beispiele für die Erstellung und Verwendung von Schlüsselfunktionen finden " +"Sie im :ref:`Sorting HOW TO `." msgid "keyword argument" -msgstr "" +msgstr "Schlüsselwortargument" msgid "See :term:`argument`." -msgstr "" +msgstr "Siehe :term:`Argument`." msgid "lambda" -msgstr "" +msgstr "Lambda" msgid "" -"An anonymous inline function consisting of a single :term:`expression` which " -"is evaluated when the function is called. The syntax to create a lambda " +"An anonymous inline function consisting of a single :term:`expression` which" +" is evaluated when the function is called. The syntax to create a lambda " "function is ``lambda [parameters]: expression``" msgstr "" +"Eine anonyme Inline-Funktion, die aus einem einzigen :term:`Ausdruck` " +"besteht, der beim Aufruf der Funktion ausgewertet wird. Die Syntax zum " +"Erstellen einer Lambda-Funktion lautet ``lambda [parameters]: expression``" msgid "LBYL" -msgstr "" +msgstr "LBYL" msgid "" -"Look before you leap. This coding style explicitly tests for pre-conditions " -"before making calls or lookups. This style contrasts with the :term:`EAFP` " -"approach and is characterized by the presence of many :keyword:`if` " +"Look before you leap. This coding style explicitly tests for pre-conditions" +" before making calls or lookups. This style contrasts with the :term:`EAFP`" +" approach and is characterized by the presence of many :keyword:`if` " "statements." msgstr "" +"Erst schauen, dann springen. Bei diesem Programmierstil werden " +"Vorbedingungen explizit geprüft, bevor Funktionen aufgerufen oder Abfragen " +"durchgeführt werden. Dieser Stil steht im Gegensatz zum :term:`EAFP`-Ansatz " +"und zeichnet sich durch das häufige Vorkommen von :keyword:`if` -Anweisungen" +" aus." msgid "" "In a multi-threaded environment, the LBYL approach can risk introducing a " -"race condition between \"the looking\" and \"the leaping\". For example, " -"the code, ``if key in mapping: return mapping[key]`` can fail if another " -"thread removes *key* from *mapping* after the test, but before the lookup. " -"This issue can be solved with locks or by using the EAFP approach." -msgstr "" +":term:`race condition` between \"the looking\" and \"the leaping\". For " +"example, the code, ``if key in mapping: return mapping[key]`` can fail if " +"another thread removes *key* from *mapping* after the test, but before the " +"lookup. This issue can be solved with :term:`locks ` or by using the " +":term:`EAFP` approach. See also :term:`thread-safe`." +msgstr "" +"In einer Multithread-Umgebung besteht bei dem LBYL-Ansatz die Gefahr, dass " +"eine :term:`Race Condition` zwischen dem \"Nachschlagen\“ und dem \"Springen\“ " +"entsteht. Beispielsweise kann der Code ``if key in mapping: return " +"mapping[key]`` fehlschlagen, wenn ein anderer Thread *key* nach dem Test, " +"aber vor der Suche aus *mapping* entfernt. Dieses Problem lässt sich mit " +":term:`Locks ` oder durch Verwendung des :term:`EAFP`-Ansatzes lösen. " +"Siehe auch :term:`thread-safe`." msgid "lexical analyzer" -msgstr "" +msgstr "Lexikalischer Analysator" msgid "Formal name for the *tokenizer*; see :term:`token`." -msgstr "" +msgstr "Formale Bezeichnung für den *Tokenizer*; siehe :term:`token`." msgid "list" -msgstr "" +msgstr "Liste" msgid "" "A built-in Python :term:`sequence`. Despite its name it is more akin to an " "array in other languages than to a linked list since access to elements is " "*O*\\ (1)." msgstr "" +"Eine in Python integrierte :term:`Sequenz`. Trotz ihres Namens ähnelt sie " +"eher einem Array in anderen Sprachen als einer verketteten Liste, da der " +"Zugriff auf die Elemente *O*\\ (1) ist." msgid "list comprehension" -msgstr "" +msgstr "Listenkomprimierung" msgid "" "A compact way to process all or part of the elements in a sequence and " @@ -1288,81 +2161,163 @@ msgid "" "numbers (0x..) in the range from 0 to 255. The :keyword:`if` clause is " "optional. If omitted, all elements in ``range(256)`` are processed." msgstr "" +"Eine kompakte Möglichkeit, alle oder einen Teil der Elemente einer Sequenz " +"zu verarbeiten und eine Liste mit den Ergebnissen zurückzugeben. ``result" +" = ['{:#04x}'.format(x) for x in range(256) if x % 2 == 0]`` generiert " +"eine Liste von Zeichenketten, die gerade Hexadezimalzahlen (0x..) im Bereich" +" von 0 bis 255 enthalten. Die Klausel :keyword:`if` ist optional. Wird " +"sie weggelassen, werden alle Elemente in ``range(256)`` verarbeitet." + +msgid "lock" +msgstr "Schloss" + +msgid "" +"A :term:`synchronization primitive` that allows only one thread at a time to" +" access a shared resource. A thread must acquire a lock before accessing " +"the protected resource and release it afterward. If a thread attempts to " +"acquire a lock that is already held by another thread, it will block until " +"the lock becomes available. Python's :mod:`threading` module provides " +":class:`~threading.Lock` (a basic lock) and :class:`~threading.RLock` (a " +":term:`reentrant` lock). Locks are used to prevent :term:`race conditions " +"` and ensure :term:`thread-safe` access to shared data. " +"Alternative design patterns to locks exist such as queues, producer/consumer" +" patterns, and thread-local state. See also :term:`deadlock`, and " +":term:`reentrant`." +msgstr "" +"Eine :term:`Synchronisationsprimitive`, die es nur einem Thread gleichzeitig" +" erlaubt, auf eine gemeinsam genutzte Ressource zuzugreifen. Ein Thread muss" +" vor dem Zugriff auf die geschützte Ressource eine Sperre erwerben und diese" +" anschließend wieder freigeben. Versucht ein Thread, eine Sperre zu " +"erwerben, die bereits von einem anderen Thread gehalten wird, wird er " +"blockiert, bis die Sperre verfügbar wird. Das Python-Modul " +":mod:`threading` stellt :class:`~threading.Lock` (eine einfache " +"Sperre) und :class:`~threading.RLock` (eine :term:`reentrante` Sperre) " +"bereit. Sperren werden verwendet, um :term:`Race-Conditions ` zu verhindern und einen :term:`thread-safe` Zugriff auf " +"gemeinsam genutzte Daten zu gewährleisten. Es gibt alternative " +"Entwurfsmuster zu Sperren, wie z. B. Warteschlangen, Produzenten-" +"Konsumenten-Muster und thread-lokale Zustände. Siehe auch :term:`Deadlock` " +"und :term:`reentrant`." + +msgid "lock-free" +msgstr "sperrfrei" + +msgid "" +"An operation that does not acquire any :term:`lock` and uses atomic CPU " +"instructions to ensure correctness. Lock-free operations can execute " +"concurrently without blocking each other and cannot be blocked by operations" +" that hold locks. In :term:`free-threaded ` Python, built-in" +" types like :class:`dict` and :class:`list` provide lock-free read " +"operations, which means other threads may observe intermediate states during" +" multi-step modifications even when those modifications hold the :term:`per-" +"object lock`." +msgstr "" +"Eine Operation, die keine :term:`Sperre` erwirbt und atomare CPU-Befehle " +"verwendet, um die Korrektheit zu gewährleisten. Sperrfreie Operationen " +"können parallel ausgeführt werden, ohne sich gegenseitig zu blockieren, und " +"können nicht durch Operationen blockiert werden, die Sperren halten. In " +":term:`free-threaded ` Python bieten integrierte Typen wie " +":class:`dict` und :class:`list` lock-freie Leseoperationen, was bedeutet, " +"dass andere Threads bei mehrstufigen Änderungen Zwischenzustände beobachten " +"können, selbst wenn diese Änderungen die :term:`per-object lock` halten." msgid "loader" -msgstr "" +msgstr "Lader" msgid "" -"An object that loads a module. It must define the :meth:`!exec_module` and :" -"meth:`!create_module` methods to implement the :class:`~importlib.abc." -"Loader` interface. A loader is typically returned by a :term:`finder`. See " -"also:" +"An object that loads a module. It must define the :meth:`!exec_module` and " +":meth:`!create_module` methods to implement the " +":class:`~importlib.abc.Loader` interface. A loader is typically returned by " +"a :term:`finder`. See also:" msgstr "" +"Ein Objekt, das ein Modul lädt. Es muss die Methoden :meth:`!exec_module` " +" und :meth:`!create_module` definieren, um die Schnittstelle " +":class:`~importlib.abc.Loader` zu implementieren. Ein Loader wird in der " +"Regel von einem :term:`finder` zurückgegeben. Siehe auch:" msgid ":ref:`finders-and-loaders`" -msgstr "" +msgstr ":ref:`finders-and-loaders`" msgid ":class:`importlib.abc.Loader`" -msgstr "" +msgstr ":class:`importlib.abc.Loader`" msgid ":pep:`302`" -msgstr "" +msgstr ":pep:`302`" msgid "locale encoding" -msgstr "" +msgstr "Ländereinstellung, Kodierung" msgid "" -"On Unix, it is the encoding of the LC_CTYPE locale. It can be set with :func:" -"`locale.setlocale(locale.LC_CTYPE, new_locale) `." +"On Unix, it is the encoding of the LC_CTYPE locale. It can be set with " +":func:`locale.setlocale(locale.LC_CTYPE, new_locale) `." msgstr "" +"Unter Unix handelt es sich um die Kodierung der Locale LC_CTYPE. Sie kann " +"mit :func:`locale.setlocale(locale.LC_CTYPE, new_locale) " +"`` festgelegt werden." msgid "On Windows, it is the ANSI code page (ex: ``\"cp1252\"``)." -msgstr "" +msgstr "Unter Windows ist dies die ANSI-Codepage (z. B.: ``\"cp1252\"``)." -msgid "" -"On Android and VxWorks, Python uses ``\"utf-8\"`` as the locale encoding." +msgid "On Android and VxWorks, Python uses ``\"utf-8\"`` as the locale encoding." msgstr "" +"Unter Android und VxWorks verwendet Python ``\"utf-8\"`` als Locale-" +"Kodierung." msgid ":func:`locale.getencoding` can be used to get the locale encoding." msgstr "" +":func:`locale.getencoding` kann verwendet werden, um die Kodierung der " +"Ländereinstellung abzurufen." msgid "See also the :term:`filesystem encoding and error handler`." msgstr "" +"Siehe auch den Eintrag :term:`Dateisystem-Kodierung und Fehlerbehandlung`." msgid "magic method" -msgstr "" +msgstr "magische Methode" msgid "An informal synonym for :term:`special method`." -msgstr "" +msgstr "Ein umgangssprachliches Synonym für :term:`Spezialmethode`." msgid "mapping" -msgstr "" +msgstr "Kartierung" msgid "" "A container object that supports arbitrary key lookups and implements the " -"methods specified in the :class:`collections.abc.Mapping` or :class:" -"`collections.abc.MutableMapping` :ref:`abstract base classes `. Examples include :class:`dict`, :class:" -"`collections.defaultdict`, :class:`collections.OrderedDict` and :class:" -"`collections.Counter`." -msgstr "" +"methods specified in the :class:`collections.abc.Mapping` or " +":class:`collections.abc.MutableMapping` :ref:`abstract base classes " +"`. Examples include :class:`dict`, " +":class:`collections.defaultdict`, :class:`collections.OrderedDict` and " +":class:`collections.Counter`." +msgstr "" +"Ein Container-Objekt, das die Suche nach beliebigen Schlüsseln unterstützt " +"und die Methoden implementiert, die in den :class:`collections.abc.Mapping` " +"oder :class:`collections.abc.MutableMapping`:ref:`abstrakten Basisklassen " +"` festgelegt sind. Beispiele hierfür sind" +" :class:`dict`, :class:`collections.defaultdict`, " +":class:`collections.OrderedDict` und :class:`collections.Counter`." msgid "meta path finder" -msgstr "" +msgstr "Meta-Pfadfinder" msgid "" "A :term:`finder` returned by a search of :data:`sys.meta_path`. Meta path " "finders are related to, but different from :term:`path entry finders `." msgstr "" +"Ein :term:`Finder`, der bei einer Suche auf :data:`sys.meta_path` " +"zurückgegeben wird. Meta-Pfadfinder stehen in Zusammenhang mit " +":term:`Pfadeintrags-Findern `, unterscheiden sich jedoch " +"von diesen." msgid "" "See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " "finders implement." msgstr "" +"Unter :class:`importlib.abc.MetaPathFinder` finden Sie die Methoden, die " +"Meta-Path-Finder implementieren." msgid "metaclass" -msgstr "" +msgstr "Metaklasse" msgid "" "The class of a class. Class definitions create a class name, a class " @@ -1375,80 +2330,121 @@ msgid "" "access, adding thread-safety, tracking object creation, implementing " "singletons, and many other tasks." msgstr "" +"Die Klasse einer Klasse. Klassendefinitionen legen einen Klassennamen, ein " +"Klassenwörterbuch und eine Liste von Basisklassen fest. Die Metaklasse ist " +"dafür zuständig, diese drei Argumente zu übernehmen und die Klasse zu " +"erstellen. Die meisten objektorientierten Programmiersprachen bieten eine " +"Standardimplementierung. Das Besondere an Python ist, dass es möglich ist, " +"benutzerdefinierte Metaklassen zu erstellen. Die meisten Nutzer benötigen " +"dieses Werkzeug nie, doch wenn der Bedarf entsteht, können Metaklassen " +"leistungsstarke und elegante Lösungen bieten. Sie wurden bereits zur " +"Protokollierung des Zugriffs auf Attribute, zur Gewährleistung der Thread-" +"Sicherheit, zur Verfolgung der Objekterstellung, zur Implementierung von " +"Singletons und für viele andere Aufgaben eingesetzt." msgid "More information can be found in :ref:`metaclasses`." -msgstr "" +msgstr "Weitere Informationen finden Sie unter :ref:`metaclasses`." msgid "method" -msgstr "" +msgstr "Methode" msgid "" "A function which is defined inside a class body. If called as an attribute " -"of an instance of that class, the method will get the instance object as its " -"first :term:`argument` (which is usually called ``self``). See :term:" -"`function` and :term:`nested scope`." +"of an instance of that class, the method will get the instance object as its" +" first :term:`argument` (which is usually called ``self``). See " +":term:`function` and :term:`nested scope`." msgstr "" +"Eine Funktion, die innerhalb des Klassenkörpers definiert ist. Wird sie als " +"Attribut einer Instanz dieser Klasse aufgerufen, erhält die Methode das " +"Instanzobjekt als erstes :term:`Argument` (das üblicherweise als ``self`` " +" bezeichnet wird). Siehe :term:`function` und :term:`nested scope`." msgid "method resolution order" -msgstr "" +msgstr "Reihenfolge der Methodenauflösung" msgid "" "Method Resolution Order is the order in which base classes are searched for " "a member during lookup. See :ref:`python_2.3_mro` for details of the " "algorithm used by the Python interpreter since the 2.3 release." msgstr "" +"Die Auflösungsreihenfolge von Methoden ist die Reihenfolge, in der bei der " +"Suche nach einem Mitglied die Basisklassen durchsucht werden. Weitere " +"Informationen zu dem Algorithmus, der seit der Version 2.3 vom Python-" +"Interpreter verwendet wird, finden Sie unter :ref:`python_2.3_mro`." msgid "module" -msgstr "" +msgstr "Modul" msgid "" "An object that serves as an organizational unit of Python code. Modules " "have a namespace containing arbitrary Python objects. Modules are loaded " "into Python by the process of :term:`importing`." msgstr "" +"Ein Objekt, das als Organisationseinheit für Python-Code dient. Module " +"verfügen über einen Namensraum, der beliebige Python-Objekte enthält. Module" +" werden durch den Vorgang des :term:`Importierens` in Python geladen." msgid "See also :term:`package`." -msgstr "" +msgstr "Siehe auch :term:`Paket`." msgid "module spec" -msgstr "" +msgstr "Modulspezifikation" msgid "" -"A namespace containing the import-related information used to load a module. " -"An instance of :class:`importlib.machinery.ModuleSpec`." +"A namespace containing the import-related information used to load a module." +" An instance of :class:`importlib.machinery.ModuleSpec`." msgstr "" +"Ein Namespace, der die Import-bezogenen Informationen enthält, die zum Laden" +" eines Moduls verwendet werden. Eine Instanz von " +":class:`importlib.machinery.ModuleSpec`." msgid "See also :ref:`module-specs`." -msgstr "" +msgstr "Siehe auch :ref:`module-specs`." msgid "MRO" -msgstr "" +msgstr "MRO" msgid "See :term:`method resolution order`." -msgstr "" +msgstr "Siehe :term:`Reihenfolge der Methodenauflösung`." msgid "mutable" -msgstr "" +msgstr "veränderlich" msgid "" -"Mutable objects can change their value but keep their :func:`id`. See also :" -"term:`immutable`." +"An :term:`object` with state that is allowed to change during the course of " +"the program. In multi-threaded programs, mutable objects that are shared " +"between threads require careful synchronization to avoid :term:`race " +"conditions `. See also :term:`immutable`, :term:`thread-" +"safe`, and :term:`concurrent modification`." msgstr "" +"Ein :term:`Objekt` mit einem Zustand, der sich im Verlauf des Programms " +"ändern darf. In Multithread-Programmen erfordern veränderbare Objekte, die " +"von mehreren Threads gemeinsam genutzt werden, eine sorgfältige " +"Synchronisation, um :term:`Race-Conditions ` zu vermeiden. " +"Siehe auch :term:`unveränderlich`, :term:`thread-sicher` und " +":term:`parallele Änderung`." msgid "named tuple" -msgstr "" +msgstr "benanntes Tupel" msgid "" "The term \"named tuple\" applies to any type or class that inherits from " "tuple and whose indexable elements are also accessible using named " "attributes. The type or class may have other features as well." msgstr "" +"Der Begriff \"benanntes Tupel\“ bezieht sich auf jeden Typ oder jede Klasse, " +"die von \"Tupel\“ erbt und deren indizierbare Elemente auch über benannte " +"Attribute zugänglich sind. Der Typ oder die Klasse kann darüber hinaus noch " +"weitere Merkmale aufweisen." msgid "" -"Several built-in types are named tuples, including the values returned by :" -"func:`time.localtime` and :func:`os.stat`. Another example is :data:`sys." -"float_info`::" +"Several built-in types are named tuples, including the values returned by " +":func:`time.localtime` and :func:`os.stat`. Another example is " +":data:`sys.float_info`::" msgstr "" +"Mehrere integrierte Datentypen werden als Tupel bezeichnet, darunter die von" +" :func:`time.localtime` und :func:`os.stat`` zurückgegebenen Werte. " +"Ein weiteres Beispiel ist :data:`sys.float_info``: ::" msgid "" ">>> sys.float_info[1] # indexed access\n" @@ -1458,56 +2454,110 @@ msgid "" ">>> isinstance(sys.float_info, tuple) # kind of tuple\n" "True" msgstr "" +">>> sys.float_info[1] # indizierter Zugriff\n" +"1024\n" +">>> sys.float_info.max_exp # Zugriff auf ein benanntes Feld\n" +"1024\n" +">>> isinstance(sys.float_info, tuple) # Typ eines Tupels\n" +"True" msgid "" "Some named tuples are built-in types (such as the above examples). " "Alternatively, a named tuple can be created from a regular class definition " "that inherits from :class:`tuple` and that defines named fields. Such a " -"class can be written by hand, or it can be created by inheriting :class:" -"`typing.NamedTuple`, or with the factory function :func:`collections." -"namedtuple`. The latter techniques also add some extra methods that may not " -"be found in hand-written or built-in named tuples." -msgstr "" +"class can be written by hand, or it can be created by inheriting " +":class:`typing.NamedTuple`, or with the factory function " +":func:`collections.namedtuple`. The latter techniques also add some extra " +"methods that may not be found in hand-written or built-in named tuples." +msgstr "" +"Einige benannte Tupel sind integrierte Typen (wie die obigen Beispiele). " +"Alternativ kann ein benanntes Tupel aus einer regulären Klassendefinition " +"erstellt werden, die von :class:`tuple` erbt und benannte Felder " +"definiert. Eine solche Klasse kann manuell geschrieben werden oder durch " +"Vererbung von :class:`typing.NamedTuple`` bzw. mit der Factory-Funktion " +":func:`collections.namedtuple`` erstellt werden. Die letztgenannten " +"Techniken fügen zudem einige zusätzliche Methoden hinzu, die in manuell " +"geschriebenen oder integrierten benannten Tupeln möglicherweise nicht " +"vorhanden sind." msgid "namespace" -msgstr "" +msgstr "Namensraum" msgid "" "The place where a variable is stored. Namespaces are implemented as " "dictionaries. There are the local, global and built-in namespaces as well " -"as nested namespaces in objects (in methods). Namespaces support modularity " -"by preventing naming conflicts. For instance, the functions :func:`builtins." -"open <.open>` and :func:`os.open` are distinguished by their namespaces. " -"Namespaces also aid readability and maintainability by making it clear which " -"module implements a function. For instance, writing :func:`random.seed` or :" -"func:`itertools.islice` makes it clear that those functions are implemented " -"by the :mod:`random` and :mod:`itertools` modules, respectively." -msgstr "" +"as nested namespaces in objects (in methods). Namespaces support modularity" +" by preventing naming conflicts. For instance, the functions " +":func:`builtins.open <.open>` and :func:`os.open` are distinguished by their" +" namespaces. Namespaces also aid readability and maintainability by making " +"it clear which module implements a function. For instance, writing " +":func:`random.seed` or :func:`itertools.islice` makes it clear that those " +"functions are implemented by the :mod:`random` and :mod:`itertools` modules," +" respectively." +msgstr "" +"Der Ort, an dem eine Variable gespeichert wird. Namensräume werden als " +"Wörterbücher implementiert. Es gibt lokale, globale und integrierte " +"Namensräume sowie verschachtelte Namensräume in Objekten (in Methoden). " +"Namensräume unterstützen die Modularität, indem sie Namenskonflikte " +"verhindern. Beispielsweise unterscheiden sich die Funktionen " +":func:`builtins.open <.open>` und :func:`os.open` durch ihre Namensräume. " +"Namensräume tragen zudem zur Lesbarkeit und Wartbarkeit bei, indem sie " +"deutlich machen, welches Modul eine Funktion implementiert. Wenn man " +"beispielsweise :func:`random.seed` oder :func:`itertools.islice` schreibt, " +"wird deutlich, dass diese Funktionen jeweils von den Modulen :mod:`random` " +"und :mod:`itertools` implementiert werden." msgid "namespace package" -msgstr "" +msgstr "Namensraum-Paket" msgid "" "A :term:`package` which serves only as a container for subpackages. " -"Namespace packages may have no physical representation, and specifically are " -"not like a :term:`regular package` because they have no ``__init__.py`` file." +"Namespace packages may have no physical representation, and specifically are" +" not like a :term:`regular package` because they have no ``__init__.py`` " +"file." msgstr "" +"Ein :term:`Paket`, das ausschließlich als Container für Unterpakete dient. " +"Namespace-Pakete haben möglicherweise keine physische Darstellung und " +"unterscheiden sich insbesondere von einem :term:`normalen Paket`, da sie " +"keine Datei ``__init__.py`` enthalten." msgid "" -"Namespace packages allow several individually installable packages to have a " -"common parent package. Otherwise, it is recommended to use a :term:`regular " -"package`." +"Namespace packages allow several individually installable packages to have a" +" common parent package. Otherwise, it is recommended to use a :term:`regular" +" package`." msgstr "" +"Namespace-Pakete ermöglichen es, dass mehrere einzeln installierbare Pakete " +"ein gemeinsames übergeordnetes Paket haben. Andernfalls wird empfohlen, ein " +":term:`normales Paket` zu verwenden." msgid "" "For more information, see :pep:`420` and :ref:`reference-namespace-package`." msgstr "" +"Weitere Informationen finden Sie unter :pep:`420` und :ref:`reference-" +"namespace-package`." msgid "See also :term:`module`." +msgstr "Siehe auch :term:`Modul`." + +msgid "native code" +msgstr "Nativcode" + +msgid "" +"Code that is compiled to machine instructions and runs directly on the " +"processor, as opposed to code that is interpreted or runs in a virtual " +"machine. In the context of Python, native code typically refers to C, C++, " +"Rust or Fortran code in :term:`extension modules ` that " +"can be called from Python. See also :term:`extension module`." msgstr "" +"Code, der zu Maschinenbefehlen kompiliert wird und direkt auf dem Prozessor " +"ausgeführt wird, im Gegensatz zu Code, der interpretiert wird oder in einer " +"virtuellen Maschine läuft. Im Zusammenhang mit Python bezieht sich \"nativer" +" Code\“ in der Regel auf C-, C++-, Rust- oder Fortran-Code in " +":term:`Erweiterungsmodulen `, der von Python aus " +"aufgerufen werden kann. Siehe auch :term:`Erweiterungsmodul`." msgid "nested scope" -msgstr "" +msgstr "verschachtelter Gültigkeitsbereich" msgid "" "The ability to refer to a variable in an enclosing definition. For " @@ -1517,58 +2567,153 @@ msgid "" "the innermost scope. Likewise, global variables read and write to the " "global namespace. The :keyword:`nonlocal` allows writing to outer scopes." msgstr "" +"Die Möglichkeit, in einer umschließenden Definition auf eine Variable zu " +"verweisen. So kann beispielsweise eine innerhalb einer anderen Funktion " +"definierte Funktion auf Variablen in der äußeren Funktion verweisen. " +"Beachten Sie, dass verschachtelte Gültigkeitsbereiche standardmäßig nur für " +"Verweise und nicht für Zuweisungen gelten. Lokale Variablen lesen und " +"schreiben im innersten Gültigkeitsbereich. Ebenso lesen und schreiben " +"globale Variablen im globalen Namensraum. Die Anweisung " +":keyword:`nonlocal` ermöglicht das Schreiben in äußere " +"Gültigkeitsbereiche." msgid "new-style class" -msgstr "" +msgstr "Klasse im neuen Stil" msgid "" "Old name for the flavor of classes now used for all class objects. In " "earlier Python versions, only new-style classes could use Python's newer, " -"versatile features like :attr:`~object.__slots__`, descriptors, properties, :" -"meth:`~object.__getattribute__`, class methods, and static methods." -msgstr "" +"versatile features like :attr:`~object.__slots__`, descriptors, properties, " +":meth:`~object.__getattribute__`, class methods, and static methods." +msgstr "" +"Alte Bezeichnung für den \"Flavor\“ von Klassen, der nun für alle " +"Klassenobjekte verwendet wird. In früheren Python-Versionen konnten nur " +"Klassen des neuen Stils die neueren, vielseitigen Funktionen von Python " +"nutzen, wie beispielsweise :attr:`~object.__slots__` , Deskriptoren, " +"Eigenschaften, :meth:`~object.__getattribute__` , Klassenmethoden und " +"statische Methoden." + +msgid "non-deterministic" +msgstr "nicht deterministisch" + +msgid "" +"Behavior where the outcome of a program can vary between executions with the" +" same inputs. In multi-threaded programs, non-deterministic behavior often " +"results from :term:`race conditions ` where the relative " +"timing or interleaving of threads affects the result. Proper synchronization" +" using :term:`locks ` and other :term:`synchronization primitives " +"` helps ensure deterministic behavior." +msgstr "" +"Verhalten, bei dem das Ergebnis eines Programms bei gleichen Eingaben von " +"Ausführung zu Ausführung variieren kann. In Multithread-Programmen " +"resultiert nichtdeterministisches Verhalten häufig aus :term:`Race-" +"Conditions `, bei denen der relative zeitliche Ablauf oder " +"die Verflechtung von Threads das Ergebnis beeinflusst. Eine ordnungsgemäße " +"Synchronisation mithilfe von :term:`Locks ` und anderen " +":term:`Synchronisationsprimitiven ` trägt dazu " +"bei, ein deterministisches Verhalten sicherzustellen." msgid "object" -msgstr "" +msgstr "Objekt" msgid "" "Any data with state (attributes or value) and defined behavior (methods). " "Also the ultimate base class of any :term:`new-style class`." msgstr "" +"Jede Dateninstanz mit einem Zustand (Attribute oder Wert) und definiertem " +"Verhalten (Methoden). Außerdem die oberste Basisklasse jeder :term:`Klasse " +"neuen Stils`." msgid "optimized scope" -msgstr "" +msgstr "optimierter Umfang" msgid "" -"A scope where target local variable names are reliably known to the compiler " -"when the code is compiled, allowing optimization of read and write access to " -"these names. The local namespaces for functions, generators, coroutines, " +"A scope where target local variable names are reliably known to the compiler" +" when the code is compiled, allowing optimization of read and write access " +"to these names. The local namespaces for functions, generators, coroutines, " "comprehensions, and generator expressions are optimized in this fashion. " "Note: most interpreter optimizations are applied to all scopes, only those " "relying on a known set of local and nonlocal variable names are restricted " "to optimized scopes." msgstr "" +"Ein Geltungsbereich, in dem die Namen der lokalen Zielvariablen dem Compiler" +" zum Zeitpunkt der Kompilierung zuverlässig bekannt sind, wodurch der Lese- " +"und Schreibzugriff auf diese Namen optimiert werden kann. Die lokalen " +"Namensräume für Funktionen, Generatoren, Koroutinen, Comprehensions und " +"Generatorausdrücke werden auf diese Weise optimiert. Hinweis: Die meisten " +"Interpreter-Optimierungen werden auf alle Gültigkeitsbereiche angewendet; " +"nur diejenigen, die auf einer bekannten Menge lokaler und nichtlokaler " +"Variablennamen beruhen, sind auf optimierte Gültigkeitsbereiche beschränkt." -msgid "package" +msgid "optional module" +msgstr "optionales Modul" + +msgid "" +"An :term:`extension module` that is part of the :term:`standard library`, " +"but may be absent in some builds of :term:`CPython`, usually due to missing " +"third-party libraries or because the module is not available for a given " +"platform." msgstr "" +"Ein :term:`Erweiterungsmodul`, das Teil der :term:`Standardbibliothek` ist, " +"jedoch in einigen Builds von :term:`CPython` möglicherweise fehlt – in der " +"Regel aufgrund fehlender Bibliotheken von Drittanbietern oder weil das Modul" +" für eine bestimmte Plattform nicht verfügbar ist." + +msgid "" +"See :ref:`optional-module-requirements` for a list of optional modules that " +"require third-party libraries." +msgstr "" +"Eine Liste der optionalen Module, für die Bibliotheken von Drittanbietern " +"erforderlich sind, finden Sie unter :ref:`optional-module-requirements`." + +msgid "package" +msgstr "Paket" msgid "" "A Python :term:`module` which can contain submodules or recursively, " "subpackages. Technically, a package is a Python module with a ``__path__`` " "attribute." msgstr "" +"Ein Python-:term:`Modul`, das Untermodule oder – rekursiv – Unterpakete " +"enthalten kann. Technisch gesehen ist ein Paket ein Python-Modul mit einem " +"Attribut vom Typ ``__path__`` ." msgid "See also :term:`regular package` and :term:`namespace package`." +msgstr "Siehe auch :term:`reguläres Paket` und :term:`Namensraum-Paket`." + +msgid "parallelism" +msgstr "Parallelität" + +msgid "" +"Executing multiple operations at the same time (e.g. on multiple CPU cores)." +" In Python builds with the :term:`global interpreter lock (GIL) `, only one thread runs Python bytecode at a time, so " +"taking advantage of multiple CPU cores typically involves multiple processes" +" (e.g. :mod:`multiprocessing`) or native extensions that release the GIL. In" +" :term:`free-threaded ` Python, multiple Python threads can " +"run Python code simultaneously on different cores." msgstr "" +"Die gleichzeitige Ausführung mehrerer Operationen (z. B. auf mehreren CPU-" +"Kernen). In Python-Builds mit dem :term:`global interpreter lock (GIL) " +"` führt jeweils nur ein Thread Python-Bytecode aus." +" Um die Vorteile mehrerer CPU-Kerne nutzen zu können, sind daher in der " +"Regel mehrere Prozesse (z. B. :mod:`multiprocessing`) oder native " +"Erweiterungen erforderlich, die das GIL aufheben. In :term:`free-threaded " +"` Python können mehrere Python-Threads Python-Code " +"gleichzeitig auf verschiedenen Kernen ausführen." msgid "parameter" -msgstr "" +msgstr "Parameter" msgid "" "A named entity in a :term:`function` (or method) definition that specifies " "an :term:`argument` (or in some cases, arguments) that the function can " "accept. There are five kinds of parameter:" msgstr "" +"Eine benannte Entität in einer :term:`Funktions`- (oder " +"Methoden-)Definition, die ein :term:`Argument` (oder in manchen Fällen " +"mehrere Argumente) angibt, das bzw. die die Funktion entgegennehmen kann. Es" +" gibt fünf Arten von Parametern:" msgid "" ":dfn:`positional-or-keyword`: specifies an argument that can be passed " @@ -1576,9 +2721,13 @@ msgid "" "`. This is the default kind of parameter, for example *foo* and " "*bar* in the following::" msgstr "" +":dfn:`positional-or-keyword`: Gibt ein Argument an, das entweder " +":term:`positionsbezogen ` oder als :term:`Schlüsselwortargument " +"` übergeben werden kann. Dies ist die Standardart von Parametern, " +"zum Beispiel *foo* und *bar* im Folgenden::" msgid "def func(foo, bar=None): ..." -msgstr "" +msgstr "def func(foo, bar=None): ..." msgid "" ":dfn:`positional-only`: specifies an argument that can be supplied only by " @@ -1586,9 +2735,14 @@ msgid "" "character in the parameter list of the function definition after them, for " "example *posonly1* and *posonly2* in the following::" msgstr "" +":dfn:`positional-only`: Gibt ein Argument an, das nur über die Position " +"übergeben werden kann. Parameter, die ausschließlich über die Position " +"übergeben werden können, lassen sich definieren, indem man in der " +"Parameterliste der Funktionsdefinition hinter ihnen das Zeichen ``/`` " +"einfügt, zum Beispiel *posonly1* und *posonly2* im folgenden Beispiel::" msgid "def func(posonly1, posonly2, /, positional_or_keyword): ..." -msgstr "" +msgstr "def func(posonly1, posonly2, /, positional_or_keyword): ..." msgid "" ":dfn:`keyword-only`: specifies an argument that can be supplied only by " @@ -1597,9 +2751,15 @@ msgid "" "definition before them, for example *kw_only1* and *kw_only2* in the " "following::" msgstr "" +":dfn:`keyword-only`: Gibt ein Argument an, das nur als Schlüsselwort " +"übergeben werden kann. Schlüsselwort-Parameter können definiert werden, " +"indem ein einzelner variabler Positionsparameter oder ein reines Schlüssel " +"``*`` us in die Parameterliste der vorangehenden Funktionsdefinition " +"aufgenommen wird, zum Beispiel *kw_only1* und *kw_only2* im folgenden " +"Beispiel::" msgid "def func(arg, *, kw_only1, kw_only2): ..." -msgstr "" +msgstr "def func(arg, *, kw_only1, kw_only2): ..." msgid "" ":dfn:`var-positional`: specifies that an arbitrary sequence of positional " @@ -1608,84 +2768,143 @@ msgid "" "prepending the parameter name with ``*``, for example *args* in the " "following::" msgstr "" +":dfn:`var-positional`: Gibt an, dass eine beliebige Folge von " +"Positionsargumenten angegeben werden kann (zusätzlich zu den " +"Positionsargumenten, die bereits von anderen Parametern akzeptiert werden). " +"Ein solcher Parameter kann definiert werden, indem dem Parameternamen " +"``*`` vorangestellt wird, zum Beispiel *args* im folgenden Beispiel::" msgid "def func(*args, **kwargs): ..." -msgstr "" +msgstr "def func(*args, **kwargs): ..." msgid "" -":dfn:`var-keyword`: specifies that arbitrarily many keyword arguments can be " -"provided (in addition to any keyword arguments already accepted by other " +":dfn:`var-keyword`: specifies that arbitrarily many keyword arguments can be" +" provided (in addition to any keyword arguments already accepted by other " "parameters). Such a parameter can be defined by prepending the parameter " "name with ``**``, for example *kwargs* in the example above." msgstr "" +":dfn:`var-keyword`: Gibt an, dass beliebig viele Schlüsselwortargumente " +"angegeben werden können (zusätzlich zu den Schlüsselwortargumenten, die " +"bereits von anderen Parametern akzeptiert werden). Ein solcher Parameter " +"kann definiert werden, indem dem Parameternamen ``**`` vorangestellt " +"wird, beispielsweise *kwargs* im obigen Beispiel." msgid "" "Parameters can specify both optional and required arguments, as well as " "default values for some optional arguments." msgstr "" +"Parameter können sowohl optionale als auch erforderliche Argumente sowie " +"Standardwerte für einige optionale Argumente festlegen." msgid "" "See also the :term:`argument` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " -"the :class:`inspect.Parameter` class, the :ref:`function` section, and :pep:" -"`362`." -msgstr "" +"the :class:`inspect.Parameter` class, the :ref:`function` section, and " +":pep:`362`." +msgstr "" +"Siehe auch den Glossareintrag :term:`argument`, die FAQ-Frage zu :ref:`dem " +"Unterschied zwischen Argumenten und Parametern ``, die Klasse :class:`inspect.Parameter`, den Abschnitt " +":ref:`function` sowie :pep:`362`." + +msgid "per-object lock" +msgstr "Objektspezifische Sperre" + +msgid "" +"A :term:`lock` associated with an individual object instance rather than a " +"global lock shared across all objects. In :term:`free-threaded ` Python, built-in types like :class:`dict` and :class:`list` use " +"per-object locks to allow concurrent operations on different objects while " +"serializing operations on the same object. Operations that hold the per-" +"object lock prevent other locking operations on the same object from " +"proceeding, but do not block :term:`lock-free` operations." +msgstr "" +"Ein :term:`Lock`, der mit einer einzelnen Objektinstanz verknüpft ist, im " +"Gegensatz zu einem globalen Lock, der von allen Objekten gemeinsam genutzt " +"wird. In :term:`free-threaded ` Python verwenden integrierte" +" Typen wie :class:`dict` und :class:`list` objektbezogene Sperren, um " +"parallele Operationen an verschiedenen Objekten zu ermöglichen, während " +"Operationen am selben Objekt serialisiert werden. Operationen, die die " +"objektbezogene Sperre halten, verhindern, dass andere Sperroperationen am " +"selben Objekt fortgesetzt werden, blockieren jedoch keine :term:`lock-" +"free`-Operationen." msgid "path entry" -msgstr "" +msgstr "Pfadeintrag" msgid "" "A single location on the :term:`import path` which the :term:`path based " "finder` consults to find modules for importing." msgstr "" +"Ein einzelner Speicherort im :term:`Importpfad`, den der :term:`pfadbasierte" +" Finder` abfragt, um Module zum Importieren zu finden." msgid "path entry finder" -msgstr "" +msgstr "Pfadeintrags-Finder" msgid "" -"A :term:`finder` returned by a callable on :data:`sys.path_hooks` (i.e. a :" -"term:`path entry hook`) which knows how to locate modules given a :term:" -"`path entry`." +"A :term:`finder` returned by a callable on :data:`sys.path_hooks` (i.e. a " +":term:`path entry hook`) which knows how to locate modules given a " +":term:`path entry`." msgstr "" +"Ein :term:`finder`, der von einer auf :data:`sys.path_hooks` aufrufbaren " +"Funktion (d. h. einem :term:`path entry hook`) zurückgegeben wird, die weiß," +" wie man Module anhand eines :term:`path entry` findet." msgid "" "See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " "finders implement." msgstr "" +"Unter :class:`importlib.abc.PathEntryFinder` finden Sie die Methoden, die " +"von Path-Entry-Findern implementiert werden." msgid "path entry hook" -msgstr "" +msgstr "Pfadeintrag-Hook" msgid "" "A callable on the :data:`sys.path_hooks` list which returns a :term:`path " "entry finder` if it knows how to find modules on a specific :term:`path " "entry`." msgstr "" +"Eine auf der Liste :data:`sys.path_hooks` aufrufbare Funktion, die einen" +" :term:`Pfadeintrag-Finder` zurückgibt, sofern sie weiß, wie Module auf " +"einem bestimmten :term:`Pfadeintrag` gefunden werden können." msgid "path based finder" -msgstr "" +msgstr "Pfadbasierter Sucher" msgid "" "One of the default :term:`meta path finders ` which " "searches an :term:`import path` for modules." msgstr "" +"Einer der standardmäßigen :term:`Meta-Pfadfinder `, der " +"einen :term:`Importpfad` nach Modulen durchsucht." msgid "path-like object" -msgstr "" - -msgid "" -"An object representing a file system path. A path-like object is either a :" -"class:`str` or :class:`bytes` object representing a path, or an object " -"implementing the :class:`os.PathLike` protocol. An object that supports the :" -"class:`os.PathLike` protocol can be converted to a :class:`str` or :class:" -"`bytes` file system path by calling the :func:`os.fspath` function; :func:" -"`os.fsdecode` and :func:`os.fsencode` can be used to guarantee a :class:" -"`str` or :class:`bytes` result instead, respectively. Introduced by :pep:" -"`519`." -msgstr "" +msgstr "pfadähnliches Objekt" + +msgid "" +"An object representing a file system path. A path-like object is either a " +":class:`str` or :class:`bytes` object representing a path, or an object " +"implementing the :class:`os.PathLike` protocol. An object that supports the " +":class:`os.PathLike` protocol can be converted to a :class:`str` or " +":class:`bytes` file system path by calling the :func:`os.fspath` function; " +":func:`os.fsdecode` and :func:`os.fsencode` can be used to guarantee a " +":class:`str` or :class:`bytes` result instead, respectively. Introduced by " +":pep:`519`." +msgstr "" +"Ein Objekt, das einen Dateisystempfad darstellt. Ein pfadähnliches Objekt " +"ist entweder ein :class:`str` - oder ein :class:`bytes` -Objekt, das " +"einen Pfad darstellt, oder ein Objekt, das das :class:`os.PathLike` " +"-Protokoll implementiert. Ein Objekt, das das :class:`os.PathLike` " +"-Protokoll unterstützt, kann durch Aufruf der Funktion :func:`os.fspath` " +" in einen :class:`str` - oder :class:`bytes` -Dateisystempfad " +"umgewandelt werden; mit :func:`os.fsdecode` bzw. :func:`os.fsencode` " +" lässt sich stattdessen ein :class:`str` - bzw. :class:`bytes` " +"-Ergebnis gewährleisten. Eingeführt durch :pep:`519` ." msgid "PEP" -msgstr "" +msgstr "PEP" msgid "" "Python Enhancement Proposal. A PEP is a design document providing " @@ -1693,6 +2912,11 @@ msgid "" "or its processes or environment. PEPs should provide a concise technical " "specification and a rationale for proposed features." msgstr "" +"Python Enhancement Proposal. Ein PEP ist ein Entwurfsdokument, das der " +"Python-Community Informationen liefert oder eine neue Funktion für Python, " +"dessen Prozesse oder dessen Umgebung beschreibt. PEPs sollten eine prägnante" +" technische Spezifikation sowie eine Begründung für die vorgeschlagenen " +"Funktionen enthalten." msgid "" "PEPs are intended to be the primary mechanisms for proposing major new " @@ -1701,88 +2925,127 @@ msgid "" "responsible for building consensus within the community and documenting " "dissenting opinions." msgstr "" +"PEPs sollen als primäre Mechanismen dienen, um wichtige neue Funktionen " +"vorzuschlagen, Rückmeldungen der Community zu einem Thema einzuholen und die" +" Designentscheidungen zu dokumentieren, die in Python eingeflossen sind. Der" +" PEP-Autor ist dafür verantwortlich, einen Konsens innerhalb der Community " +"herzustellen und abweichende Meinungen zu dokumentieren." msgid "See :pep:`1`." -msgstr "" +msgstr "Siehe :pep:`1`." msgid "portion" -msgstr "" +msgstr "Anteil" msgid "" "A set of files in a single directory (possibly stored in a zip file) that " "contribute to a namespace package, as defined in :pep:`420`." msgstr "" +"Eine Sammlung von Dateien in einem einzigen Verzeichnis (die möglicherweise " +"in einer ZIP-Datei gespeichert sind), die zu einem Namespace-Paket " +"beitragen, wie unter :pep:`420` definiert." msgid "positional argument" -msgstr "" +msgstr "Positionsargument" msgid "provisional API" -msgstr "" +msgstr "vorläufige API" msgid "" "A provisional API is one which has been deliberately excluded from the " "standard library's backwards compatibility guarantees. While major changes " -"to such interfaces are not expected, as long as they are marked provisional, " -"backwards incompatible changes (up to and including removal of the " +"to such interfaces are not expected, as long as they are marked provisional," +" backwards incompatible changes (up to and including removal of the " "interface) may occur if deemed necessary by core developers. Such changes " -"will not be made gratuitously -- they will occur only if serious fundamental " -"flaws are uncovered that were missed prior to the inclusion of the API." +"will not be made gratuitously -- they will occur only if serious fundamental" +" flaws are uncovered that were missed prior to the inclusion of the API." msgstr "" +"Eine vorläufige API ist eine Schnittstelle, die bewusst von den " +"Rückwärtskompatibilitätsgarantien der Standardbibliothek ausgenommen wurde. " +"Zwar sind größere Änderungen an solchen Schnittstellen nicht zu erwarten, " +"solange sie als vorläufig gekennzeichnet sind, doch können " +"rückwärtsinkompatible Änderungen (bis hin zur Entfernung der Schnittstelle) " +"vorgenommen werden, wenn dies von den Kernentwicklern als notwendig erachtet" +" wird. Solche Änderungen werden nicht ohne triftigen Grund vorgenommen – " +"sie erfolgen nur, wenn schwerwiegende grundlegende Mängel aufgedeckt werden," +" die vor der Aufnahme der API übersehen wurden." msgid "" "Even for provisional APIs, backwards incompatible changes are seen as a " "\"solution of last resort\" - every attempt will still be made to find a " "backwards compatible resolution to any identified problems." msgstr "" +"Selbst bei vorläufigen APIs gelten rückwärtsinkompatible Änderungen als " +"\"letzter Ausweg\“ – es wird weiterhin alles versucht, um für alle " +"festgestellten Probleme eine rückwärtskompatible Lösung zu finden." msgid "" "This process allows the standard library to continue to evolve over time, " "without locking in problematic design errors for extended periods of time. " "See :pep:`411` for more details." msgstr "" +"Dieser Prozess ermöglicht es, dass sich die Standardbibliothek im Laufe der " +"Zeit weiterentwickeln kann, ohne dass problematische Konstruktionsfehler " +"über längere Zeiträume hinweg festgeschrieben werden. Weitere Einzelheiten " +"finden Sie unter :pep:`411`." msgid "provisional package" -msgstr "" +msgstr "vorläufiges Paket" msgid "See :term:`provisional API`." -msgstr "" +msgstr "Siehe :term:`vorläufige API`." msgid "Python 3000" -msgstr "" +msgstr "Python 3000" msgid "" "Nickname for the Python 3.x release line (coined long ago when the release " -"of version 3 was something in the distant future.) This is also abbreviated " -"\"Py3k\"." +"of version 3 was something in the distant future.) This is also abbreviated" +" \"Py3k\"." msgstr "" +"Spitzname für die Python-3.x-Versionsreihe (der vor langer Zeit geprägt " +"wurde, als die Veröffentlichung von Version 3 noch in ferner Zukunft lag). " +"Er wird auch mit \"Py3k\“ abgekürzt." msgid "Pythonic" -msgstr "" +msgstr "Pythonesk" msgid "" -"An idea or piece of code which closely follows the most common idioms of the " -"Python language, rather than implementing code using concepts common to " +"An idea or piece of code which closely follows the most common idioms of the" +" Python language, rather than implementing code using concepts common to " "other languages. For example, a common idiom in Python is to loop over all " "elements of an iterable using a :keyword:`for` statement. Many other " "languages don't have this type of construct, so people unfamiliar with " "Python sometimes use a numerical counter instead::" msgstr "" +"Eine Idee oder ein Codeabschnitt, der sich eng an die gängigsten " +"Konventionen der Programmiersprache Python hält, anstatt Code unter " +"Verwendung von Konzepten zu implementieren, die in anderen Sprachen üblich " +"sind. Ein gängiges Beispiel in Python ist beispielsweise die " +"Durchlaufschleife über alle Elemente eines iterierbaren Objekts mithilfe " +"einer :keyword:`for` -Anweisung. Viele andere Sprachen verfügen nicht " +"über eine solche Konstruktion, sodass Personen, die mit Python nicht " +"vertraut sind, manchmal stattdessen einen numerischen Zähler verwenden::" msgid "" "for i in range(len(food)):\n" " print(food[i])" msgstr "" +"for i in range(len(food)):\n" +" print(food[i])" msgid "As opposed to the cleaner, Pythonic method::" -msgstr "" +msgstr "Im Gegensatz zu der übersichtlicheren, pythonesken Methode::" msgid "" "for piece in food:\n" " print(piece)" msgstr "" +"für Stück in Essen:\n" +" print(Stück)" msgid "qualified name" -msgstr "" +msgstr "qualifizierter Name" msgid "" "A dotted name showing the \"path\" from a module's global scope to a class, " @@ -1790,6 +3053,10 @@ msgid "" "top-level functions and classes, the qualified name is the same as the " "object's name::" msgstr "" +"Ein gepunkteter Name, der den \"Pfad\“ vom globalen Gültigkeitsbereich eines " +"Moduls zu einer in diesem Modul definierten Klasse, Funktion oder Methode " +"angibt, wie in :pep:`3155` definiert. Bei Funktionen und Klassen der " +"obersten Ebene entspricht der qualifizierte Name dem Namen des Objekts::" msgid "" ">>> class C:\n" @@ -1804,59 +3071,159 @@ msgid "" ">>> C.D.meth.__qualname__\n" "'C.D.meth'" msgstr "" +">>> class C:\n" +"... class D:\n" +"... def meth(self):\n" +"... pass\n" +"...\n" +">>> C.__qualname__\n" +"'C'\n" +">>> C.D.__qualname__\n" +"'C.D'\n" +">>> C.D.meth.__qualname__\n" +"'C.D.meth'" msgid "" "When used to refer to modules, the *fully qualified name* means the entire " -"dotted path to the module, including any parent packages, e.g. ``email.mime." -"text``::" +"dotted path to the module, including any parent packages, e.g. " +"``email.mime.text``::" msgstr "" +"Im Zusammenhang mit Modulen bezeichnet der *vollständige Name* den gesamten," +" durch Punkte getrennten Pfad zum Modul, einschließlich aller übergeordneten" +" Pakete, z. B. ``email.mime.text``::" msgid "" ">>> import email.mime.text\n" ">>> email.mime.text.__name__\n" "'email.mime.text'" msgstr "" +">>> import email.mime.text\n" +">>> email.mime.text.__name__\n" +"'email.mime.text'" + +msgid "race condition" +msgstr "Race-Condition" + +msgid "" +"A condition of a program where the behavior depends on the relative timing " +"or ordering of events, particularly in multi-threaded programs. Race " +"conditions can lead to :term:`non-deterministic` behavior and bugs that are " +"difficult to reproduce. A :term:`data race` is a specific type of race " +"condition involving unsynchronized access to shared memory. The " +":term:`LBYL` coding style is particularly susceptible to race conditions in " +"multi-threaded code. Using :term:`locks ` and other " +":term:`synchronization primitives ` helps prevent" +" race conditions." +msgstr "" +"Ein Zustand eines Programms, bei dem das Verhalten vom relativen zeitlichen " +"Ablauf oder der Reihenfolge von Ereignissen abhängt, insbesondere in " +"Multithread-Programmen. Race-Bedingungen können zu :term:`nicht-" +"deterministischem` Verhalten und schwer reproduzierbaren Fehlern führen. " +"Ein :term:`Datenrennen` ist eine spezielle Art von Race Condition, bei der " +"es um den nicht synchronisierten Zugriff auf gemeinsam genutzten Speicher " +"geht. Der :term:`LBYL`-Programmierstil ist in Multithread-Code besonders " +"anfällig für Race Conditions. Die Verwendung von :term:`Locks ` und " +"anderen :term:`Synchronisationsprimitiven ` " +"hilft, Race Conditions zu vermeiden." msgid "reference count" -msgstr "" +msgstr "Referenzanzahl" msgid "" "The number of references to an object. When the reference count of an " "object drops to zero, it is deallocated. Some objects are :term:`immortal` " -"and have reference counts that are never modified, and therefore the objects " -"are never deallocated. Reference counting is generally not visible to " -"Python code, but it is a key element of the :term:`CPython` implementation. " -"Programmers can call the :func:`sys.getrefcount` function to return the " +"and have reference counts that are never modified, and therefore the objects" +" are never deallocated. Reference counting is generally not visible to " +"Python code, but it is a key element of the :term:`CPython` implementation." +" Programmers can call the :func:`sys.getrefcount` function to return the " "reference count for a particular object." msgstr "" +"Die Anzahl der Verweise auf ein Objekt. Wenn die Referenzanzahl eines " +"Objekts auf null sinkt, wird es freigegeben. Einige Objekte sind " +":term:`unsterblich` und haben Referenzanzahlen, die niemals geändert werden;" +" daher werden diese Objekte niemals freigegeben. Die Referenzzählung ist " +"für Python-Code im Allgemeinen nicht sichtbar, stellt jedoch ein " +"Schlüsselelement der :term:`CPython`-Implementierung dar. Programmierer " +"können die Funktion :func:`sys.getrefcount` aufrufen, um die " +"Referenzanzahl für ein bestimmtes Objekt abzurufen." msgid "" -"In :term:`CPython`, reference counts are not considered to be stable or well-" -"defined values; the number of references to an object, and how that number " -"is affected by Python code, may be different between versions." +"In :term:`CPython`, reference counts are not considered to be stable or " +"well-defined values; the number of references to an object, and how that " +"number is affected by Python code, may be different between versions." msgstr "" +"In :term:`CPython` gelten Referenzzähler nicht als stabile oder genau " +"definierte Werte; die Anzahl der Verweise auf ein Objekt und die Art und " +"Weise, wie diese Anzahl durch Python-Code beeinflusst wird, kann je nach " +"Version variieren." msgid "regular package" -msgstr "" +msgstr "Standardpaket" msgid "" -"A traditional :term:`package`, such as a directory containing an ``__init__." -"py`` file." +"A traditional :term:`package`, such as a directory containing an " +"``__init__.py`` file." msgstr "" +"Ein herkömmliches :term:`Paket`, beispielsweise ein Verzeichnis, das eine " +"Datei vom Typ ``__init__.py`` enthält." msgid "See also :term:`namespace package`." +msgstr "Siehe auch: :term:`Namensraum-Paket`." + +msgid "reentrant" +msgstr "wiederkehrend" + +msgid "" +"A property of a function or :term:`lock` that allows it to be called or " +"acquired multiple times by the same thread without causing errors or a " +":term:`deadlock`." msgstr "" +"Eine Eigenschaft einer Funktion oder eines :term:`lock`, die es ermöglicht, " +"dass diese mehrfach vom selben Thread aufgerufen bzw. erworben wird, ohne " +"dass dabei Fehler oder ein :term:`Deadlock` auftreten." -msgid "REPL" +msgid "" +"For functions, reentrancy means the function can be safely called again " +"before a previous invocation has completed, which is important when " +"functions may be called recursively or from signal handlers. Thread-unsafe " +"functions may be :term:`non-deterministic` if they're called reentrantly in " +"a multithreaded program." msgstr "" +"Bei Funktionen bedeutet Reentranz, dass die Funktion sicher erneut " +"aufgerufen werden kann, bevor ein vorheriger Aufruf abgeschlossen ist. Dies " +"ist wichtig, wenn Funktionen rekursiv oder aus Signal-Handlern heraus " +"aufgerufen werden können. Thread-unsichere Funktionen können :term:`nicht " +"deterministisch` sein, wenn sie in einem Multithread-Programm reentrant " +"aufgerufen werden." msgid "" -"An acronym for the \"read–eval–print loop\", another name for the :term:" -"`interactive` interpreter shell." +"For locks, Python's :class:`threading.RLock` (reentrant lock) is reentrant, " +"meaning a thread that already holds the lock can acquire it again without " +"blocking. In contrast, :class:`threading.Lock` is not reentrant - " +"attempting to acquire it twice from the same thread will cause a deadlock." msgstr "" +"Was Sperren betrifft, ist die Python-Sperre :class:`threading.RLock` " +"(Reentrant-Sperre) reentrant, was bedeutet, dass ein Thread, der die Sperre " +"bereits hält, sie erneut erwerben kann, ohne zu blockieren. Im Gegensatz " +"dazu ist :class:`threading.Lock` nicht reentrant – der Versuch, sie " +"zweimal vom selben Thread aus zu erwerben, führt zu einem Deadlock." -msgid "__slots__" +msgid "See also :term:`lock` and :term:`deadlock`." +msgstr "Siehe auch :term:`lock` und :term:`deadlock`." + +msgid "REPL" +msgstr "REPL" + +msgid "" +"An acronym for the \"read–eval–print loop\", another name for the " +":term:`interactive` interpreter shell." msgstr "" +"Eine Abkürzung für \"read–eval–print loop\“ (Lesen–Auswerten–Ausgeben-" +"Schleife), eine andere Bezeichnung für die :term:`interaktive` Interpreter-" +"Shell." + +msgid "__slots__" +msgstr "__slots__" msgid "" "A declaration inside a class that saves memory by pre-declaring space for " @@ -1865,214 +3232,383 @@ msgid "" "cases where there are large numbers of instances in a memory-critical " "application." msgstr "" +"Eine Deklaration innerhalb einer Klasse, die Speicherplatz spart, indem " +"Speicherplatz für Instanzattribute vorab reserviert und Instanz-Dictionaries" +" vermieden werden. Obwohl diese Technik weit verbreitet ist, ist ihre " +"korrekte Anwendung etwas knifflig und sollte am besten nur in seltenen " +"Fällen eingesetzt werden, in denen in einer speicherintensiven Anwendung " +"eine große Anzahl von Instanzen vorliegt." msgid "sequence" -msgstr "" +msgstr "Sequenz" msgid "" "An :term:`iterable` which supports efficient element access using integer " -"indices via the :meth:`~object.__getitem__` special method and defines a :" -"meth:`~object.__len__` method that returns the length of the sequence. Some " -"built-in sequence types are :class:`list`, :class:`str`, :class:`tuple`, " -"and :class:`bytes`. Note that :class:`dict` also supports :meth:`~object." -"__getitem__` and :meth:`!__len__`, but is considered a mapping rather than a " -"sequence because the lookups use arbitrary :term:`hashable` keys rather than " -"integers." -msgstr "" +"indices via the :meth:`~object.__getitem__` special method and defines a " +":meth:`~object.__len__` method that returns the length of the sequence. Some" +" built-in sequence types are :class:`list`, :class:`str`, :class:`tuple`, " +"and :class:`bytes`. Note that :class:`dict` also supports " +":meth:`~object.__getitem__` and :meth:`!__len__`, but is considered a " +"mapping rather than a sequence because the lookups use arbitrary " +":term:`hashable` keys rather than integers." +msgstr "" +"Ein :term:`iterable`, das einen effizienten Zugriff auf Elemente mithilfe " +"ganzzahliger Indizes über die spezielle Methode :meth:`~object.__getitem__` " +"unterstützt und eine Methode :meth:`~object.__len__` definiert, die die " +"Länge der Sequenz zurückgibt. Einige integrierte Sequenztypen sind " +":class:`list`, :class:`str`, :class:`tuple` und :class:`bytes`. Beachten " +"Sie, dass :class:`dict` ebenfalls :meth:`~object.__getitem__` und " +":meth:`!__len__` unterstützt, jedoch eher als Mapping denn als Sequenz " +"betrachtet wird, da die Suchvorgänge beliebige :term:`hashable`-Schlüssel " +"anstelle von Ganzzahlen verwenden." msgid "" "The :class:`collections.abc.Sequence` abstract base class defines a much " -"richer interface that goes beyond just :meth:`~object.__getitem__` and :meth:" -"`~object.__len__`, adding :meth:`~sequence.count`, :meth:`~sequence.index`, :" -"meth:`~object.__contains__`, and :meth:`~object.__reversed__`. Types that " -"implement this expanded interface can be registered explicitly using :func:" -"`~abc.ABCMeta.register`. For more documentation on sequence methods " -"generally, see :ref:`Common Sequence Operations `." -msgstr "" +"richer interface that goes beyond just :meth:`~object.__getitem__` and " +":meth:`~object.__len__`, adding :meth:`~sequence.count`, " +":meth:`~sequence.index`, :meth:`~object.__contains__`, and " +":meth:`~object.__reversed__`. Types that implement this expanded interface " +"can be registered explicitly using :func:`~abc.ABCMeta.register`. For more " +"documentation on sequence methods generally, see :ref:`Common Sequence " +"Operations `." +msgstr "" +"Die abstrakte Basisklasse :class:`collections.abc.Sequence` definiert " +"eine wesentlich umfangreichere Schnittstelle, die über die Methoden " +":meth:`~object.__getitem__` und :meth:`~object.__len__` hinausgeht und " +"um die Methoden :meth:`~sequence.count`, :meth:`~sequence.index`, " +":meth:`~object.__contains__` sowie :meth:`~object.__reversed__` " +"erweitert wird. Typen, die diese erweiterte Schnittstelle implementieren, " +"können explizit mit :func:`~abc.ABCMeta.register` registriert werden. " +"Weitere Informationen zu Sequenzmethoden im Allgemeinen finden Sie unter " +":ref:`Common Sequence Operations `." msgid "set comprehension" -msgstr "" +msgstr "Mengenkomprimierung" msgid "" "A compact way to process all or part of the elements in an iterable and " "return a set with the results. ``results = {c for c in 'abracadabra' if c " -"not in 'abc'}`` generates the set of strings ``{'r', 'd'}``. See :ref:" -"`comprehensions`." +"not in 'abc'}`` generates the set of strings ``{'r', 'd'}``. See " +":ref:`comprehensions`." msgstr "" +"Eine kompakte Möglichkeit, alle oder einen Teil der Elemente einer " +"iterierbaren Struktur zu verarbeiten und eine Menge mit den Ergebnissen " +"zurückzugeben. ``results = {c for c in 'abracadabra' if c not in 'abc'}`` " +" erzeugt die Menge der Zeichenfolgen ``{'r', 'd'}``. Siehe " +":ref:`comprehensions`." msgid "single dispatch" -msgstr "" +msgstr "Einzelversand" msgid "" "A form of :term:`generic function` dispatch where the implementation is " "chosen based on the type of a single argument." msgstr "" +"Eine Form der :term:`generischen Funktionsauswahl`, bei der die " +"Implementierung anhand des Typs eines einzelnen Arguments ausgewählt wird." msgid "slice" -msgstr "" +msgstr "Scheibe" msgid "" -"An object usually containing a portion of a :term:`sequence`. A slice is " -"created using the subscript notation, ``[]`` with colons between numbers " -"when several are given, such as in ``variable_name[1:3:5]``. The bracket " -"(subscript) notation uses :class:`slice` objects internally." +"An object of type :class:`slice`, used to describe a portion of a " +":term:`sequence`. A slice object is created when using the :ref:`slicing " +"` form of :ref:`subscript notation `, with colons " +"inside square brackets, such as in ``variable_name[1:3:5]``." msgstr "" +"Ein Objekt vom Typ :class:`slice`, das zur Beschreibung eines Teils einer " +":term:`Sequenz` dient. Ein Slice-Objekt wird erstellt, wenn die " +":ref:`Slicing- ` -Form der :ref:`Indexnotation ` " +"verwendet wird, bei der Doppelpunkte in eckigen Klammern stehen, wie " +"beispielsweise in ``variable_name[1:3:5]``." msgid "soft deprecated" -msgstr "" +msgstr "weich veraltet" msgid "" "A soft deprecated API should not be used in new code, but it is safe for " "already existing code to use it. The API remains documented and tested, but " "will not be enhanced further." msgstr "" +"Eine soft deprecated API sollte in neuem Code nicht mehr verwendet werden," +" bei bereits vorhandenem Code ist ihre Verwendung jedoch unbedenklich. Die " +"API bleibt dokumentiert und wird weiterhin getestet, wird jedoch nicht mehr " +"weiterentwickelt." msgid "" "Soft deprecation, unlike normal deprecation, does not plan on removing the " "API and will not emit warnings." msgstr "" +"Im Gegensatz zur normalen Veralterung ist bei einer Soft Deprecation nicht" +" vorgesehen, die API zu entfernen, und es werden keine Warnungen ausgegeben." msgid "" "See `PEP 387: Soft Deprecation `_." msgstr "" +"Siehe `PEP 387: Soft Deprecation `_." msgid "special method" -msgstr "" +msgstr "spezielle Methode" msgid "" "A method that is called implicitly by Python to execute a certain operation " "on a type, such as addition. Such methods have names starting and ending " -"with double underscores. Special methods are documented in :ref:" -"`specialnames`." +"with double underscores. Special methods are documented in " +":ref:`specialnames`." msgstr "" +"Eine Methode, die von Python implizit aufgerufen wird, um eine bestimmte " +"Operation auf einem Typ auszuführen, beispielsweise eine Addition. Die Namen" +" solcher Methoden beginnen und enden mit zwei Unterstrichen. Spezielle " +"Methoden sind unter :ref:`specialnames` dokumentiert." msgid "standard library" -msgstr "" +msgstr "Standardbibliothek" msgid "" -"The collection of :term:`packages `, :term:`modules ` and :" -"term:`extension modules ` distributed as a part of the " -"official Python interpreter package. The exact membership of the collection " -"may vary based on platform, available system libraries, or other criteria. " -"Documentation can be found at :ref:`library-index`." +"The collection of :term:`packages `, :term:`modules ` and " +":term:`extension modules ` distributed as a part of the " +"official Python interpreter package. The exact membership of the collection" +" may vary based on platform, available system libraries, or other criteria." +" Documentation can be found at :ref:`library-index`." msgstr "" +"Die Sammlung von :term:`Paketen `, :term:`Modulen ` und " +":term:`Erweiterungsmodulen `, die als Teil des offiziellen" +" Python-Interpreter-Pakets bereitgestellt wird. Der genaue Umfang der " +"Sammlung kann je nach Plattform, verfügbaren Systembibliotheken oder anderen" +" Kriterien variieren. Die Dokumentation finden Sie unter :ref:`library-" +"index`." msgid "" -"See also :data:`sys.stdlib_module_names` for a list of all possible standard " -"library module names." +"See also :data:`sys.stdlib_module_names` for a list of all possible standard" +" library module names." msgstr "" +"Eine Liste aller möglichen Namen von Standardbibliotheksmodulen finden Sie " +"unter :data:`sys.stdlib_module_names`." msgid "statement" -msgstr "" +msgstr "Erklärung" msgid "" -"A statement is part of a suite (a \"block\" of code). A statement is either " -"an :term:`expression` or one of several constructs with a keyword, such as :" -"keyword:`if`, :keyword:`while` or :keyword:`for`." +"A statement is part of a suite (a \"block\" of code). A statement is either" +" an :term:`expression` or one of several constructs with a keyword, such as " +":keyword:`if`, :keyword:`while` or :keyword:`for`." msgstr "" +"Eine Anweisung ist Teil einer Suite (eines \"Code-Blocks\“). Eine Anweisung " +"ist entweder ein :term:`Ausdruck` oder eine von mehreren Konstrukten mit " +"einem Schlüsselwort, wie beispielsweise :keyword:`if` , " +":keyword:`while` oder :keyword:`for` ." msgid "static type checker" -msgstr "" +msgstr "statischer Typprüfer" msgid "" "An external tool that reads Python code and analyzes it, looking for issues " -"such as incorrect types. See also :term:`type hints ` and the :" -"mod:`typing` module." +"such as incorrect types. See also :term:`type hints ` and the " +":mod:`typing` module." msgstr "" +"Ein externes Tool, das Python-Code ausliest und analysiert, um Probleme wie " +"beispielsweise falsche Typen zu erkennen. Siehe auch :term:`Typangaben ` und das Modul :mod:`typing` ." msgid "stdlib" -msgstr "" +msgstr "stdlib" msgid "An abbreviation of :term:`standard library`." +msgstr "Eine Abkürzung für :term:`Standardbibliothek`." + +msgid "steal" +msgstr "stehlen" + +msgid "" +"In Python's C API, \"*stealing*\" an argument means that ownership of the " +"argument is transferred to the called function. The caller must not use that" +" reference after the call. Generally, functions that \"steal\" an argument " +"do so even if they fail." msgstr "" +"In der C-API von Python bedeutet das *Stehlen* eines Arguments, dass das " +"Eigentumsrecht an dem Argument auf die aufgerufene Funktion übertragen wird." +" Der Aufrufer darf diese Referenz nach dem Aufruf nicht mehr verwenden. Im " +"Allgemeinen tun Funktionen, die ein Argument stehlen, dies auch dann, wenn" +" sie fehlschlagen." -msgid "strong reference" +msgid "See :ref:`api-refcountdetails` for a full explanation." msgstr "" +"Eine ausführliche Erläuterung finden Sie unter :ref:`api-refcountdetails`." + +msgid "strong reference" +msgstr "starke Referenz" msgid "" "In Python's C API, a strong reference is a reference to an object which is " "owned by the code holding the reference. The strong reference is taken by " -"calling :c:func:`Py_INCREF` when the reference is created and released with :" -"c:func:`Py_DECREF` when the reference is deleted." +"calling :c:func:`Py_INCREF` when the reference is created and released with " +":c:func:`Py_DECREF` when the reference is deleted." msgstr "" +"In der C-API von Python ist eine starke Referenz eine Referenz auf ein " +"Objekt, das dem Code gehört, der die Referenz enthält. Die starke Referenz " +"wird durch den Aufruf von :c:func:`Py_INCREF` beim Erstellen der " +"Referenz hergestellt und durch den Aufruf von :c:func:`Py_DECREF` beim " +"Löschen der Referenz freigegeben." msgid "" -"The :c:func:`Py_NewRef` function can be used to create a strong reference to " -"an object. Usually, the :c:func:`Py_DECREF` function must be called on the " +"The :c:func:`Py_NewRef` function can be used to create a strong reference to" +" an object. Usually, the :c:func:`Py_DECREF` function must be called on the " "strong reference before exiting the scope of the strong reference, to avoid " "leaking one reference." msgstr "" +"Mit der Funktion :c:func:`Py_NewRef` lässt sich eine starke Referenz auf" +" ein Objekt erstellen. In der Regel muss die Funktion :c:func:`Py_DECREF` " +" für die starke Referenz aufgerufen werden, bevor der Geltungsbereich der " +"starken Referenz verlassen wird, um ein Referenzleck zu vermeiden." msgid "See also :term:`borrowed reference`." -msgstr "" +msgstr "Siehe auch: :term:`entlehnte Referenz`." + +msgid "subscript" +msgstr "Index" + +msgid "" +"The expression in square brackets of a :ref:`subscription expression " +"`, for example, the ``3`` in ``items[3]``. Usually used to " +"select an element of a container. Also called a :term:`key` when " +"subscripting a :term:`mapping`, or an :term:`index` when subscripting a " +":term:`sequence`." +msgstr "" +"Der Ausdruck in eckigen Klammern eines :ref:`Abonnementausdrucks " +"`, zum Beispiel der ``3`` in ``items[3]``. Wird in der Regel " +"verwendet, um ein Element eines Containers auszuwählen. Wird auch als " +":term:`Schlüssel` bezeichnet, wenn ein :term:`Mapping` indiziert wird, oder " +"als :term:`Index`, wenn eine :term:`Sequenz` indiziert wird." + +msgid "synchronization primitive" +msgstr "Synchronisationsprimitive" + +msgid "" +"A basic building block for coordinating (synchronizing) the execution of " +"multiple threads to ensure :term:`thread-safe` access to shared resources. " +"Python's :mod:`threading` module provides several synchronization primitives" +" including :class:`~threading.Lock`, :class:`~threading.RLock`, " +":class:`~threading.Semaphore`, :class:`~threading.Condition`, " +":class:`~threading.Event`, and :class:`~threading.Barrier`. Additionally, " +"the :mod:`queue` module provides multi-producer, multi-consumer queues that " +"are especially useful in multithreaded programs. These primitives help " +"prevent :term:`race conditions ` and coordinate thread " +"execution. See also :term:`lock`." +msgstr "" +"Ein grundlegender Baustein zur Koordination (Synchronisation) der Ausführung" +" mehrerer Threads, um einen :term:`thread-safe` Zugriff auf gemeinsam " +"genutzte Ressourcen zu gewährleisten. Das Python-Modul :mod:`threading` " +"stellt mehrere Synchronisationsprimitive bereit, darunter " +":class:`~threading.Lock` , :class:`~threading.RLock` , " +":class:`~threading.Semaphore` , :class:`~threading.Condition` , " +":class:`~threading.Event` und :class:`~threading.Barrier` . Darüber " +"hinaus bietet das Modul :mod:`queue` Multi-Producer- und Multi-Consumer-" +"Warteschlangen, die besonders in Multithread-Programmen nützlich sind. Diese" +" Primitive tragen dazu bei, :term:`Race-Conditions ` zu " +"verhindern und die Thread-Ausführung zu koordinieren. Siehe auch " +":term:`lock`." msgid "t-string" -msgstr "" +msgstr "T-String" msgid "t-strings" -msgstr "" +msgstr "T-Strings" msgid "" -"String literals prefixed with ``t`` or ``T`` are commonly called \"t-" -"strings\" which is short for :ref:`template string literals `." +"String literals prefixed with ``t`` or ``T`` are commonly called " +"\"t-strings\" which is short for :ref:`template string literals " +"`." msgstr "" +"Zeichenfolgenliterale, denen ``t`` oder ``T`` vorangestellt ist, " +"werden gemeinhin als t-Strings bezeichnet, was die Abkürzung für " +":ref:`Template-Zeichenfolgenliterale ` ist." msgid "text encoding" -msgstr "" +msgstr "Textkodierung" msgid "" "A string in Python is a sequence of Unicode code points (in range " "``U+0000``--``U+10FFFF``). To store or transfer a string, it needs to be " "serialized as a sequence of bytes." msgstr "" +"Eine Zeichenkette in Python ist eine Folge von Unicode-Codepunkten (im " +"Bereich ``U+0000``--``U+10FFFF``). Um eine Zeichenkette zu speichern oder zu" +" übertragen, muss sie als Bytefolge serialisiert werden." msgid "" "Serializing a string into a sequence of bytes is known as \"encoding\", and " "recreating the string from the sequence of bytes is known as \"decoding\"." msgstr "" +"Die Umwandlung einer Zeichenkette in eine Bytefolge wird als \"Kodierung\“ " +"bezeichnet, und die Rekonstruktion der Zeichenkette aus der Bytefolge wird " +"als \"Dekodierung\“ bezeichnet." msgid "" "There are a variety of different text serialization :ref:`codecs `, which are collectively referred to as \"text encodings\"." msgstr "" +"Es gibt eine Vielzahl verschiedener Text-Serialisierungsverfahren " +":ref:`Codecs `, die zusammenfassend als " +"\"Textkodierungen\“ bezeichnet werden." msgid "text file" -msgstr "" +msgstr "Textdatei" msgid "" "A :term:`file object` able to read and write :class:`str` objects. Often, a " -"text file actually accesses a byte-oriented datastream and handles the :term:" -"`text encoding` automatically. Examples of text files are files opened in " -"text mode (``'r'`` or ``'w'``), :data:`sys.stdin`, :data:`sys.stdout`, and " -"instances of :class:`io.StringIO`." +"text file actually accesses a byte-oriented datastream and handles the " +":term:`text encoding` automatically. Examples of text files are files opened" +" in text mode (``'r'`` or ``'w'``), :data:`sys.stdin`, :data:`sys.stdout`, " +"and instances of :class:`io.StringIO`." msgstr "" +"Ein :term:`Dateiobjekt`, das :class:`str` -Objekte lesen und schreiben kann." +" Häufig greift eine Textdatei tatsächlich auf einen byteurientierten " +"Datenstrom zu und übernimmt die :term:`Textkodierung` automatisch. Beispiele" +" für Textdateien sind Dateien, die im Textmodus geöffnet wurden (``'r'`` " +"oder ``'w'``), :data:`sys.stdin`, :data:`sys.stdout` sowie Instanzen von " +":class:`io.StringIO`." msgid "" -"See also :term:`binary file` for a file object able to read and write :term:" -"`bytes-like objects `." +"See also :term:`binary file` for a file object able to read and write " +":term:`bytes-like objects `." msgstr "" +"Siehe auch :term:`Binärdatei` für ein Dateiobjekt, das :term:`byteähnliche " +"Objekte ` lesen und schreiben kann." msgid "thread state" -msgstr "" +msgstr "Thread-Status" msgid "" "The information used by the :term:`CPython` runtime to run in an OS thread. " "For example, this includes the current exception, if any, and the state of " "the bytecode interpreter." msgstr "" +"Die Informationen, die von der :term:`CPython`-Laufzeitumgebung verwendet " +"werden, um in einem Betriebssystem-Thread ausgeführt zu werden. Dazu gehören" +" beispielsweise die aktuelle Ausnahme (falls vorhanden) und der Zustand des " +"Bytecode-Interpreters." msgid "" "Each thread state is bound to a single OS thread, but threads may have many " "thread states available. At most, one of them may be :term:`attached " "` at once." msgstr "" +"Jeder Thread-Zustand ist an einen einzelnen Betriebssystem-Thread gebunden, " +"aber Threads können über mehrere Thread-Zustände verfügen. Höchstens einer " +"davon darf gleichzeitig :term:` ` sein." msgid "" -"An :term:`attached thread state` is required to call most of Python's C API, " -"unless a function explicitly documents otherwise. The bytecode interpreter " +"An :term:`attached thread state` is required to call most of Python's C API," +" unless a function explicitly documents otherwise. The bytecode interpreter " "only runs under an attached thread state." msgstr "" +"Für den Aufruf der meisten Funktionen der Python-C-API ist ein " +":term:`angeschlossener Thread-Zustand` erforderlich, sofern in der " +"Dokumentation einer Funktion nicht ausdrücklich etwas anderes angegeben ist." +" Der Bytecode-Interpreter läuft nur unter einem angeschlossenen Thread-" +"Zustand." msgid "" "Each thread state belongs to a single interpreter, but each interpreter may " @@ -2081,28 +3617,70 @@ msgid "" "one can be :term:`attached ` in that thread at any " "given moment." msgstr "" +"Jeder Thread-Zustand gehört zu einem einzelnen Interpreter, aber jeder " +"Interpreter kann viele Thread-Zustände haben, darunter auch mehrere für " +"denselben Betriebssystem-Thread. Thread-Zustände aus mehreren Interpretern " +"können an denselben Thread gebunden sein, aber zu jedem Zeitpunkt kann nur " +"einer in diesem Thread :term:` ` sein." msgid "" "See :ref:`Thread State and the Global Interpreter Lock ` for more " "information." msgstr "" +"Weitere Informationen finden Sie unter :ref:`Thread-Status und die globale " +"Interpreter-Sperre `." + +msgid "thread-safe" +msgstr "thread-safe" + +msgid "" +"A module, function, or class that behaves correctly when used by multiple " +"threads concurrently. Thread-safe code uses appropriate " +":term:`synchronization primitives ` like " +":term:`locks ` to protect shared mutable state, or is designed to " +"avoid shared mutable state entirely. In the :term:`free-threaded ` build, built-in types like :class:`dict`, :class:`list`, and " +":class:`set` use internal locking to make many operations thread-safe, " +"although thread safety is not necessarily guaranteed. Code that is not " +"thread-safe may experience :term:`race conditions ` and " +":term:`data races ` when used in multi-threaded programs." +msgstr "" +"Ein Modul, eine Funktion oder eine Klasse, die sich bei gleichzeitiger " +"Nutzung durch mehrere Threads korrekt verhält. Thread-sicherer Code " +"verwendet geeignete :term:`Synchronisationsprimitive ` wie :term:`Locks `, um gemeinsam genutzte, veränderbare " +"Zustände zu schützen, oder ist so konzipiert, dass gemeinsam genutzte, " +"veränderbare Zustände gänzlich vermieden werden. In der :term:`free-" +"threaded `-Version verwenden integrierte Typen wie " +":class:`dict`, :class:`list` und :class:`set` interne Sperren, um viele " +"Operationen threadsicher zu machen, obwohl die Threadsicherheit nicht " +"unbedingt garantiert ist. Code, der nicht threadsicher ist, kann bei der " +"Verwendung in Multithread-Programmen zu :term:`Race-Conditions ` und :term:`Datenkonflikten ` führen." msgid "token" -msgstr "" +msgstr "Token" msgid "" "A small unit of source code, generated by the :ref:`lexical analyzer " "` (also called the *tokenizer*). Names, numbers, strings, " "operators, newlines and similar are represented by tokens." msgstr "" +"Eine kleine Einheit des Quellcodes, die vom :ref:`lexikalischen Analysator " +"` (auch *Tokenizer* genannt) generiert wird. Namen, Zahlen, " +"Zeichenketten, Operatoren, Zeilenumbrüche und Ähnliches werden durch Token " +"dargestellt." msgid "" -"The :mod:`tokenize` module exposes Python's lexical analyzer. The :mod:" -"`token` module contains information on the various types of tokens." +"The :mod:`tokenize` module exposes Python's lexical analyzer. The " +":mod:`token` module contains information on the various types of tokens." msgstr "" +"Das Modul :mod:`tokenize` stellt den lexikalischen Analysator von Python" +" bereit. Das Modul :mod:`token` enthält Informationen zu den " +"verschiedenen Token-Typen." msgid "triple-quoted string" -msgstr "" +msgstr "Zeichenkette in dreifachen Anführungszeichen" msgid "" "A string which is bound by three instances of either a quotation mark (\") " @@ -2113,35 +3691,54 @@ msgid "" "continuation character, making them especially useful when writing " "docstrings." msgstr "" +"Eine Zeichenkette, die durch drei aufeinanderfolgende einfache " +"Anführungszeichen (\") oder Apostrophe (') begrenzt wird. Obwohl sie keine " +"Funktionen bieten, die bei Zeichenketten in einfachen Anführungszeichen " +"nicht verfügbar sind, sind sie aus verschiedenen Gründen nützlich. Sie " +"ermöglichen es, nicht maskierte einfache und doppelte Anführungszeichen in " +"eine Zeichenkette einzufügen, und sie können sich über mehrere Zeilen " +"erstrecken, ohne dass das Fortsetzungszeichen verwendet werden muss, was sie" +" besonders nützlich beim Schreiben von Docstrings macht." msgid "type" msgstr "Typ" msgid "" "The type of a Python object determines what kind of object it is; every " -"object has a type. An object's type is accessible as its :attr:`~object." -"__class__` attribute or can be retrieved with ``type(obj)``." +"object has a type. An object's type is accessible as its " +":attr:`~object.__class__` attribute or can be retrieved with ``type(obj)``." msgstr "" +"Der Typ eines Python-Objekts bestimmt, um welche Art von Objekt es sich " +"handelt; jedes Objekt hat einen Typ. Der Typ eines Objekts ist über das " +"Attribut :attr:`~object.__class__` zugänglich oder kann mit " +"``type(obj)``` abgerufen werden." msgid "type alias" -msgstr "" +msgstr "Typalias" msgid "A synonym for a type, created by assigning the type to an identifier." msgstr "" +"Ein Synonym für einen Typ, das durch die Zuweisung des Typs zu einem " +"Bezeichner erstellt wird." msgid "" "Type aliases are useful for simplifying :term:`type hints `. For " "example::" msgstr "" +"Typ-Aliase sind nützlich, um :term:`Typ-Hinweise ` zu " +"vereinfachen. Zum Beispiel::" msgid "" "def remove_gray_shades(\n" " colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:\n" " pass" msgstr "" +"def remove_gray_shades(\n" +" colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:\n" +" pass" msgid "could be made more readable like this::" -msgstr "" +msgstr "könnte so lesbarer gestaltet werden::" msgid "" "Color = tuple[int, int, int]\n" @@ -2149,74 +3746,105 @@ msgid "" "def remove_gray_shades(colors: list[Color]) -> list[Color]:\n" " pass" msgstr "" +"Farbe = Tupel[int, int, int]\n" +"\n" +"def remove_gray_shades(colors: Liste[Farbe]) -> Liste[Farbe]:\n" +" pass" msgid "See :mod:`typing` and :pep:`484`, which describe this functionality." msgstr "" +"Siehe :mod:`typing` und :pep:`484`, wo diese Funktion beschrieben wird." msgid "type hint" -msgstr "" +msgstr "Typhinweis" msgid "" "An :term:`annotation` that specifies the expected type for a variable, a " "class attribute, or a function parameter or return value." msgstr "" +"Eine :term:`Annotation`, die den erwarteten Typ für eine Variable, ein " +"Klassenattribut oder einen Funktionsparameter bzw. Rückgabewert angibt." msgid "" "Type hints are optional and are not enforced by Python but they are useful " "to :term:`static type checkers `. They can also aid " "IDEs with code completion and refactoring." msgstr "" +"Typangaben sind optional und werden von Python nicht erzwungen, sind jedoch " +"für :term:`statische Typprüfer ` nützlich. Außerdem " +"können sie IDEs bei der Code-Vervollständigung und beim Refactoring " +"unterstützen." msgid "" "Type hints of global variables, class attributes, and functions, but not " "local variables, can be accessed using :func:`typing.get_type_hints`." msgstr "" +"Typhinweise für globale Variablen, Klassenattribute und Funktionen, nicht " +"jedoch für lokale Variablen, können über :func:`typing.get_type_hints` " +"abgerufen werden." msgid "universal newlines" -msgstr "" +msgstr "universelle Zeilenumbrüche" msgid "" "A manner of interpreting text streams in which all of the following are " "recognized as ending a line: the Unix end-of-line convention ``'\\n'``, the " -"Windows convention ``'\\r\\n'``, and the old Macintosh convention " -"``'\\r'``. See :pep:`278` and :pep:`3116`, as well as :func:`bytes." -"splitlines` for an additional use." +"Windows convention ``'\\r\\n'``, and the old Macintosh convention ``'\\r'``." +" See :pep:`278` and :pep:`3116`, as well as :func:`bytes.splitlines` for an" +" additional use." msgstr "" +"Eine Methode zur Interpretation von Textströmen, bei der alle folgenden " +"Zeichenfolgen als Zeilenende erkannt werden: die Unix-Zeilenende-Konvention " +"``'\\n'``, die Windows-Konvention ``'\\r\\n'`` und die alte Macintosh-" +"Konvention ``'\\r'``. Siehe :pep:`278` und :pep:`3116` sowie " +":func:`bytes.splitlines` für eine weitere Anwendungsmöglichkeit." msgid "variable annotation" -msgstr "" +msgstr "Variablenbeschriftung" msgid "An :term:`annotation` of a variable or a class attribute." -msgstr "" +msgstr "Eine :term:`Annotation` einer Variablen oder eines Klassenattributs." msgid "" "When annotating a variable or a class attribute, assignment is optional::" msgstr "" +"Bei der Annotation einer Variablen oder eines Klassenattributs ist die " +"Zuweisung optional::" msgid "" "class C:\n" " field: 'annotation'" msgstr "" +"Klasse C:\n" +" Feld: 'annotation'" msgid "" "Variable annotations are usually used for :term:`type hints `: " "for example this variable is expected to take :class:`int` values::" msgstr "" +"Variablenannotationen werden in der Regel für :term:`Typangaben `verwendet – beispielsweise wird erwartet, dass diese Variable Werte " +"vom Typ :class:`int` annimmt::" msgid "count: int = 0" -msgstr "" +msgstr "Zähler: int = 0" msgid "Variable annotation syntax is explained in section :ref:`annassign`." msgstr "" +"Die Syntax für die Annotation von Variablen wird im Abschnitt " +":ref:`annassign` erläutert." msgid "" "See :term:`function annotation`, :pep:`484` and :pep:`526`, which describe " "this functionality. Also see :ref:`annotations-howto` for best practices on " "working with annotations." msgstr "" +"Siehe :term:`Funktionsannotation`, :pep:`484` und :pep:`526`, wo diese " +"Funktionalität beschrieben wird. Siehe auch :ref:`annotations-howto` für " +"bewährte Vorgehensweisen beim Umgang mit Annotationen." msgid "virtual environment" -msgstr "" +msgstr "virtuelle Umgebung" msgid "" "A cooperatively isolated runtime environment that allows Python users and " @@ -2224,50 +3852,63 @@ msgid "" "interfering with the behaviour of other Python applications running on the " "same system." msgstr "" +"Eine kooperativ isolierte Laufzeitumgebung, die es Python-Anwendern und " +"-Anwendungen ermöglicht, Python-Distributionspakete zu installieren und zu " +"aktualisieren, ohne das Verhalten anderer Python-Anwendungen zu " +"beeinträchtigen, die auf demselben System ausgeführt werden." msgid "See also :mod:`venv`." -msgstr "" +msgstr "Siehe auch :mod:`venv`." msgid "virtual machine" -msgstr "" +msgstr "virtuelle Maschine" msgid "" "A computer defined entirely in software. Python's virtual machine executes " "the :term:`bytecode` emitted by the bytecode compiler." msgstr "" +"Ein vollständig in Software definierter Computer. Die virtuelle Maschine von" +" Python führt den vom Bytecode-Compiler erzeugten :term:`Bytecode` aus." msgid "walrus operator" -msgstr "" +msgstr "Walross-Betreiber" msgid "" "A light-hearted way to refer to the :ref:`assignment expression ` operator ``:=`` because it looks a bit like a walrus if you " "turn your head." msgstr "" +"Eine scherzhafte Bezeichnung für den :ref:`Zuweisungsausdruck ` Operator ``:=``, da er ein bisschen wie ein Walross aussieht, " +"wenn man den Kopf etwas dreht." msgid "Zen of Python" -msgstr "" +msgstr "Zen von Python" msgid "" "Listing of Python design principles and philosophies that are helpful in " "understanding and using the language. The listing can be found by typing " "\"``import this``\" at the interactive prompt." msgstr "" +"Eine Auflistung der Python-Entwurfsprinzipien und -Philosophien, die zum " +"Verständnis und zur Anwendung der Sprache hilfreich sind. Die Auflistung " +"kann durch Eingabe von \"``import this`` \“ an der interaktiven " +"Eingabeaufforderung aufgerufen werden." msgid "..." -msgstr "" +msgstr "..." msgid "ellipsis literal" -msgstr "" +msgstr "Ellipsis-Literal" msgid "C-contiguous" -msgstr "" +msgstr "C-zusammenhängend" msgid "Fortran contiguous" -msgstr "" +msgstr "Fortran – zusammenhängend" msgid "magic" -msgstr "" +msgstr "Magie" msgid "special" -msgstr "" +msgstr "besonders" diff --git a/installing/index.po b/installing/index.po index 88dacca..03e4cec 100644 --- a/installing/index.po +++ b/installing/index.po @@ -6,13 +6,12 @@ # Translators: # python-doc bot, 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-25 14:12+0000\n" -"PO-Revision-Date: 2025-09-16 00:00+0000\n" +"PO-Revision-Date: 2026-06-03 00:00+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "MIME-Version: 1.0\n" @@ -22,214 +21,134 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Installing Python Modules" -msgstr "" +msgstr "Installieren von Python-Modulen" msgid "Email" -msgstr "" +msgstr "E-Mail" msgid "distutils-sig@python.org" -msgstr "" +msgstr "distutils-sig@python.org" -msgid "" -"As a popular open source development project, Python has an active " -"supporting community of contributors and users that also make their software " -"available for other Python developers to use under open source license terms." -msgstr "" +msgid "As a popular open source development project, Python has an active supporting community of contributors and users that also make their software available for other Python developers to use under open source license terms." +msgstr "Als beliebtes Open-Source-Entwicklungsprojekt verfügt Python über eine aktive Community aus Mitwirkenden und Nutzern, die ihre Software anderen Python-Entwicklern ebenfalls unter Open-Source-Lizenzbedingungen zur Verfügung stellen." -msgid "" -"This allows Python users to share and collaborate effectively, benefiting " -"from the solutions others have already created to common (and sometimes even " -"rare!) problems, as well as potentially contributing their own solutions to " -"the common pool." -msgstr "" +msgid "This allows Python users to share and collaborate effectively, benefiting from the solutions others have already created to common (and sometimes even rare!) problems, as well as potentially contributing their own solutions to the common pool." +msgstr "Dies ermöglicht es Python-Nutzern, effektiv zusammenzuarbeiten und sich auszutauschen; sie profitieren von Lösungen, die andere bereits für häufige (und bisweilen sogar seltene!) Probleme entwickelt haben, und können ihrerseits eigene Lösungen zu diesem gemeinsamen Pool beisteuern." -msgid "" -"This guide covers the installation part of the process. For a guide to " -"creating and sharing your own Python projects, refer to the `Python " -"packaging user guide`_." -msgstr "" +msgid "This guide covers the installation part of the process. For a guide to creating and sharing your own Python projects, refer to the `Python packaging user guide`_." +msgstr "Dieser Leitfaden behandelt den Installationsschritt des Prozesses. Für eine Anleitung zum Erstellen und Teilen eigener Python-Projekte beachte den `Python Packaging User Guide`_." -msgid "" -"For corporate and other institutional users, be aware that many " -"organisations have their own policies around using and contributing to open " -"source software. Please take such policies into account when making use of " -"the distribution and installation tools provided with Python." -msgstr "" +msgid "For corporate and other institutional users, be aware that many organisations have their own policies around using and contributing to open source software. Please take such policies into account when making use of the distribution and installation tools provided with Python." +msgstr "Für Unternehmen und andere institutionelle Nutzer: Bitte beachten Sie, dass viele Organisationen eigene Richtlinien zur Nutzung von und zur Mitarbeit an Open-die mit Python bereitgestellten Tools für Distribution und Installation verwenden." msgid "Key terms" -msgstr "" +msgstr "Schlüsselbegriffe" -msgid "" -"``pip`` is the preferred installer program. Starting with Python 3.4, it is " -"included by default with the Python binary installers." -msgstr "" +msgid "``pip`` is the preferred installer program. Starting with Python 3.4, it is included by default with the Python binary installers." +msgstr "``pip`` ist das bevorzugte Installationsprogramm. Ab Python 3.4 ist es standardmäßig in den Binär-Installationsprogrammen von Python enthalten." -msgid "" -"A *virtual environment* is a semi-isolated Python environment that allows " -"packages to be installed for use by a particular application, rather than " -"being installed system wide." -msgstr "" +msgid "A *virtual environment* is a semi-isolated Python environment that allows packages to be installed for use by a particular application, rather than being installed system wide." +msgstr "Eine *virtuelle Umgebung* ist eine teilisolierte Python-Umgebung, die es ermöglicht, Pakete für die Verwendung durch eine bestimmte Anwendung zu installieren, anstatt sie systemweit zu installieren." -msgid "" -"``venv`` is the standard tool for creating virtual environments, and has " -"been part of Python since Python 3.3. Starting with Python 3.4, it defaults " -"to installing ``pip`` into all created virtual environments." -msgstr "" +msgid "``venv`` is the standard tool for creating virtual environments, and has been part of Python since Python 3.3. Starting with Python 3.4, it defaults to installing ``pip`` into all created virtual environments." +msgstr "``venv`` ist das Standardwerkzeug zum Erstellen virtueller Umgebungen und ist seit Python 3.3 Bestandteil von Python. Ab Python 3.4 wird standardmäßig ``pip`` in allen erstellten virtuellen Umgebungen installiert.“" -msgid "" -"``virtualenv`` is a third party alternative (and predecessor) to ``venv``. " -"It allows virtual environments to be used on versions of Python prior to " -"3.4, which either don't provide ``venv`` at all, or aren't able to " -"automatically install ``pip`` into created environments." -msgstr "" +msgid "``virtualenv`` is a third party alternative (and predecessor) to ``venv``. It allows virtual environments to be used on versions of Python prior to 3.4, which either don't provide ``venv`` at all, or aren't able to automatically install ``pip`` into created environments." +msgstr "``virtualenv`` ist eine Alternative von Drittanbietern (und Vorgänger) zu ``venv``. Es ermöglicht die Verwendung virtueller Umgebungen mit Python-Versionen vor 3.4, die entweder gar kein ``venv`` bereitstellen oder nicht in der Lage sind, ``pip`` automatisch in den erstellten Umgebungen zu installieren.“" -msgid "" -"The `Python Package Index `__ is a public repository of " -"open source licensed packages made available for use by other Python users." -msgstr "" +msgid "The `Python Package Index `__ is a public repository of open source licensed packages made available for use by other Python users." +msgstr "Der `Python Package Index `__ ist eine öffentliche Fundgrube für Pakete unter Open-Source-Lizenzen, die anderen Python-Nutzern zur Verfügung gestellt werden." -msgid "" -"the `Python Packaging Authority `__ is the group of " -"developers and documentation authors responsible for the maintenance and " -"evolution of the standard packaging tools and the associated metadata and " -"file format standards. They maintain a variety of tools, documentation, and " -"issue trackers on `GitHub `__." -msgstr "" +msgid "the `Python Packaging Authority `__ is the group of developers and documentation authors responsible for the maintenance and evolution of the standard packaging tools and the associated metadata and file format standards. They maintain a variety of tools, documentation, and issue trackers on `GitHub `__." +msgstr "Die `Python Packaging Authority `__ ist die Gruppe von Entwicklern und Dokumentationsautoren, die für die Wartung und Weiterentwicklung der Standard-Packaging-Werkzeuge sowie der zugehörigen Standards für Metadaten und Dateiformate verantwortlich ist. Sie pflegt eine Vielzahl von Werkzeugen, Dokumentationen und Problemverfolgern auf `GitHub `__." -msgid "" -"``distutils`` is the original build and distribution system first added to " -"the Python standard library in 1998. While direct use of ``distutils`` is " -"being phased out, it still laid the foundation for the current packaging and " -"distribution infrastructure, and it not only remains part of the standard " -"library, but its name lives on in other ways (such as the name of the " -"mailing list used to coordinate Python packaging standards development)." -msgstr "" +msgid "``distutils`` is the original build and distribution system first added to the Python standard library in 1998. While direct use of ``distutils`` is being phased out, it still laid the foundation for the current packaging and distribution infrastructure, and it not only remains part of the standard library, but its name lives on in other ways (such as the name of the mailing list used to coordinate Python packaging standards development)." +msgstr "``distutils`` ist das ursprüngliche Build- und Distributionssystem, das 1998 erstmals in die Python-Standardbibliothek aufgenommen wurde. Auch wenn die direkte Verwendung von ``distutils`` schrittweise eingestellt wird, legte es den Grundstein für die heutige Infrastruktur zur Paketierung und Verteilung; es bleibt nicht nur Bestandteil der Standardbibliothek, sondern sein Name lebt auch auf andere Weise fort (etwa als Name der Mailingliste, die zur Koordinierung der Entwicklung von Standards für die Python-Paketierung dient).“" -msgid "" -"The use of ``venv`` is now recommended for creating virtual environments." -msgstr "" +msgid "The use of ``venv`` is now recommended for creating virtual environments." +msgstr "Die Verwendung von ``venv`` wird nun für das Erstellen virtueller Umgebungen empfohlen." -msgid "" -"`Python Packaging User Guide: Creating and using virtual environments " -"`__" -msgstr "" +msgid "`Python Packaging User Guide: Creating and using virtual environments `__" +msgstr "`Python Packaging User Guide: Erstellen und Verwenden virtueller Umgebungen `__" msgid "Basic usage" -msgstr "" +msgstr "Grundlegende Verwendung" -msgid "" -"The standard packaging tools are all designed to be used from the command " -"line." -msgstr "" +msgid "The standard packaging tools are all designed to be used from the command line." +msgstr "Die Standard-Paketierungswerkzeuge sind alle für die Verwendung über die Befehlszeile konzipiert." -msgid "" -"The following command will install the latest version of a module and its " -"dependencies from the Python Package Index::" -msgstr "" +msgid "The following command will install the latest version of a module and its dependencies from the Python Package Index::" +msgstr "Der folgende Befehl installiert die neueste Version eines Moduls und dessen Abhängigkeiten vom Python Package Index::" msgid "python -m pip install SomePackage" -msgstr "" +msgstr "python -m pip install SomePackage" -msgid "" -"For POSIX users (including macOS and Linux users), the examples in this " -"guide assume the use of a :term:`virtual environment`." -msgstr "" +msgid "For POSIX users (including macOS and Linux users), the examples in this guide assume the use of a :term:`virtual environment`." +msgstr "Für POSIX-Anwender (einschließlich macOS- und Linux-Nutzern) setzen die Beispiele in diesem Leitfaden die Verwendung einer :term:`virtuellen Umgebung` voraus." -msgid "" -"For Windows users, the examples in this guide assume that the option to " -"adjust the system PATH environment variable was selected when installing " -"Python." -msgstr "" +msgid "For Windows users, the examples in this guide assume that the option to adjust the system PATH environment variable was selected when installing Python." +msgstr "Für Windows-Benutzer setzen die Beispiele in dieser Anleitung voraus, dass bei der Installation von Python die Option zur Anpassung der System-Umgebungsvariablen PATH ausgewählt wurde." -msgid "" -"It's also possible to specify an exact or minimum version directly on the " -"command line. When using comparator operators such as ``>``, ``<`` or some " -"other special character which get interpreted by shell, the package name and " -"the version should be enclosed within double quotes::" -msgstr "" +msgid "It's also possible to specify an exact or minimum version directly on the command line. When using comparator operators such as ``>``, ``<`` or some other special character which get interpreted by shell, the package name and the version should be enclosed within double quotes::" +msgstr "Es ist auch möglich, eine genaue oder minimale Version direkt auf der Befehlszeile anzugeben. Bei Verwendung von Vergleichsoperatoren wie ``>``, ``<`` oder anderen „Sonderzeichen, die von der Shell interpretiert werden, sollte der Paketname und “die Version in doppelten Anführungszeichen gesetzt werden::“" msgid "" "python -m pip install SomePackage==1.0.4 # specific version\n" "python -m pip install \"SomePackage>=1.0.4\" # minimum version" msgstr "" +"python -m pip install SomePackage==1.0.4 # speziische Version\n" +"python -m pip install \"SomePackage>=1.0.4\" # mindestens geforderte Version" -msgid "" -"Normally, if a suitable module is already installed, attempting to install " -"it again will have no effect. Upgrading existing modules must be requested " -"explicitly::" -msgstr "" +msgid "Normally, if a suitable module is already installed, attempting to install it again will have no effect. Upgrading existing modules must be requested explicitly::" +msgstr "Wenn ein geeignetes Modul bereits installiert ist, hat ein erneuter Installationsversuch normalerweise keine Auswirkung. Die Aktualisierung vorhandener Module muss ausdrücklich angefordert werden::" msgid "python -m pip install --upgrade SomePackage" -msgstr "" +msgstr "python -m pip install --upgrade SomePackage" -msgid "" -"More information and resources regarding ``pip`` and its capabilities can be " -"found in the `Python Packaging User Guide `__." -msgstr "" +msgid "More information and resources regarding ``pip`` and its capabilities can be found in the `Python Packaging User Guide `__." +msgstr "Weitere Informationen und Ressourcen zu „pip“ und dessen Funktionen finden sich im `Python Packaging User Guide `__." -msgid "" -"Creation of virtual environments is done through the :mod:`venv` module. " -"Installing packages into an active virtual environment uses the commands " -"shown above." -msgstr "" +msgid "Creation of virtual environments is done through the :mod:`venv` module. Installing packages into an active virtual environment uses the commands shown above." +msgstr "Virtuelle Umgebungen werden mithilfe des Moduls :mod:`venv` erstellt. Für die Installation von Paketen in einer aktiven virtuellen Umgebung werden die oben gezeigten Befehle verwendet." -msgid "" -"`Python Packaging User Guide: Installing Python Distribution Packages " -"`__" -msgstr "" +msgid "`Python Packaging User Guide: Installing Python Distribution Packages `__" +msgstr "`Python Packaging User Guide: Installation von Python-Distributionspaketen `__" msgid "How do I ...?" -msgstr "" +msgstr "Wie mach ich es ...?" msgid "These are quick answers or links for some common tasks." msgstr "Dies sind schnelle Antworten oder Links für übliche Aufgaben." msgid "... install ``pip`` in versions of Python prior to Python 3.4?" -msgstr "" +msgstr "... Installation von ``pip`` in Versionen von Python vor Python 3.4?" -msgid "" -"Python only started bundling ``pip`` with Python 3.4. For earlier versions, " -"``pip`` needs to be \"bootstrapped\" as described in the Python Packaging " -"User Guide." -msgstr "" +msgid "Python only started bundling ``pip`` with Python 3.4. For earlier versions, ``pip`` needs to be \"bootstrapped\" as described in the Python Packaging User Guide." +msgstr "Python begann erst mit Version 3.4 damit, ``pip`` mitzuliefern. Bei früheren Versionen muss ``pip`` \"von Hand“ installiert werden, wie im „Python Packaging User Guide“ beschrieben." -msgid "" -"`Python Packaging User Guide: Requirements for Installing Packages `__" -msgstr "" +msgid "`Python Packaging User Guide: Requirements for Installing Packages `__" +msgstr "`Python Packaging-Benutzerhandbuch: Anforderungen für die Installation von Paketen `__“" msgid "... install packages just for the current user?" -msgstr "" +msgstr "... Pakete nur für den aktuellen Benutzer installieren?" -msgid "" -"Passing the ``--user`` option to ``python -m pip install`` will install a " -"package just for the current user, rather than for all users of the system." -msgstr "" +msgid "Passing the ``--user`` option to ``python -m pip install`` will install a package just for the current user, rather than for all users of the system." +msgstr "Die Übergabe der Option ``--user`` an ``python -m pip install`` installiert ein Paket nur für den aktuellen Benutzer, anstatt für alle Benutzer des Systems." msgid "... install scientific Python packages?" -msgstr "" +msgstr "... wissenschaftliche Python-Pakete installieren?" -msgid "" -"A number of scientific Python packages have complex binary dependencies, and " -"aren't currently easy to install using ``pip`` directly. At this point in " -"time, it will often be easier for users to install these packages by `other " -"means `__ rather than attempting to " -"install them with ``pip``." -msgstr "" +msgid "A number of scientific Python packages have complex binary dependencies, and aren't currently easy to install using ``pip`` directly. At this point in time, it will often be easier for users to install these packages by `other means `__ rather than attempting to install them with ``pip``." +msgstr "Eine Reihe wissenschaftlicher Python-Pakete weist komplexe binäre Abhängigkeiten auf und lässt sich derzeit nicht ohne Weiteres direkt mit ``pip`` installieren. Für Anwender ist es zum jetzigen Zeitpunkt oft einfacher, diese Pakete auf `anderem Wege wie `__ zu installieren, anstatt zu versuchen, sie mit ``pip`` zu installieren." -msgid "" -"`Python Packaging User Guide: Installing Scientific Packages `__" -msgstr "" +msgid "`Python Packaging User Guide: Installing Scientific Packages `__" +msgstr "Python Packaging User Guide: Installation wissenschaftlicher Pakete “" msgid "... work with multiple versions of Python installed in parallel?" -msgstr "" +msgstr "...mit mehreren parallel installierten Python-Versionen arbeiten?" -msgid "" -"On Linux, macOS, and other POSIX systems, use the versioned Python commands " -"in combination with the ``-m`` switch to run the appropriate copy of " -"``pip``::" -msgstr "" +msgid "On Linux, macOS, and other POSIX systems, use the versioned Python commands in combination with the ``-m`` switch to run the appropriate copy of ``pip``::" +msgstr "Verwenden Sie unter Linux, macOS und anderen POSIX-Systemen die versionsspezifischen Python-Befehle in Kombination mit der Option ``-m``, um die entsprechende Kopie von ``pip`` auszuführen::" msgid "" "python2 -m pip install SomePackage # default Python 2\n" @@ -237,14 +156,16 @@ msgid "" "python3 -m pip install SomePackage # default Python 3\n" "python3.4 -m pip install SomePackage # specifically Python 3.4" msgstr "" +"python2 -m pip install SomePackage # Standard Python 2\n" +"python2.7 -m pip install SomePackage # spezielles Python 2.7\n" +"python3 -m pip install SomePackage # Standard Python 3\n" +"python3.4 -m pip install SomePackage # spezielles Python 3.4" msgid "Appropriately versioned ``pip`` commands may also be available." -msgstr "" +msgstr "Möglicherweise sind auch entsprechend versionierte ``pip``-Befehle verfügbar." -msgid "" -"On Windows, use the ``py`` Python launcher in combination with the ``-m`` " -"switch::" -msgstr "" +msgid "On Windows, use the ``py`` Python launcher in combination with the ``-m`` switch::" +msgstr "Verwenden Sie unter Windows den Python-Launcher ``py`` in Kombination mit der Option ``-m``::" msgid "" "py -2 -m pip install SomePackage # default Python 2\n" @@ -252,68 +173,46 @@ msgid "" "py -3 -m pip install SomePackage # default Python 3\n" "py -3.4 -m pip install SomePackage # specifically Python 3.4" msgstr "" +"py -2 -m pip install SomePackage # Standard Python 2\n" +"py -2.7 -m pip install SomePackage # spezielles Python 2.7\n" +"py -3 -m pip install SomePackage # Standard Python 3\n" +"py -3.4 -m pip install SomePackage # spezielles Python 3.4" msgid "Common installation issues" -msgstr "" +msgstr "Häufige Installationsprobleme" msgid "Installing into the system Python on Linux" -msgstr "" +msgstr "Installation in das System-Python unter Linux" -msgid "" -"On Linux systems, a Python installation will typically be included as part " -"of the distribution. Installing into this Python installation requires root " -"access to the system, and may interfere with the operation of the system " -"package manager and other components of the system if a component is " -"unexpectedly upgraded using ``pip``." -msgstr "" +msgid "On Linux systems, a Python installation will typically be included as part of the distribution. Installing into this Python installation requires root access to the system, and may interfere with the operation of the system package manager and other components of the system if a component is unexpectedly upgraded using ``pip``." +msgstr "Auf Linux-Systemen ist eine Python-Installation üblicherweise Bestandteil der Distribution. Eine Installation in diese Python-Umgebung erfordert Root-Zugriff auf das System und kann die Funktionsweise des System-Paketmanagers sowie anderer Systemkomponenten beeinträchtigen, falls eine Komponente unerwartet mittels ``pip`` aktualisiert wird." -msgid "" -"On such systems, it is often better to use a virtual environment or a per-" -"user installation when installing packages with ``pip``." -msgstr "" +msgid "On such systems, it is often better to use a virtual environment or a per-user installation when installing packages with ``pip``." +msgstr "Auf solchen Systemen ist es bei der Installation von Paketen mit ``pip`` oft besser, eine virtuelle Umgebung oder eine benutzerbezogene Installation zu verwenden." msgid "Pip not installed" -msgstr "" +msgstr "Pip ist nicht installiert." -msgid "" -"It is possible that ``pip`` does not get installed by default. One potential " -"fix is::" -msgstr "" +msgid "It is possible that ``pip`` does not get installed by default. One potential fix is::" +msgstr "Es ist möglich, dass „pip“ nicht standardmäßig installiert wird. Eine mögliche Lösung ist::" msgid "python -m ensurepip --default-pip" -msgstr "" +msgstr "python -m ensurepip --default-pip" -msgid "" -"There are also additional resources for `installing pip. `__" -msgstr "" +msgid "There are also additional resources for `installing pip. `__" +msgstr "Es gibt auch zusätzliche Ressourcen zur `Installation von pip. `__" msgid "Installing binary extensions" -msgstr "" +msgstr "Installation von Binärerweiterungen" -msgid "" -"Python has typically relied heavily on source based distribution, with end " -"users being expected to compile extension modules from source as part of the " -"installation process." -msgstr "" +msgid "Python has typically relied heavily on source based distribution, with end users being expected to compile extension modules from source as part of the installation process." +msgstr "Python hat sich typischerweise stark auf die Verteilung im Quellcode gestützt, wobei von Endanwendern erwartet wurde, dass sie Erweiterungsmodule im Rahmen des Installationsprozesses aus dem Quellcode kompilieren." -msgid "" -"With the introduction of support for the binary ``wheel`` format, and the " -"ability to publish wheels for at least Windows and macOS through the Python " -"Package Index, this problem is expected to diminish over time, as users are " -"more regularly able to install pre-built extensions rather than needing to " -"build them themselves." -msgstr "" +msgid "With the introduction of support for the binary ``wheel`` format, and the ability to publish wheels for at least Windows and macOS through the Python Package Index, this problem is expected to diminish over time, as users are more regularly able to install pre-built extensions rather than needing to build them themselves." +msgstr "Mit der Einführung der Unterstützung für das binäre „Wheel“-Format und der Möglichkeit, Wheels – zumindest für Windows und macOS – über den Python Package Index zu veröffentlichen, dürfte dieses Problem im Laufe der Zeit abnehmen; denn Nutzer können dann häufiger vorgefertigte Erweiterungen installieren, anstatt diese selbst kompilieren zu müssen." -msgid "" -"Some of the solutions for installing `scientific software `__ that are not yet available as pre-built ``wheel`` " -"files may also help with obtaining other binary extensions without needing " -"to build them locally." -msgstr "" +msgid "Some of the solutions for installing `scientific software `__ that are not yet available as pre-built ``wheel`` files may also help with obtaining other binary extensions without needing to build them locally." +msgstr "Einige der Lösungen für die Installation von `wissenschaftlicher Software `__, die noch nicht als vorgefertigtes ``Wheel`` verfügbar sind, können auch dabei helfen, andere Binärerweiterungen zu erhalten, ohne dass es erforderlich ist die Binärerweiterungen lokal zu erstellen.“" -msgid "" -"`Python Packaging User Guide: Binary Extensions `__" -msgstr "" +msgid "`Python Packaging User Guide: Binary Extensions `__" +msgstr "Python Packaging User Guide: Binäre Erweiterungen `__“" diff --git a/library/functions.po b/library/functions.po index d5fbd00..e986d3f 100644 --- a/library/functions.po +++ b/library/functions.po @@ -22,304 +22,315 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Built-in Functions" -msgstr "" +msgstr "Integrierte Funktionen" msgid "" "The Python interpreter has a number of functions and types built into it " "that are always available. They are listed here in alphabetical order." msgstr "" +"Der Python-Interpreter verfügt über eine Reihe integrierter Funktionen und Typen," +"die jederzeit verfügbar sind. Sie sind hier in alphabetischer Reihenfolge aufgeführt." msgid "**A**" -msgstr "" +msgstr "**A**" msgid ":func:`abs`" -msgstr "" +msgstr ":func:`abs`" msgid ":func:`aiter`" -msgstr "" +msgstr ":func:`aiter`" msgid ":func:`all`" -msgstr "" +msgstr ":func:`all`" msgid ":func:`anext`" -msgstr "" +msgstr ":func:`anext`" msgid ":func:`any`" -msgstr "" +msgstr ":func:`any`" msgid ":func:`ascii`" -msgstr "" +msgstr ":func:`ascii`" msgid "**B**" -msgstr "" +msgstr "**B**" msgid ":func:`bin`" -msgstr "" +msgstr ":func:`bin`" msgid ":func:`bool`" -msgstr "" +msgstr ":func:`bool`" msgid ":func:`breakpoint`" -msgstr "" +msgstr ":func:`breakpoint`" msgid "|func-bytearray|_" -msgstr "" +msgstr "|func-bytearray|_" msgid "|func-bytes|_" -msgstr "" +msgstr "|func-bytes|_" msgid "**C**" -msgstr "" +msgstr "**C**" msgid ":func:`callable`" -msgstr "" +msgstr ":func:`callable`" msgid ":func:`chr`" -msgstr "" +msgstr ":func:`chr`" msgid ":func:`classmethod`" -msgstr "" +msgstr ":func:`classmethod`" msgid ":func:`compile`" -msgstr "" +msgstr ":func:`compile`" msgid ":func:`complex`" -msgstr "" +msgstr ":func:`complex`" msgid "**D**" -msgstr "" +msgstr "**D**" msgid ":func:`delattr`" -msgstr "" +msgstr ":func:`delattr`" msgid "|func-dict|_" -msgstr "" +msgstr "|func-dict|_" msgid ":func:`dir`" -msgstr "" +msgstr ":func:`dir`" msgid ":func:`divmod`" -msgstr "" +msgstr ":func:`divmod`" msgid "**E**" -msgstr "" +msgstr "**E**" msgid ":func:`enumerate`" -msgstr "" +msgstr ":func:`enumerate`" msgid ":func:`eval`" -msgstr "" +msgstr ":func:`eval`" msgid ":func:`exec`" -msgstr "" +msgstr ":func:`exec`" msgid "**F**" -msgstr "" +msgstr "**F**" msgid ":func:`filter`" -msgstr "" +msgstr ":func:`filter`" msgid ":func:`float`" -msgstr "" +msgstr ":func:`float`" msgid ":func:`format`" -msgstr "" +msgstr ":func:`format`" msgid "|func-frozenset|_" -msgstr "" +msgstr "|func-frozenset|_" msgid "**G**" -msgstr "" +msgstr "**G**" msgid ":func:`getattr`" -msgstr "" +msgstr ":func:`getattr`" msgid ":func:`globals`" -msgstr "" +msgstr ":func:`globals`" msgid "**H**" -msgstr "" +msgstr "**H**" msgid ":func:`hasattr`" -msgstr "" +msgstr ":func:`hasattr`" msgid ":func:`hash`" -msgstr "" +msgstr ":func:`hash`" msgid ":func:`help`" -msgstr "" +msgstr ":func:`help`" msgid ":func:`hex`" -msgstr "" +msgstr ":func:`hex`" msgid "**I**" -msgstr "" +msgstr "**I**" msgid ":func:`id`" -msgstr "" +msgstr ":func:`id`" msgid ":func:`input`" -msgstr "" +msgstr ":func:`input`" msgid ":func:`int`" -msgstr "" +msgstr ":func:`int`" msgid ":func:`isinstance`" -msgstr "" +msgstr ":func:`isinstance`" msgid ":func:`issubclass`" -msgstr "" +msgstr ":func:`issubclass`" msgid ":func:`iter`" -msgstr "" +msgstr ":func:`iter`" msgid "**L**" -msgstr "" +msgstr "**L**" msgid ":func:`len`" -msgstr "" +msgstr ":func:`len`" msgid "|func-list|_" -msgstr "" +msgstr "|func-list|_" msgid ":func:`locals`" -msgstr "" +msgstr ":func:`locals`" msgid "**M**" -msgstr "" +msgstr "**M**" msgid ":func:`map`" -msgstr "" +msgstr ":func:`map`" msgid ":func:`max`" -msgstr "" +msgstr ":func:`max`" msgid "|func-memoryview|_" -msgstr "" +msgstr "|func-memoryview|_" msgid ":func:`min`" -msgstr "" +msgstr ":func:`min`" msgid "**N**" -msgstr "" +msgstr "**N**" msgid ":func:`next`" -msgstr "" +msgstr ":func:`next`" msgid "**O**" -msgstr "" +msgstr "**O**" msgid ":func:`object`" -msgstr "" +msgstr ":func:`object`" msgid ":func:`oct`" -msgstr "" +msgstr ":func:`oct`" msgid ":func:`open`" -msgstr "" +msgstr "":func:`open`"" msgid ":func:`ord`" -msgstr "" +msgstr ":func:`ord`" msgid "**P**" -msgstr "" +msgstr "**P**" msgid ":func:`pow`" -msgstr "" +msgstr ":func:`pow`" msgid ":func:`print`" -msgstr "" +msgstr ":func:`print`" msgid ":func:`property`" -msgstr "" +msgstr ":func:`property`" msgid "**R**" -msgstr "" +msgstr "**R**" msgid "|func-range|_" -msgstr "" +msgstr "|func-range|_" msgid ":func:`repr`" -msgstr "" +msgstr ":func:`repr`" msgid ":func:`reversed`" -msgstr "" +msgstr ":func:`reversed`" msgid ":func:`round`" -msgstr "" +msgstr ":func:`round`" msgid "**S**" -msgstr "" +msgstr "**S**" msgid "|func-set|_" -msgstr "" +msgstr "|func-set|_" msgid ":func:`setattr`" -msgstr "" +msgstr ":func:`setattr`" msgid ":func:`slice`" -msgstr "" +msgstr ":func:`slice`" msgid ":func:`sorted`" -msgstr "" +msgstr ":func:`sorted`" msgid ":func:`staticmethod`" -msgstr "" +msgstr ":func:`staticmethod`" msgid "|func-str|_" -msgstr "" +msgstr "|func-str|_" msgid ":func:`sum`" -msgstr "" +msgstr ":func:`sum`" msgid ":func:`super`" -msgstr "" +msgstr ":func:`super`" msgid "**T**" -msgstr "" +msgstr "**T**" msgid "|func-tuple|_" -msgstr "" +msgstr "|func-tuple|_" msgid ":func:`type`" -msgstr "" +msgstr ":func:`type`" msgid "**V**" -msgstr "" +msgstr "**V**" msgid ":func:`vars`" -msgstr "" +msgstr ":func:`vars`" msgid "**Z**" -msgstr "" +msgstr "**Z**" msgid ":func:`zip`" -msgstr "" +msgstr ":func:`zip`" msgid "**_**" -msgstr "" +msgstr "**_**" msgid ":func:`__import__`" -msgstr "" +msgstr ":func:`__import__`" msgid "" "Return the absolute value of a number. The argument may be an integer, a " "floating-point number, or an object implementing :meth:`~object.__abs__`. If " "the argument is a complex number, its magnitude is returned." msgstr "" +"Gibt den Absolutwert einer Zahl zurück. Das Argument kann eine Ganzzahl, " +"eine Gleitkommazahl oder ein Objekt sein, das :meth:`~object.__abs__` " +"implementiert. Handelt es sich bei dem Argument um eine komplexe Zahl, " +"wird deren Betrag zurückgegeben." + msgid "" "Return an :term:`asynchronous iterator` for an :term:`asynchronous " "iterable`. Equivalent to calling ``x.__aiter__()``." msgstr "" +"Gibt einen :term:`asynchronous iterator` für ein :term:`asynchronous " +"iterable` zurück. Entspricht dem Aufruf von ``x.__aiter__()``." msgid "Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant." -msgstr "" +msgstr "Hinweis: Im Gegensatz zu :func:`iter` gibt es bei :func:`aiter` keine Variante mit zwei Argumenten" msgid "" "Return ``True`` if all elements of the *iterable* are true (or if the " "iterable is empty). Equivalent to::" msgstr "" +"Gibt ``True`` zurück, wenn alle Elemente des *iterable* wahr sind (oder wenn das " +"iterable leer ist). Entspricht::“ msgid "" "def all(iterable):\n" @@ -328,15 +339,23 @@ msgid "" " return False\n" " return True" msgstr "" +"def all(iterable):\n" +" for element in iterable:\n" +" if not element:\n" +" return False\n" +" return True" msgid "" "When awaited, return the next item from the given :term:`asynchronous " "iterator`, or *default* if given and the iterator is exhausted." msgstr "" +"Gibt, wenn erwartet, das nächste Element des angegebenen :term:`asynchronen " +"Iterators ` " +"zurück – oder *default*, falls angegeben und der Iterator erschöpft ist." msgid "" "This is the async variant of the :func:`next` builtin, and behaves similarly." -msgstr "" +msgstr "Dies ist die asynchrone Variante der eingebauten Funktion :func:`next` und verhält sich ähnlich." msgid "" "This calls the :meth:`~object.__anext__` method of *async_iterator*, " @@ -344,11 +363,18 @@ msgid "" "iterator. If *default* is given, it is returned if the iterator is " "exhausted, otherwise :exc:`StopAsyncIteration` is raised." msgstr "" +"Dies ruft die Methode :meth:`~object.__anext__` von *async_iterator* auf " +"und gibt ein :term:`awaitable` zurück. Das Warten auf dieses (mittels ``await``) " +"liefert den nächsten Wert des Iterators. Wenn *default* angegeben ist, " +"wird dieser Wert zurückgegeben, falls der Iterator erschöpft ist; " +"andernfalls wird :exc:`StopAsyncIteration` ausgelöst." msgid "" "Return ``True`` if any element of the *iterable* is true. If the iterable " "is empty, return ``False``. Equivalent to::" msgstr "" +"Gibt ``True`` zurück, wenn mindestens ein Element des *iterable* wahr ist. " +"Wenn das Iterable leer ist, wird ``False`` zurückgegeben. Entspricht::" msgid "" "def any(iterable):\n" @@ -357,6 +383,11 @@ msgid "" " return True\n" " return False" msgstr "" +"def any(iterable):\n" +" for element in iterable:\n" +" if element:\n" +" return True\n" +" return False" msgid "" "As :func:`repr`, return a string containing a printable representation of an " @@ -364,6 +395,10 @@ msgid "" "`repr` using ``\\x``, ``\\u``, or ``\\U`` escapes. This generates a string " "similar to that returned by :func:`repr` in Python 2." msgstr "" +"Gibt wie :func:`repr` einen String zurück, der eine druckbare Darstellung " +"eines Objekts enthält; allerdings werden Nicht-ASCII-Zeichen in dem von :func:`repr` " +"zurückgegebenen String mittels ``\\x``-, ``\\u``- oder ``\\U``-Escapes maskiert. " +"Dies erzeugt einen String, der dem ähnelt, den :func:`repr` in Python 2 zurückgibt." msgid "" "Convert an integer number to a binary string prefixed with \"0b\". The " @@ -371,14 +406,20 @@ msgid "" "`int` object, it has to define an :meth:`~object.__index__` method that " "returns an integer. Some examples:" msgstr "" +"Wandelt eine Ganzzahl in eine Binärzeichenkette mit dem Präfix \"0b\“ um. " +"Das Ergebnis ist ein gültiger Python-Ausdruck. Wenn *integer* kein Python-Objekt " +"vom Typ :class:`int` ist, muss es eine :meth:`~object.__index__`-Methode definieren, " +"die eine Ganzzahl zurückgibt. Einige Beispiele:" msgid "" "If the prefix \"0b\" is desired or not, you can use either of the following " "ways." msgstr "" +"Je nachdem, ob das Präfix \"0b\“ gewünscht ist oder nicht, können Sie eine der " +"folgenden Methoden verwenden." msgid "See also :func:`format` for more information." -msgstr "" +msgstr "Weitere Informationen findest du unter :func:`format`." msgid "" "Return a Boolean value, i.e. one of ``True`` or ``False``. The argument is " @@ -388,9 +429,16 @@ msgid "" "`typesnumeric`). It cannot be subclassed further. Its only instances are " "``False`` and ``True`` (see :ref:`typebool`)." msgstr "" +"Gibt einen booleschen Wert zurück, d. h. entweder ``True`` oder ``False``. " +"Das Argument wird mithilfe des Standardverfahrens zur Wahrheitsprüfung " +":ref:`truth testing procedure ` umgewandelt. Ist das Argument falsch " +"oder wird es weggelassen, wird ``False`` zurückgegeben; andernfalls wird ``True`` " +"zurückgegeben. Die Klasse :class:`bool` ist eine Unterklasse von :class:`int` " +"(siehe :ref:`typesnumeric`). Sie kann nicht weiter unterteilt werden. " +"Ihre einzigen Instanzen sind ``False`` und ``True`` (siehe :ref:`typebool`)." msgid "The parameter is now positional-only." -msgstr "" +msgstr "Der Parameter ist jetzt rein positionsgebunden." msgid "" "This function drops you into the debugger at the call site. Specifically, " @@ -403,22 +451,38 @@ msgid "" "you to drop into the debugger of choice. If :func:`sys.breakpointhook` is " "not accessible, this function will raise :exc:`RuntimeError`." msgstr "" +"Diese Funktion ruft an der Aufrufstelle den Debugger auf. Genauer gesagt " +"ruft sie :func:`sys.breakpointhook` auf und reicht dabei ``args`` und ``kws`` " +"direkt weiter. Standardmäßig ruft ``sys.breakpointhook()`` die Funktion " +":func:`pdb.set_trace` ohne Argumente auf. In diesem Fall handelt es sich " +"lediglich um eine Komfortfunktion, damit Sie :mod:`pdb` nicht explizit " +"importieren oder viel Code schreiben müssen, um in den Debugger zu gelangen. " +":func:`sys.breakpointhook` kann jedoch auf eine andere Funktion gesetzt " +"werden, die dann automatisch von :func:`breakpoint` aufgerufen wird; so " +"können Sie den Debugger Ihrer Wahl verwenden. Ist :func:`sys.breakpointhook` " +"nicht verfügbar, löst diese Funktion einen :exc:`RuntimeError` aus." msgid "" "By default, the behavior of :func:`breakpoint` can be changed with the :" "envvar:`PYTHONBREAKPOINT` environment variable. See :func:`sys." "breakpointhook` for usage details." msgstr "" +"Standardmäßig lässt sich das Verhalten von :func:`breakpoint` über die " +"Umgebungsvariable :envvar:`PYTHONBREAKPOINT` ändern. Einzelheiten zur Verwendung " +"finden Sie unter :func:`sys.breakpointhook`." msgid "" "Note that this is not guaranteed if :func:`sys.breakpointhook` has been " "replaced." msgstr "" +"Beachte, dass dies nicht garantiert ist, wenn :func:`sys.breakpointhook` ersetzt wurde. msgid "" "Raises an :ref:`auditing event ` ``builtins.breakpoint`` with " "argument ``breakpointhook``." msgstr "" +"Löst ein :ref:`Audit-Ereignis ` ``builtins.breakpoint`` mit dem " +"Argument ``breakpointhook`` aus." msgid "" "Return a new array of bytes. The :class:`bytearray` class is a mutable " @@ -426,39 +490,56 @@ msgid "" "methods of mutable sequences, described in :ref:`typesseq-mutable`, as well " "as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`." msgstr "" +"Gibt ein neues Byte-Array zurück. Die Klasse :class:`bytearray` ist eine " +"veränderbare Sequenz von Ganzzahlen im Bereich 0 <= x < 256. Sie verfügt " +"über die meisten der üblichen Methoden veränderbarer Sequenzen, die unter " +":ref:`typesseq-mutable` beschrieben sind, sowie über die meisten Methoden " +"des Typs :class:`bytes`, siehe :ref:`bytes-methods`." msgid "" "The optional *source* parameter can be used to initialize the array in a few " "different ways:" msgstr "" +"Der optionale Parameter *source* kann verwendet werden, um das Array auf " +"unterschiedlichen Wegen zu initialisieren:“ msgid "" "If it is a *string*, you must also give the *encoding* (and optionally, " "*errors*) parameters; :func:`bytearray` then converts the string to bytes " "using :meth:`str.encode`." msgstr "" +"Wenn es sich um einen *string* handelt, musst du auch die Parameter *encoding* " +"(und optional *errors*) angeben; :func:`bytearray` wandelt den String dann mithilfe " +"von :meth:`str.encode` in Bytes um.“ msgid "" "If it is an *integer*, the array will have that size and will be initialized " "with null bytes." msgstr "" +"Wenn es sich um eine Ganzzahl (*integer*) handelt, erhält das Array diese Größe " +"und wird mit Null-Bytes initialisiert.“ msgid "" "If it is an object conforming to the :ref:`buffer interface " "`, a read-only buffer of the object will be used to " "initialize the bytes array." msgstr "" +"Handelt es sich um ein Objekt, das dem :ref:`buffer interface ` entspricht, " +"so wird ein schreibgeschützter Puffer des Objekts verwendet, " +"um das Bytes-Array zu initialisieren.“ msgid "" "If it is an *iterable*, it must be an iterable of integers in the range ``0 " "<= x < 256``, which are used as the initial contents of the array." msgstr "" +"Wenn es sich um ein *iterable* handelt, muss es eine Liste von Ganzzahlen " +"im Bereich ``0 <= x < 256`` sein, die als anfänglicher Inhalt des Arrays verwendet werden.“ msgid "Without an argument, an array of size 0 is created." -msgstr "" +msgstr "Ohne Argument wird ein Array der Größe 0 erstellt." msgid "See also :ref:`binaryseq` and :ref:`typebytearray`." -msgstr "" +msgstr "Siehe auch :ref:`binaryseq` und :ref:`typebytearray`." msgid "" "Return a new \"bytes\" object which is an immutable sequence of integers in " @@ -466,16 +547,21 @@ msgid "" "class:`bytearray` -- it has the same non-mutating methods and the same " "indexing and slicing behavior." msgstr "" +"Gibt ein neues \"bytes\“-Objekt zurück, bei dem es sich um eine unveränderliche " +"Sequenz von Ganzzahlen im Bereich ``0 <= x < 256`` handelt. :class:`bytes` ist " +"eine unveränderliche Version von :class:`bytearray` – es verfügt über dieselben " +"nicht-modifizierenden Methoden sowie dasselbe Verhalten bei Indizierung und Slicing." msgid "" "Accordingly, constructor arguments are interpreted as for :func:`bytearray`." msgstr "" +"Demzufolge werden die Konstruktorargumente wie bei :func:`bytearray` interpretiert. msgid "Bytes objects can also be created with literals, see :ref:`strings`." -msgstr "" +msgstr "Bytes-Objekte können auch mithilfe von Literalen erstellt werden; siehe :ref:`strings`." msgid "See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`." -msgstr "" +msgstr "Siehe auch :ref:`binaryseq`, :ref:`typebytes` und :ref:`bytes-methods`." msgid "" "Return :const:`True` if the *object* argument appears callable, :const:" @@ -484,42 +570,62 @@ msgid "" "that classes are callable (calling a class returns a new instance); " "instances are callable if their class has a :meth:`~object.__call__` method." msgstr "" - +"Gibt :const:`True` zurück, wenn das Argument *object* aufrufbar erscheint, :const:`False`, " +"wenn dies nicht der Fall ist. Wenn der Rückgabewert ``True`` ist, kann ein Aufruf " +"dennoch fehlschlagen; ist er jedoch ``False``, wird ein Aufruf von *object* " +"niemals erfolgreich sein. Beachte, dass Klassen aufrufbar sind (der Aufruf " +"einer Klasse liefert eine neue Instanz); Instanzen sind aufrufbar, wenn ihre " +"Klasse eine :meth:`~object.__call__`-Methode besitzt." msgid "" "This function was first removed in Python 3.0 and then brought back in " "Python 3.2." msgstr "" +"Diese Funktion wurde zunächst in Python 3.0 entfernt und dann in Python 3.2 wieder eingeführt." msgid "" "Return the string representing a character with the specified Unicode code " "point. For example, ``chr(97)`` returns the string ``'a'``, while " "``chr(8364)`` returns the string ``'€'``. This is the inverse of :func:`ord`." msgstr "" +"Gibt den String zurück, der das Zeichen mit dem angegebenen Unicode-Codepunkt darstellt. " +"Zum Beispiel liefert ``chr(97)`` den String ``'a'``, während " +"``chr(8364)`` den String ``'€'`` liefert. Dies ist die Umkehrfunktion zu :func:`ord`." msgid "" "The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in " "base 16). :exc:`ValueError` will be raised if it is outside that range." msgstr "" +"Der zulässige Wertebereich für das Argument reicht von 0 bis 1.114.111 " +"(0x10FFFF im Hexadezimalsystem). Liegt der Wert außerhalb dieses Bereichs, " +"wird eine :exc:`ValueError`-Ausnahme ausgelöst." msgid "Transform a method into a class method." -msgstr "" +msgstr "Wandeln Sie eine Methode in eine Klassenmethode um." msgid "" "A class method receives the class as an implicit first argument, just like " "an instance method receives the instance. To declare a class method, use " "this idiom::" msgstr "" +"Eine Klassenmethode erhält die Klasse als implizites erstes Argument, " +"genau wie eine Instanzmethode die Instanz erhält. Um eine Klassenmethode " +"zu deklarieren, verwenden Sie dieses Idiom::" msgid "" "class C:\n" " @classmethod\n" " def f(cls, arg1, arg2): ..." msgstr "" +"class C:\n" +" @classmethod\n" +" def f(cls, arg1, arg2): ..." msgid "" "The ``@classmethod`` form is a function :term:`decorator` -- see :ref:" "`function` for details." msgstr "" +"Die ``@classmethod``-Form ist eine Funktion :term:`decorator` – siehe " +":ref:`function` für Details.“ msgid "" "A class method can be called either on the class (such as ``C.f()``) or on " @@ -527,17 +633,27 @@ msgid "" "class. If a class method is called for a derived class, the derived class " "object is passed as the implied first argument." msgstr "" +"Eine Klassenmethode kann entweder auf der Klasse (z. B. ``C.f()``) oder auf " +"einer Instanz (z. B. ``C().f()``) aufgerufen werden. Die Instanz wird dabei " +"ignoriert, mit Ausnahme ihrer Klasse. Wird eine Klassenmethode für eine " +"abgeleitete Klasse aufgerufen, so wird das Objekt der abgeleiteten Klasse " +"als implizites erstes Argument übergeben." msgid "" "Class methods are different than C++ or Java static methods. If you want " "those, see :func:`staticmethod` in this section. For more information on " "class methods, see :ref:`types`." msgstr "" +"Klassenmethoden unterscheiden sich von statischen Methoden in C++ oder Java. " +"Wenn Sie solche benötigen, siehe :func:`staticmethod` in diesem Abschnitt. " +"Weitere Informationen zu Klassenmethoden finden Sie unter :ref:`types`." msgid "" "Class methods can now wrap other :term:`descriptors ` such as :" "func:`property`." msgstr "" +"Klassenmethoden können nun andere :term:`Deskriptoren ` wie " +":func:`property` umschließen." msgid "" "Class methods now inherit the method attributes (:attr:`~function." @@ -545,11 +661,17 @@ msgid "" "attr:`~function.__doc__` and :attr:`~function.__annotations__`) and have a " "new ``__wrapped__`` attribute." msgstr "" +"Klassenmethoden erben nun die Methodenattribute (:attr:`~function.__module__`, " +":attr:`~function.__name__`, :attr:`~function.__qualname__`, " +":attr:`~function.__doc__` und :attr:`~function.__annotations__`) und verfügen über " +"ein neues ``__wrapped__``-Attribut." msgid "" "Class methods can no longer wrap other :term:`descriptors ` such " "as :func:`property`." msgstr "" +"Klassenmethoden können keine anderen :term:`Deskriptoren ` mehr kapseln, " +"wie etwa :func:`property`." msgid "" "Compile the *source* into a code or AST object. Code objects can be " @@ -557,12 +679,19 @@ msgid "" "string, a byte string, or an AST object. Refer to the :mod:`ast` module " "documentation for information on how to work with AST objects." msgstr "" +"Kompiliere *source* zu einem Code- oder AST-Objekt. Code-Objekte können mit " +":func:`exec` oder :func:`eval` ausgeführt werden. *source* kann entweder ein " +"normaler String, ein Byte-String oder ein AST-Objekt sein. Informationen zur " +"Arbeit mit AST-Objekten findest du in der Dokumentation zum Modul :mod:`ast`." msgid "" "The *filename* argument should give the file from which the code was read; " "pass some recognizable value if it wasn't read from a file (``''`` " "is commonly used)." msgstr "" +"Das Argument *filename* sollte die Datei angeben, aus der der Code gelesen wurde; " +"übergeben Sie einen erkennbaren Wert, falls er nicht aus einer Datei gelesen wurde (häufig wird " +"``''`` verwendet)." msgid "" "The *mode* argument specifies what kind of code must be compiled; it can be " @@ -571,6 +700,12 @@ msgid "" "single interactive statement (in the latter case, expression statements that " "evaluate to something other than ``None`` will be printed)." msgstr "" +"Das Argument *mode* legt fest, welche Art von Code kompiliert werden soll; es kann " +"``'exec'`` sein, wenn *source* aus einer Folge von Anweisungen besteht, " +"``'eval'``, wenn es aus einem einzelnen Ausdruck besteht, oder ``'single'``, " +"wenn es aus einer einzelnen interaktiven Anweisung besteht (im letzteren Fall " +"werden Ausdrucksanweisungen, die einen anderen Wert als ``None`` ergeben, " +"ausgegeben)." msgid "" "The optional arguments *flags* and *dont_inherit* control which :ref:" @@ -584,6 +719,17 @@ msgid "" "*flags* argument is it -- the flags (future features and compiler options) " "in the surrounding code are ignored." msgstr "" +"Die optionalen Argumente *flags* und *dont_inherit* steuern, welche :ref:" +"`Compiler-Optionen ` aktiviert und welche :ref:" +"`future features ` zugelassen werden sollen. Wenn keines der " +"Argumente angegeben ist (oder beide null sind), wird der Code mit denselben " +"Flags kompiliert, die auch für den Code gelten, der :func:`compile` aufruft. " +"Wird das Argument *flags* angegeben, *dont_inherit* jedoch nicht (oder ist " +"es null), so werden die durch *flags* festgelegten Compiler-Optionen und " +"future-Anweisungen zusätzlich zu jenen verwendet, die ohnehin zur Anwendung " +"kämen. Ist *dont_inherit* eine Ganzzahl ungleich null, so ist das Argument " +"*flags* allein maßgeblich – die Flags (future-Funktionen und Compiler-Optionen) " +"des umgebenden Codes werden ignoriert." msgid "" "Compiler options and future statements are specified by bits which can be " @@ -593,6 +739,13 @@ msgid "" "instance in the :mod:`__future__` module. :ref:`Compiler flags ` can be found in :mod:`ast` module, with ``PyCF_`` prefix." msgstr "" +"Compiler-Optionen und Future-Anweisungen werden durch Bits festgelegt, " +"die mittels bitweiser ODER-Verknüpfung kombiniert werden können, um mehrere " +"Optionen anzugeben. Das für eine bestimmte Future-Funktion erforderliche Bitfeld " +"ist als Attribut :attr:`~__future__._Feature.compiler_flag` der Instanz von " +":class:`~__future__._Feature` im Modul :mod:`__future__` zu finden. " +":ref:`Compiler-Flags ` sind im Modul :mod:`ast` unter dem " +"Präfix ``PyCF_`` zu finden." msgid "" "The argument *optimize* specifies the optimization level of the compiler; " @@ -601,22 +754,33 @@ msgid "" "optimization; ``__debug__`` is true), ``1`` (asserts are removed, " "``__debug__`` is false) or ``2`` (docstrings are removed too)." msgstr "" +"Das Argument *optimize* legt die Optimierungsstufe des Compilers fest; " +"der Standardwert ``-1`` wählt die Optimierungsstufe des Interpreters, " +"wie sie durch die Optionen :option:`-O` bestimmt wird. Explizite Stufen " +"sind ``0`` (keine Optimierung; ``__debug__`` ist wahr), ``1`` (Erklärungen werden entfernt, " +"``__debug__`` ist falsch) oder ``2`` (auch Docstrings werden entfernt)." msgid "" "This function raises :exc:`SyntaxError` if the compiled source is invalid, " "and :exc:`ValueError` if the source contains null bytes." msgstr "" +"Diese Funktion löst :exc:`SyntaxError` aus, wenn der kompilierte Quellcode ungültig ist, " +"und :exc:`ValueError`, wenn der Quellcode Null-Bytes enthält." msgid "" "If you want to parse Python code into its AST representation, see :func:`ast." "parse`." msgstr "" +"Wenn du Python-Code in seine AST-Darstellung parsen möchtest, siehe :func:`ast.parse`." msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source`` and ``filename``. This event may also be raised by implicit " "compilation." msgstr "" +"Löst ein :ref:`Audit-Ereignis ` namens ``compile`` mit den Argumenten " +"``source`` und ``filename`` aus. Dieses Ereignis kann auch durch implizite " +"Kompilierung ausgelöst werden." msgid "" "When compiling a string with multi-line code in ``'single'`` or ``'eval'`` " @@ -624,32 +788,47 @@ msgid "" "to facilitate detection of incomplete and complete statements in the :mod:" "`code` module." msgstr "" +"Beim Kompilieren einer Zeichenkette mit mehrzeiligem Code im Modus ``'single'`` " +"oder ``'eval'`` muss die Eingabe mit mindestens einem Zeilenumbruchzeichen " +"enden. Dies dient dazu, die Erkennung unvollständiger und vollständiger " +"Anweisungen im Modul :mod:`code` zu ​​erleichtern." msgid "" "It is possible to crash the Python interpreter with a sufficiently large/" "complex string when compiling to an AST object due to stack depth " "limitations in Python's AST compiler." msgstr "" +"Es ist möglich, den Python-Interpreter beim Kompilieren in ein AST-Objekt " +"mit einem hinreichend großen oder komplexen String zum Absturz zu " +"bringen – bedingt durch die Beschränkungen der Stack-Tiefe im AST-Compiler von Python." msgid "" "Allowed use of Windows and Mac newlines. Also, input in ``'exec'`` mode " "does not have to end in a newline anymore. Added the *optimize* parameter." msgstr "" +"Unterstützung für Zeilenumbrüche unter Windows und Mac hinzugefügt. Zudem muss die Eingabe " +"im Modus ``'exec'`` nicht mehr mit einem Zeilenumbruch enden. Der Parameter *optimize* wurde hinzugefügt." msgid "" "Previously, :exc:`TypeError` was raised when null bytes were encountered in " "*source*." msgstr "" +"Früher wurde ein :exc:`TypeError` ausgelöst, wenn in *source* Null-Bytes auftraten." msgid "" "``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable " "support for top-level ``await``, ``async for``, and ``async with``." msgstr "" +"``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` kann nun in den Flags übergeben werden, " +"um die Unterstützung für ``await``, ``async for`` und ``async with`` auf " +"oberster Ebene zu aktivieren." msgid "" "Convert a single string or number to a complex number, or create a complex " "number from real and imaginary parts." msgstr "" +"Wandeln Sie eine einzelne Zeichenkette oder Zahl in eine komplexe Zahl um oder " +"erstellen Sie eine komplexe Zahl aus Real- und Imaginärteil." msgid "Examples:" msgstr "Beispiele:" @@ -672,6 +851,22 @@ msgid "" ">>> complex(-1.23, 4.5)\n" "(-1.23+4.5j)" msgstr "" +">>> complex('+1.23')\n" +"(1.23+0j)\n" +">>> complex('-4.5j')\n" +"-4.5j\n" +">>> complex('-1.23+4.5j')\n" +"(-1.23+4.5j)\n" +">>> complex('\\t( -1.23+4.5J )\\n')\n" +"(-1.23+4.5j)\n" +">>> complex('-Infinity+NaNj')\n" +"(-inf+nanj)\n" +">>> complex(1.23)\n" +"(1.23+0j)\n" +">>> complex(imag=-4.5)\n" +"-4.5j\n" +">>> complex(-1.23, 4.5)\n" +"(-1.23+4.5j)" msgid "" "If the argument is a string, it must contain either a real part (in the same " @@ -686,6 +881,19 @@ msgid "" "token:`~float:complexvalue` production rule in the following grammar, after " "parentheses and leading and trailing whitespace characters are removed:" msgstr "" +"Wenn das Argument ein String ist, muss es entweder einen Realteil (im " +"gleichen Format wie für :func:`float`) oder einen Imaginärteil (im gleichen " +"Format, jedoch mit dem Suffix ``'j'`` oder ``'J'``) oder sowohl einen Real- " +"als auch einen Imaginärteil enthalten (wobei das Vorzeichen des " +"Imaginärteils in diesem Fall zwingend erforderlich ist). Der String kann " +"optional von Leerzeichen sowie den runden Klammern ``'('`` und ``')'`` " +"umschlossen sein; diese werden ignoriert. Der String darf keine Leerzeichen " +"zwischen ``'+'``, ``'-'``, dem Suffix ``'j'`` oder ``'J'`` und der " +"Dezimalzahl enthalten. So ist beispielsweise ``complex('1+2j')`` zulässig, " +"während ``complex('1 + 2j')`` einen :exc:`ValueError` auslöst. Genauer " +"gesagt muss die Eingabe – nach Entfernung von Klammern sowie führenden und " +"nachgestellten Leerzeichen – der Produktionsregel :token:`~float:complexvalue` " +"in der folgenden Grammatik entsprechen:" msgid "" "If the argument is a number, the constructor serves as a numeric conversion " @@ -695,6 +903,11 @@ msgid "" "If :meth:`!__float__` is not defined then it falls back to :meth:`~object." "__index__`." msgstr "" +"Wenn das Argument eine Zahl ist, fungiert der Konstruktor als numerische Umwandlung, " +"ähnlich wie :class:`int` und :class:`float`. Bei einem allgemeinen Python-Objekt ``x`` " +"delegiert ``complex(x)`` an ``x.__complex__()``. Ist :meth:`~object.__complex__` nicht " +"definiert, wird auf :meth:`~object.__float__` zurückgegriffen. " +"Ist :meth:`!__float__` nicht definiert, wird auf :meth:`~object.__index__` zurückgegriffen.“ msgid "" "If two arguments are provided or keyword arguments are used, each argument " @@ -705,30 +918,43 @@ msgid "" "imaginary component ``real.imag+imag.real``. If one of arguments is a real " "number, only its real component is used in the above expressions." msgstr "" +"Wenn zwei Argumente übergeben oder Schlüsselwortargumente verwendet werden, " +"kann jedes Argument von einem beliebigen numerischen Typ (einschließlich komplexer Zahlen) sein. " +"Sind beide Argumente reelle Zahlen, wird eine komplexe Zahl mit dem Realteil *real* " +"und dem Imaginärteil *imag* zurückgegeben. Sind beide Argumente komplexe Zahlen, " +"wird eine komplexe Zahl mit dem Realteil ``real.real-imag.imag`` und dem " +"Imaginärteil ``real.imag+imag.real`` zurückgegeben. Ist eines der Argumente " +"eine reelle Zahl, wird in den obigen Ausdrücken nur deren Realteil verwendet." msgid "" "See also :meth:`complex.from_number` which only accepts a single numeric " "argument." msgstr "" +"Siehe auch :meth:`complex.from_number`, das nur ein einzelnes numerisches " +"Argument akzeptiert." msgid "If all arguments are omitted, returns ``0j``." -msgstr "" +msgstr "Wenn keine Argumente angegeben werden, wird ``0j`` zurückgegeben." msgid "The complex type is described in :ref:`typesnumeric`." -msgstr "" +msgstr "Der komplexe Typ wird unter :ref:`typesnumeric` beschrieben." msgid "Grouping digits with underscores as in code literals is allowed." -msgstr "" +msgstr "Die Gruppierung von Ziffern mittels Unterstrichen, wie bei Code-Literalen, ist zulässig." msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` and :" "meth:`~object.__float__` are not defined." msgstr "" +"Fällt auf :meth:`~object.__index__` zurück, wenn :meth:`~object.__complex__` " +"und :meth:`~object.__float__` nicht definiert sind." msgid "" "Passing a complex number as the *real* or *imag* argument is now deprecated; " "it should only be passed as a single positional argument." msgstr "" +"Die Übergabe einer komplexen Zahl als *real*- oder *imag*-Argument ist veraltet;" +"sie sollte nur noch als einzelnes Positionsargument übergeben werden.“ msgid "" "This is a relative of :func:`setattr`. The arguments are an object and a " @@ -737,22 +963,34 @@ msgid "" "example, ``delattr(x, 'foobar')`` is equivalent to ``del x.foobar``. *name* " "need not be a Python identifier (see :func:`setattr`)." msgstr "" +"Dies ist ein Gegenstück zu :func:`setattr`. Die Argumente sind ein Objekt " +"und eine Zeichenkette. Die Zeichenkette muss der Name eines der Attribute " +"des Objekts sein. Die Funktion löscht das benannte Attribut, sofern das Objekt " +"dies zulässt. So entspricht beispielsweise ``delattr(x, 'foobar')`` der Anweisung " +"``del x.foobar``. *name* muss kein Python-Bezeichner sein (siehe :func:`setattr`)." msgid "" "Create a new dictionary. The :class:`dict` object is the dictionary class. " "See :class:`dict` and :ref:`typesmapping` for documentation about this class." msgstr "" +"Erstellen Sie ein neues Dictionary. Das :class:`dict`-Objekt ist die Dictionary-Klasse." +"Informationen zu dieser Klasse finden Sie unter :class:`dict` und :ref:`typesmapping`." msgid "" "For other containers see the built-in :class:`list`, :class:`set`, and :" "class:`tuple` classes, as well as the :mod:`collections` module." msgstr "" +"Für weitere Container siehe die eingebauten Klassen :class:`list`, :class:`set` und " +":"class:`tuple` sowie das Modul :mod:`collections`." msgid "" "Without arguments, return the list of names in the current local scope. " "With an argument, attempt to return a list of valid attributes for that " "object." msgstr "" +"Ohne Argumente wird die Liste der Namen im aktuellen lokalen Gültigkeitsbereich zurückgegeben. " +"Mit einem Argument wird versucht, eine Liste der gültigen Attribute für dieses " +"Objekt zurückzugeben." msgid "" "If the object has a method named :meth:`~object.__dir__`, this method will " @@ -761,6 +999,11 @@ msgid "" "__getattribute__` function to customize the way :func:`dir` reports their " "attributes." msgstr "" +"Wenn das Objekt eine Methode namens :meth:`~object.__dir__` besitzt, wird " +"diese Methode aufgerufen und muss die Liste der Attribute zurückgeben. Dies ermöglicht " +"es Objekten, die eine benutzerdefinierte Funktion :func:`~object.__getattr__` " +"oder :func:`~object.__getattribute__` implementieren, die Art und Weise anzupassen, " +"wie :func:`dir` ihre Attribute auflistet.“ msgid "" "If the object does not provide :meth:`~object.__dir__`, the function tries " @@ -769,31 +1012,48 @@ msgid "" "necessarily complete and may be inaccurate when the object has a custom :" "func:`~object.__getattr__`." msgstr "" +"Wenn das Objekt kein :meth:`~object.__dir__` bereitstellt, versucht die Funktion, " +"so viele Informationen wie möglich aus dem :attr:`~object.__dict__`-Attribut " +"des Objekts (sofern definiert) sowie aus dessen Typobjekt zu gewinnen. Die " +"resultierende Liste ist nicht zwangsläufig vollständig und kann ungenau sein, " +"wenn das Objekt über eine benutzerdefinierte :func:`~object.__getattr__`-Methode " +"verfügt." msgid "" "The default :func:`dir` mechanism behaves differently with different types " "of objects, as it attempts to produce the most relevant, rather than " "complete, information:" msgstr "" +"Der Standardmechanismus von :func:`dir` verhält sich bei verschiedenen Objekttypen " +"unterschiedlich, da er versucht, die relevantesten – und nicht etwa die " +"vollständigen – Informationen zu liefern:" msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." msgstr "" +"Wenn es sich bei dem Objekt um ein Modulobjekt handelt, enthält die " +"Liste die Namen der Attribute des Moduls." msgid "" "If the object is a type or class object, the list contains the names of its " "attributes, and recursively of the attributes of its bases." msgstr "" +"Wenn es sich bei dem Objekt um ein Typ- oder Klassenobjekt handelt, enthält " +"die Liste die Namen seiner Attribute sowie – rekursiv – die Namen der Attribute " +"seiner Basisklassen." msgid "" "Otherwise, the list contains the object's attributes' names, the names of " "its class's attributes, and recursively of the attributes of its class's " "base classes." msgstr "" +"Andernfalls enthält die Liste die Namen der Attribute des Objekts, die Namen " +"der Attribute seiner Klasse sowie – rekursiv – die Namen der Attribute der Basisklassen " +"seiner Klasse." msgid "The resulting list is sorted alphabetically. For example:" -msgstr "" +msgstr "Die resultierende Liste ist alphabetisch sortiert. Zum Beispiel:" msgid "" "Because :func:`dir` is supplied primarily as a convenience for use at an " @@ -802,6 +1062,12 @@ msgid "" "its detailed behavior may change across releases. For example, metaclass " "attributes are not in the result list when the argument is a class." msgstr "" +"Da :func:`dir` in erster Linie als Hilfsmittel für die Verwendung an einer " +"interaktiven Eingabeaufforderung gedacht ist, zielt die Funktion eher darauf ab, " +"eine interessante Menge von Namen zu liefern, als eine streng oder konsistent " +"definierte Menge; zudem kann sich ihr detailliertes Verhalten zwischen " +"verschiedenen Releases ändern. So sind beispielsweise Metaklassen-Attribute " +"nicht in der Ergebnisliste enthalten, wenn das Argument eine Klasse ist." msgid "" "Take two (non-complex) numbers as arguments and return a pair of numbers " @@ -813,6 +1079,14 @@ msgid "" "is very close to *a*, if ``a % b`` is non-zero it has the same sign as *b*, " "and ``0 <= abs(a % b) < abs(b)``." msgstr "" +"Nimmt zwei (nicht komplexe) Zahlen als Argumente entgegen und gibt ein Zahlenpaar zurück, " +"das aus dem Quotienten und dem Rest der Ganzzahldivision besteht. " +"Bei gemischten Operandentypen gelten die Regeln für binäre arithmetische Operatoren. " +"Bei Ganzzahlen entspricht das Ergebnis ``(a // b, a % b)``. Bei Gleitkomma-" +"zahlen lautet das Ergebnis ``(q, a % b)``, wobei *q* normalerweise ``math." +"floor(a / b)`` entspricht, aber auch um 1 kleiner sein kann. In jedem Fall liegt ``q * b + a % b`` " +"sehr nahe bei *a*; ist ``a % b`` ungleich null, so hat es dasselbe Vorzeichen wie *b*, " +"und es gilt ``0 <= abs(a % b) < abs(b)``." msgid "" "Return an enumerate object. *iterable* must be a sequence, an :term:" @@ -821,9 +1095,15 @@ msgid "" "returns a tuple containing a count (from *start* which defaults to 0) and " "the values obtained from iterating over *iterable*." msgstr "" +"Gibt ein enumerate-Objekt zurück. *iterable* muss eine Sequenz, ein :term:" +"`Iterator` oder ein anderes Objekt sein, das Iteration unterstützt. Die :meth:" +"`~iterator.__next__`-Methode des von :func:`enumerate` zurückgegebenen " +"Iterators liefert ein Tupel, das einen Zähler (beginnend bei *start*, " +"standardmäßig 0) und die durch Iteration über *iterable* erhaltenen " +"Werte enthält." msgid "Equivalent to::" -msgstr "" +msgstr "Gleichbedeutend mit::" msgid "" "def enumerate(iterable, start=0):\n" @@ -832,35 +1112,42 @@ msgid "" " yield n, elem\n" " n += 1" msgstr "" +"def enumerate(iterable, start=0):\n" +" n = start\n" +" for elem in iterable:\n" +" yield n, elem\n" +" n += 1" msgid "Parameters" -msgstr "" +msgstr "Parameter" msgid "A Python expression." -msgstr "" +msgstr "Ein Python Ausdruck" msgid "The global namespace (default: ``None``)." -msgstr "" +msgstr "Der globale Namensraum (default: ``None``)." msgid "The local namespace (default: ``None``)." -msgstr "" +msgstr "Der lokale Namensraum (default: ``None``)." msgid "Returns" -msgstr "" +msgstr "Rückgaben" msgid "The result of the evaluated expression." -msgstr "" +msgstr "Das Ergebnis des ausgewerteten Ausdrucks." msgid "raises" -msgstr "" +msgstr "Meldung" msgid "Syntax errors are reported as exceptions." -msgstr "" +msgstr "Syntaxfehler werden als Ausnahmen gemeldet." msgid "" "This function executes arbitrary code. Calling it with user-supplied input " "may lead to security vulnerabilities." msgstr "" +"Diese Funktion führt beliebigen Code aus. Der Aufruf mit vom Benutzer " +"bereitgestellter Eingabe kann zu Sicherheitslücken führen." msgid "" "The *expression* argument is parsed and evaluated as a Python expression " @@ -879,9 +1166,26 @@ msgid "" "referenced in the scope that is calling :func:`eval` (e.g. via a :keyword:" "`nonlocal` statement)." msgstr "" +"Das Argument *expression* wird als Python-Ausdruck (technisch gesehen als " +"Bedingungsliste) unter Verwendung der Mappings *globals* und *locals* als " +"globaler bzw. lokaler Namensraum geparst und ausgewertet. Wenn das Dictionary " +"*globals* vorhanden ist und keinen Wert für den Schlüssel ``__builtins__`` " +"enthält, wird eine Referenz auf das Dictionary des eingebauten Moduls " +":mod:`builtins` unter diesem Schlüssel eingefügt, bevor *expression* geparst " +"wird. Auf diese Weise können Sie steuern, welche eingebauten Funktionen und " +"Objekte (Built-ins) dem ausgeführten Code zur Verfügung stehen, indem Sie Ihr " +"eigenes ``__builtins__``-Dictionary in *globals* einfügen, bevor Sie es an " +":func:`eval` übergeben. Wird das Mapping *locals* weggelassen, wird standardmäßig " +"das Dictionary *globals* verwendet. Werden beide Mappings weggelassen, wird " +"der Ausdruck mit den *globals* und *locals* der Umgebung ausgeführt, in der " +":func:`eval` aufgerufen wird. Beachten Sie, dass *eval()* nur dann Zugriff auf " +"die :term:`verschachtelten Gültigkeitsbereiche ` (Non-Locals) " +"der umschließenden Umgebung hat, wenn diese bereits in dem Gültigkeitsbereich " +"referenziert werden, der :func:`eval` aufruft (z. B. durch eine " +":keyword:`nonlocal`-Anweisung)." msgid "Example:" -msgstr "" +msgstr "Beispiel:" msgid "" "This function can also be used to execute arbitrary code objects (such as " @@ -889,6 +1193,11 @@ msgid "" "of a string. If the code object has been compiled with ``'exec'`` as the " "*mode* argument, :func:`eval`\\'s return value will be ``None``." msgstr "" +"Diese Funktion kann auch verwendet werden, um beliebige Code-Objekte " +"(wie etwa solche, die mit :func:`compile` erstellt wurden) auszuführen. " +"Übergeben Sie in diesem Fall ein Code-Objekt anstelle einer Zeichenkette. " +"Wenn das Code-Objekt mit ``'exec'`` als *mode*-Argument kompiliert wurde, " +"ist der Rückgabewert von :func:`eval` ``None``." msgid "" "Hints: dynamic execution of statements is supported by the :func:`exec` " @@ -896,29 +1205,41 @@ msgid "" "current global and local dictionary, respectively, which may be useful to " "pass around for use by :func:`eval` or :func:`exec`." msgstr "" +"Hinweise: Die dynamische Ausführung von Anweisungen wird durch die Funktion " +":func:`exec` unterstützt. Die Funktionen :func:`globals` und :func:`locals` " +"liefern das aktuelle globale beziehungsweise lokale Dictionary zurück; dies " +"kann nützlich sein, um sie an :func:`eval` oder :func:`exec` weiterzugeben." msgid "" "If the given source is a string, then leading and trailing spaces and tabs " "are stripped." msgstr "" +"Wenn die angegebene Quelle eine Zeichenkette ist, werden führende und nachstehende " +"Leerzeichen sowie Tabulatoren entfernt." msgid "" "See :func:`ast.literal_eval` for a function that can safely evaluate strings " "with expressions containing only literals." msgstr "" +"Siehe :func:`ast.literal_eval` für eine Funktion, die Zeichenketten mit Ausdrücken, " +"die ausschließlich Literale enthalten, sicher auswerten kann." msgid "" "Raises an :ref:`auditing event ` ``exec`` with the code object as " "the argument. Code compilation events may also be raised." msgstr "" +"Löst ein :ref:`Audit-Ereignis ` ``exec`` mit dem Code-Objekt als " +"Argument aus. Es können auch Ereignisse zur Code-Kompilierung ausgelöst werden." msgid "The *globals* and *locals* arguments can now be passed as keywords." -msgstr "" +msgstr "Die Argumente *globals* und *locals* können nun als Schlüsselwortargumente übergeben werden." msgid "" "The semantics of the default *locals* namespace have been adjusted as " "described for the :func:`locals` builtin." msgstr "" +"Die Semantik des Standard-Namensraums für lokale Variablen (*locals*) " +"wurde wie für die eingebaute Funktion :func:`locals` beschrieben angepasst." msgid "" "This function supports dynamic execution of Python code. *source* must be " @@ -931,6 +1252,17 @@ msgid "" "not be used outside of function definitions even within the context of code " "passed to the :func:`exec` function. The return value is ``None``." msgstr "" +"Diese Funktion unterstützt die dynamische Ausführung von Python-Code. *source* muss " +"entweder eine Zeichenkette oder ein Code-Objekt sein. Handelt es sich um eine " +"Zeichenkette, so wird diese als eine Folge von Python-Anweisungen geparst " +"und anschließend ausgeführt (sofern kein Syntaxfehler auftritt). [#]_ " +"Handelt es sich um ein Code-Objekt, so wird dieses einfach ausgeführt. In " +"jedem Fall muss der ausgeführte Code als Dateieingabe gültig sein (siehe " +"den Abschnitt :ref:`file-input` im Referenzhandbuch). Beachten Sie, dass die " +"Anweisungen :keyword:`nonlocal`, :keyword:`yield` und :keyword:`return` " +"auch innerhalb des an die Funktion :func:`exec` übergebenen Codes nicht " +"außerhalb von Funktionsdefinitionen verwendet werden dürfen. Der " +"Rückgabewert ist ``None``." msgid "" "In all cases, if the optional parts are omitted, the code is executed in the " @@ -941,6 +1273,14 @@ msgid "" "any mapping object. Remember that at the module level, globals and locals " "are the same dictionary." msgstr "" +"In allen Fällen wird der Code im aktuellen Gültigkeitsbereich ausgeführt, " +"wenn die optionalen Argumente weggelassen werden. Wird nur *globals* angegeben, " +"muss es sich um ein Dictionary handeln (und nicht um eine Unterklasse davon), " +"das sowohl für die globalen als auch für die lokalen Variablen verwendet wird. " +"Werden sowohl *globals* als auch *locals* angegeben, so dienen sie jeweils als " +"globale beziehungsweise lokale Variablen. Falls angegeben, kann *locals* ein " +"beliebiges Mapping-Objekt sein. Beachten Sie, dass auf Modulebene globale und " +"lokale Variablen dasselbe Dictionary darstellen." msgid "" "When ``exec`` gets two separate objects as *globals* and *locals*, the code " @@ -949,6 +1289,12 @@ msgid "" "access variables assigned at the top level (as the \"top level\" variables " "are treated as class variables in a class definition)." msgstr "" +"Wenn „exec“ zwei separate Objekte als *globals* und *locals* erhält, wird " +"der Code so ausgeführt, als wäre er in eine Klassendefinition eingebettet. " +"Das bedeutet, dass im ausgeführten Code definierte Funktionen und Klassen " +"nicht auf Variablen zugreifen können, die auf der obersten Ebene zugewiesen " +"wurden (da diese Variablen der „obersten Ebene“ in einer Klassendefinition " +"als Klassenvariablen behandelt werden)." msgid "" "If the *globals* dictionary does not contain a value for the key " @@ -957,6 +1303,12 @@ msgid "" "builtins are available to the executed code by inserting your own " "``__builtins__`` dictionary into *globals* before passing it to :func:`exec`." msgstr "" +"Wenn das *globals*-Dictionary keinen Wert für den Schlüssel ``__builtins__`` enthält, " +"wird unter diesem Schlüssel eine Referenz auf das Dictionary des eingebauten " +"Moduls :mod:`builtins` eingefügt. Auf diese Weise können Sie steuern, welche " +"eingebauten Funktionen und Objekte dem ausgeführten Code zur Verfügung stehen, " +"indem Sie Ihr eigenes ``__builtins__``-Dictionary in *globals* einfügen, " +"bevor Sie es an :func:`exec` übergeben." msgid "" "The *closure* argument specifies a closure--a tuple of cellvars. It's only " @@ -964,21 +1316,31 @@ msgid "" "variables `. The length of the tuple must exactly match " "the length of the code object's :attr:`~codeobject.co_freevars` attribute." msgstr "" +"Das Argument *closure* spezifiziert einen Closure – ein Tupel von Cell-Variablen. " +"Es ist nur dann gültig, wenn das *Objekt* ein Code-Objekt ist, das :term:`freie " +"(Closure-)Variablen ` enthält. Die Länge des Tupels muss exakt " +"der Länge des Attributs :attr:`~codeobject.co_freevars` des Code-Objekts entsprechen." msgid "" "The built-in functions :func:`globals` and :func:`locals` return the current " "global and local namespace, respectively, which may be useful to pass around " "for use as the second and third argument to :func:`exec`." msgstr "" +"Die eingebauten Funktionen :func:`globals` und :func:`locals` geben den aktuellen " +"globalen beziehungsweise lokalen Namensraum zurück; dies kann nützlich sein, " +"um sie als zweites und drittes Argument an :func:`exec` zu übergeben." msgid "" "The default *locals* act as described for function :func:`locals` below. " "Pass an explicit *locals* dictionary if you need to see effects of the code " "on *locals* after function :func:`exec` returns." msgstr "" +"Die Standard *locals* wirken wie für die Funktion :func:`locals` weiter unten beschrieben. " +"Übergeben Sie ein explizites *locals*-Dictionary, wenn Sie die Auswirkungen des Codes " +"auf die *locals* sehen möchten, nachdem die Funktion :func:`exec` zurückgekehrt ist." msgid "Added the *closure* parameter." -msgstr "" +msgstr "Der Parameter *closure* wurde hinzugefügt." msgid "" "Construct an iterator from those elements of *iterable* for which *function* " @@ -986,6 +1348,11 @@ msgid "" "iteration, or an iterator. If *function* is ``None``, the identity function " "is assumed, that is, all elements of *iterable* that are false are removed." msgstr "" +"Erstellt einen Iterator aus denjenigen Elementen von *iterable*, für die *function* " +"wahr ergibt. *iterable* kann entweder eine Sequenz, ein Container, der " +"Iteration unterstützt, oder ein Iterator sein. Ist *function* ``None``, " +"so wird die Identitätsfunktion angenommen; das heißt, alle Elemente von " +"*iterable*, die „falsch“ sind, werden entfernt." msgid "" "Note that ``filter(function, iterable)`` is equivalent to the generator " @@ -993,14 +1360,20 @@ msgid "" "not ``None`` and ``(item for item in iterable if item)`` if function is " "``None``." msgstr "" +"Beachte, dass ``filter(function, iterable)`` dem Generatorausdruck " +"``(item for item in iterable if function(item))`` entspricht, wenn " +"``function`` nicht ``None`` ist, und ``(item for item in iterable if item)``, " +"wenn ``function`` ``None`` ist." msgid "" "See :func:`itertools.filterfalse` for the complementary function that " "returns elements of *iterable* for which *function* is false." msgstr "" +"Siehe :func:`itertools.filterfalse` für die komplementäre Funktion, " +"die Elemente von *iterable* zurückgibt, für die *function* falsch ist." msgid "Return a floating-point number constructed from a number or a string." -msgstr "" +msgstr "Geben Sie eine Gleitkommazahl zurück, die aus einer Zahl oder einer Zeichenkette erstellt wurde." msgid "" ">>> float('+1.23')\n" @@ -1014,6 +1387,16 @@ msgid "" ">>> float('-Infinity')\n" "-inf" msgstr "" +">>> float('+1.23')\n" +"1.23\n" +">>> float(' -12345\\n')\n" +"-12345.0\n" +">>> float('1e-003')\n" +"0.001\n" +">>> float('+1E6')\n" +"1000000.0\n" +">>> float('-Infinity')\n" +"-inf" msgid "" "If the argument is a string, it should contain a decimal number, optionally " @@ -1024,11 +1407,22 @@ msgid "" "conform to the :token:`~float:floatvalue` production rule in the following " "grammar, after leading and trailing whitespace characters are removed:" msgstr "" +"Wenn das Argument eine Zeichenkette ist, muss sie eine Dezimalzahl enthalten, " +"der optional ein Vorzeichen vorangestellt ist und die optional von Leerzeichen " +"umgeben sein kann. Das optionale Vorzeichen kann ``'+'`` oder ``'-'`` sein; ein " +"``'+'``-Zeichen hat keinen Einfluss auf den resultierenden Wert. Das Argument " +"kann auch eine Zeichenkette sein, die NaN (Not-a-Number) oder positive bzw. " +"negative Unendlichkeit darstellt. Genauer gesagt muss die Eingabe – nach " +"Entfernung führender und nachfolgender Leerzeichen – der Produktionsregel " +":token:`~float:floatvalue` in der folgenden Grammatik entsprechen:“ msgid "" "Case is not significant, so, for example, \"inf\", \"Inf\", \"INFINITY\", " "and \"iNfINity\" are all acceptable spellings for positive infinity." msgstr "" +"Die Groß-/Kleinschreibung spielt keine Rolle; so sind beispielsweise \"inf\“, " +"\"Inf\“, \"INFINITY\“ und \"iNfINity\“ allesamt zulässige Schreibweisen für " +"positive Unendlichkeit." msgid "" "Otherwise, if the argument is an integer or a floating-point number, a " @@ -1036,27 +1430,36 @@ msgid "" "precision) is returned. If the argument is outside the range of a Python " "float, an :exc:`OverflowError` will be raised." msgstr "" +"Handelt es sich bei dem Argument andernfalls um eine Ganzzahl oder eine Gleitkommazahl, " +"so wird eine Gleitkommazahl mit demselben Wert (innerhalb der Gleitkommapräzision von Python) " +"zurückgegeben. Liegt das Argument außerhalb des Wertebereichs eines Python-Floats, " +"wird ein :exc:`OverflowError` ausgelöst." msgid "" "For a general Python object ``x``, ``float(x)`` delegates to ``x." "__float__()``. If :meth:`~object.__float__` is not defined then it falls " "back to :meth:`~object.__index__`." msgstr "" +"Für ein allgemeines Python-Objekt ``x`` delegiert ``float(x)`` an " +"``x.__float__()``. Wenn :meth:`~object.__float__` nicht definiert ist, fällt es „ +"zurück zu :meth:`~object.__index__`.“ msgid "" "See also :meth:`float.from_number` which only accepts a numeric argument." -msgstr "" +msgstr "Siehe auch :meth:`float.from_number`, das nur ein numerisches Argument akzeptiert." msgid "If no argument is given, ``0.0`` is returned." -msgstr "" +msgstr "Wenn kein Argument angegeben wird, wird ``0.0`` zurückgegeben." msgid "The float type is described in :ref:`typesnumeric`." -msgstr "" +msgstr "Der Typ „float“ wird in :ref:`typesnumeric` beschrieben." msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__float__` is not " "defined." msgstr "" +"Fällt auf :meth:`~object.__index__` zurück, wenn :meth:`~object.__float__` " +"nicht definiert ist." msgid "" "Convert a *value* to a \"formatted\" representation, as controlled by " @@ -1064,11 +1467,17 @@ msgid "" "of the *value* argument; however, there is a standard formatting syntax that " "is used by most built-in types: :ref:`formatspec`." msgstr "" +"Wandelt einen *Wert* in eine \"formatierte\“ Darstellung um, wie durch *format_spec* " +"festgelegt. Die Interpretation von *format_spec* hängt vom Typ des Arguments *Wert* ab; " +"es gibt jedoch eine Standard-Formatierungssyntax, die von den meisten eingebauten " +"Typen verwendet wird: :ref:`formatspec`." msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." msgstr "" +"Die Standard *format_spec* ist eine leere Zeichenkette, was normalerweise " +"denselben Effekt hat wie der Aufruf von :func:`str(value) `." msgid "" "A call to ``format(value, format_spec)`` is translated to ``type(value)." @@ -1078,22 +1487,35 @@ msgid "" "and the *format_spec* is non-empty, or if either the *format_spec* or the " "return value are not strings." msgstr "" +"Ein Aufruf von ``format(value, format_spec)`` wird in ``type(value)." +"__format__(value, format_spec)`` übersetzt, wodurch das Instanz-Dictionary bei " +"der Suche nach der :meth:`~object.__format__`-Methode des Werts umgangen wird. Eine :exc:" +"`TypeError`-Ausnahme wird ausgelöst, wenn die Methodensuche :mod:`object` " +"erreicht und *format_spec* nicht leer ist, oder wenn entweder *format_spec* " +"oder der Rückgabewert keine Zeichenkette ist." msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." msgstr "" +"``object().__format__(format_spec)`` löst :exc:`TypeError` aus, wenn " +"*format_spec* keine leere Zeichenkette ist." msgid "" "Return a new :class:`frozenset` object, optionally with elements taken from " "*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and :" "ref:`types-set` for documentation about this class." msgstr "" +"Gibt ein neues :class:`frozenset`-Objekt zurück, optional mit Elementen aus " +"*iterable*. ``frozenset`` ist eine integrierte Klasse. Siehe :class:`frozenset` und :" +"ref:`types-set` für die Dokumentation zu dieser Klasse." msgid "" "For other containers see the built-in :class:`set`, :class:`list`, :class:" "`tuple`, and :class:`dict` classes, as well as the :mod:`collections` module." msgstr "" +"Für weitere Container siehe die eingebauten Klassen :class:`set`, :class:`list`, :class:" +"`tuple` und :class:`dict` sowie das Modul :mod:`collections`." msgid "" "Return the value of the named attribute of *object*. *name* must be a " @@ -1103,6 +1525,12 @@ msgid "" "exist, *default* is returned if provided, otherwise :exc:`AttributeError` is " "raised. *name* need not be a Python identifier (see :func:`setattr`)." msgstr "" +"Gibt den Wert des benannten Attributs von *object* zurück. *name* muss ein " +"String sein. Wenn der String der Name eines der Attribute des Objekts ist, " +"ist das Ergebnis der Wert dieses Attributs. Zum Beispiel entspricht ``getattr(x, " +"'foobar')`` dem Ausdruck ``x.foobar``. Existiert das benannte Attribut nicht, " +"wird *default* zurückgegeben, sofern angegeben; andernfalls wird ein " +":exc:`AttributeError` ausgelöst. *name* muss kein Python-Bezeichner sein (siehe :func:`setattr`)." msgid "" "Since :ref:`private name mangling ` happens at " @@ -1110,12 +1538,18 @@ msgid "" "with two leading underscores) name in order to retrieve it with :func:" "`getattr`." msgstr "" +"Da :ref:`Private Name Mangling ` zur Kompilierzeit erfolgt, " +"muss der Name eines privaten Attributs (Attribute mit zwei führenden Unterstrichen) " +"manuell umgewandelt werden, um es mittels :func:`getattr` abrufen zu können." msgid "" "Return the dictionary implementing the current module namespace. For code " "within functions, this is set when the function is defined and remains the " "same regardless of where the function is called." msgstr "" +"Geben Sie das Dictionary zurück, das den Namespace des aktuellen Moduls implementiert. Bei Code " +"innerhalb von Funktionen wird dieses bei der Definition der Funktion festgelegt und " +"bleibt unverändert, unabhängig davon, von wo aus die Funktion aufgerufen wird." msgid "" "The arguments are an object and a string. The result is ``True`` if the " @@ -1123,6 +1557,10 @@ msgid "" "(This is implemented by calling ``getattr(object, name)`` and seeing whether " "it raises an :exc:`AttributeError` or not.)" msgstr "" +"Die Argumente sind ein Objekt und ein String. Das Ergebnis ist ``True``, " +"wenn der String der Name eines Attributs des Objekts ist, andernfalls ``False``. " +"(Dies wird implementiert, indem ``getattr(object, name)`` aufgerufen und geprüft " +"wird, ob ein :exc:`AttributeError` ausgelöst wird oder nicht.)" msgid "" "Return the hash value of the object (if it has one). Hash values are " @@ -1130,6 +1568,11 @@ msgid "" "dictionary lookup. Numeric values that compare equal have the same hash " "value (even if they are of different types, as is the case for 1 and 1.0)." msgstr "" +"Gibt den Hash-Wert des Objekts zurück (sofern es einen besitzt). Hash-Werte sind " +"Ganzzahlen. Sie dienen dazu, Dictionary-Schlüssel bei einer Suche im " +"Dictionary schnell zu vergleichen. Numerische Werte, die als gleich gelten, " +"haben denselben Hash-Wert (selbst wenn sie unterschiedlichen Typs sind, " +"wie es bei 1 und 1.0 der Fall ist)." msgid "" "For objects with custom :meth:`~object.__hash__` methods, note that :func:" @@ -1144,6 +1587,13 @@ msgid "" "documentation topic, and a help page is printed on the console. If the " "argument is any other kind of object, a help page on the object is generated." msgstr "" +"Ruft das integrierte Hilfesystem auf. (Diese Funktion ist für die interaktive " +"Nutzung vorgesehen.) Wenn kein Argument angegeben wird, startet das interaktive " +"Hilfesystem auf der Interpreterkonsole. Wenn das Argument eine Zeichenkette ist, " +"wird diese als Name eines Moduls, einer Funktion, einer Klasse, einer Methode, " +"eines Schlüsselworts oder eines Dokumentationsthemas nachgeschlagen und eine " +"Hilfeseite auf der Konsole ausgegeben. Wenn das Argument ein anderes Objekt ist, " +"wird eine Hilfeseite zu diesem Objekt generiert." msgid "" "Note that if a slash(/) appears in the parameter list of a function when " @@ -1151,37 +1601,55 @@ msgid "" "positional-only. For more info, see :ref:`the FAQ entry on positional-only " "parameters `." msgstr "" +"Beachten Sie: Wenn beim Aufruf von :func:`help` ein Schrägstrich (/) in der " +"Parameterliste einer Funktion erscheint, bedeutet dies, dass die Parameter " +"vor dem Schrägstrich reine Positionsparameter sind. Weitere Informationen " +"finden Sie unter :ref:`dem FAQ-Eintrag zu reinen Positionsparametern `." msgid "" "This function is added to the built-in namespace by the :mod:`site` module." msgstr "" +"Diese Funktion wird vom Modul :mod:`site` dem eingebauten Namensraum hinzugefügt." msgid "" "Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " "for callables are now more comprehensive and consistent." msgstr "" +"Änderungen an :mod:`pydoc` und :mod:`inspect` führen dazu, dass die für aufrufbare " +"Objekte (Callables) gemeldeten Signaturen nun umfassender und konsistenter sind." msgid "" "Convert an integer number to a lowercase hexadecimal string prefixed with " "\"0x\". If *integer* is not a Python :class:`int` object, it has to define " "an :meth:`~object.__index__` method that returns an integer. Some examples:" msgstr "" +"Wandelt eine Ganzzahl in eine hexadezimale Zeichenkette in Kleinbuchstaben mit " +"dem Präfix „0x“ um. Wenn *integer* kein Python-Objekt vom Typ :class:`int` ist, " +"muss es eine :meth:`~object.__index__`-Methode definieren, die eine Ganzzahl " +"zurückgibt. Einige Beispiele:" msgid "" "If you want to convert an integer number to an uppercase or lower " "hexadecimal string with prefix or not, you can use either of the following " "ways:" msgstr "" +"Wenn Sie eine Ganzzahl in eine hexadezimale Zeichenkette in Groß- oder Kleinbuchstaben " +"umwandeln möchten – wahlweise mit oder ohne Präfix –, können Sie eine der folgenden " +"Methoden verwenden:" msgid "" "See also :func:`int` for converting a hexadecimal string to an integer using " "a base of 16." msgstr "" +"Siehe auch :func:`int` für die Umwandlung einer Hexadezimalzeichenkette in eine " +"Ganzzahl unter Verwendung der Basis 16." msgid "" "To obtain a hexadecimal string representation for a float, use the :meth:" "`float.hex` method." msgstr "" +"Um eine hexadezimale String-Darstellung für einen Float-Wert zu erhalten, " +"verwenden Sie die Methode :meth:`float.hex`." msgid "" "Return the \"identity\" of an object. This is an integer which is " @@ -1189,14 +1657,20 @@ msgid "" "Two objects with non-overlapping lifetimes may have the same :func:`id` " "value." msgstr "" +"Gibt die \"Identität\“ eines Objekts zurück. Dies ist eine Ganzzahl, die " +"garantiert eindeutig ist und während der Lebensdauer des Objekts konstant bleibt. " +"Zwei Objekte, deren Lebensdauern sich nicht überschneiden, können denselben :func:`id`-Wert " +"haben." msgid "This is the address of the object in memory." -msgstr "" +msgstr "Dies ist die Adresse des Objekts im Speicher." msgid "" "Raises an :ref:`auditing event ` ``builtins.id`` with argument " "``id``." msgstr "" +"Löst ein :ref:`Audit-Ereignis ` ``builtins.id`` mit dem Argument " +"``id`` aus." msgid "" "If the *prompt* argument is present, it is written to standard output " @@ -1204,6 +1678,12 @@ msgid "" "converts it to a string (stripping a trailing newline), and returns that. " "When EOF is read, :exc:`EOFError` is raised. Example::" msgstr "" +"Wenn das Argument *prompt* angegeben ist, wird es ohne abschließendes " +"Zeilenumbruchzeichen auf die Standardausgabe geschrieben. Die Funktion " +"liest dann eine Zeile von der Eingabe, wandelt sie in eine Zeichenkette um " +"(wobei ein abschließendes Zeilenumbruchzeichen entfernt wird) und gibt " +"diese zurück. Beim Erreichen des Dateiendes (EOF) wird :exc:`EOFError` " +"ausgelöst. Beispiel::“ msgid "" ">>> s = input('--> ')\n" @@ -1211,26 +1691,38 @@ msgid "" ">>> s\n" "\"Monty Python's Flying Circus\"" msgstr "" +">>> s = input('--> ')\n" +"--> Monty Python's Flying Circus\n" +">>> s\n" +"\"Monty Python's Flying Circus\"" msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." msgstr "" +"Wenn das Modul :mod:`readline` geladen wurde, verwendet :func:`input` es, " +"um umfangreiche Funktionen zur Zeilenbearbeitung und Historienverwaltung bereitzustellen." msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt`` before reading input" msgstr "" +"Löst ein :ref:`Audit-Ereignis ` ``builtins.input`` mit dem Argument " +"``prompt`` aus, bevor die Eingabe gelesen wird" msgid "" "Raises an :ref:`auditing event ` ``builtins.input/result`` with " "the result after successfully reading input." msgstr "" +"Löst ein :ref:`Audit-Ereignis ` ``builtins.input/result`` mit dem " +"Ergebnis nach erfolgreichem Einlesen der Eingabe aus." msgid "" "Return an integer object constructed from a number or a string, or return " "``0`` if no arguments are given." msgstr "" +"Gibt ein Integer-Objekt zurück, das aus einer Zahl oder einer Zeichenkette " +"erstellt wurde, oder gibt ``0`` zurück, wenn keine Argumente angegeben sind." msgid "" ">>> int(123.45)\n" @@ -1246,12 +1738,27 @@ msgid "" ">>> int('01110011', base=2)\n" "115" msgstr "" +">>> int(123.45)\n" +"123\n" +">>> int('123')\n" +"123\n" +">>> int(' -12_345\\n')\n" +"-12345\n" +">>> int('FACE', 16)\n" +"64206\n" +">>> int('0xface', 0)\n" +"64206\n" +">>> int('01110011', base=2)\n" +"115" msgid "" "If the argument defines :meth:`~object.__int__`, ``int(x)`` returns ``x." "__int__()``. If the argument defines :meth:`~object.__index__`, it returns " "``x.__index__()``. For floating-point numbers, this truncates towards zero." msgstr "" +"Wenn das Argument :meth:`~object.__int__` definiert, gibt ``int(x)`` ``x.__int__()`` zurück. " +"Wenn das Argument :meth:`~object.__index__` definiert, gibt es ``x.__index__()`` zurück. " +"Bei Gleitkommazahlen erfolgt dabei eine Rundung in Richtung Null." msgid "" "If the argument is not a number or if *base* is given, then it must be a " @@ -1260,6 +1767,12 @@ msgid "" "``-`` (with no space in between), have leading zeros, be surrounded by " "whitespace, and have single underscores interspersed between digits." msgstr "" +"Wenn das Argument keine Zahl ist oder wenn *base* angegeben wird, muss es sich " +"um eine :class:`str`, :class:`bytes` oder :class:`bytearray` Instanz handeln, " +"die eine Ganzzahl zur Basis *base* darstellt. Optional kann der Zeichenkette ein " +"``+`` oder ``-`` vorangestellt sein (ohne Leerzeichen dazwischen); zudem kann sie " +"führende Nullen aufweisen, von Leerzeichen umgeben sein und einzelne Unterstriche " +"zwischen den Ziffern enthalten." msgid "" "A base-n integer string contains digits, each representing a value from 0 to " @@ -1273,9 +1786,20 @@ msgid "" "prefix. Base 0 also disallows leading zeros: ``int('010', 0)`` is not legal, " "while ``int('010')`` and ``int('010', 8)`` are." msgstr "" +"Eine Zeichenkette, die eine Ganzzahl zur Basis *n* darstellt, besteht aus Ziffern, " +"von denen jede einen Wert von 0 bis n-1 repräsentiert. Die Werte 0 bis 9 können " +"durch jede beliebige Unicode-Dezimalziffer dargestellt werden. Die Werte 10 bis 35 " +"lassen sich durch ``a`` bis ``z`` (oder ``A`` bis ``Z``) ausdrücken. Die Standardbasis " +"ist 10. Zulässige Basen sind 0 sowie der Bereich von 2 bis 36. Zeichenketten für " +"die Basen 2, 8 und 16 können optional mit einem Präfix wie ``0b``/``0B``, ``0o``/``0O`` " +"oder ``0x``/``0X`` versehen werden, ähnlich wie bei Ganzzahl-Literalen im Quellcode. " +"Bei der Basis 0 wird die Zeichenkette ähnlich wie ein :ref:`Ganzzahl-Literal im Quellcode " +"` interpretiert, wobei die tatsächliche Basis 2, 8, 10 oder 16 durch das Präfix " +"bestimmt wird. Zudem sind bei der Basis 0 keine führenden Nullen zulässig: ``int('010', 0)`` " +"ist ungültig, während ``int('010')`` und ``int('010', 8)`` zulässig sind." msgid "The integer type is described in :ref:`typesnumeric`." -msgstr "" +msgstr "Der Ganzzahltyp wird in :ref:`typesnumeric` beschrieben." msgid "" "If *base* is not an instance of :class:`int` and the *base* object has a :" @@ -1283,14 +1807,20 @@ msgid "" "obtain an integer for the base. Previous versions used :meth:`base.__int__ " "` instead of :meth:`base.__index__ `." msgstr "" +"Wenn *base* keine Instanz von :class:`int` ist und das *base*-Objekt über eine " +":meth:`base.__index__ `-Methode verfügt, wird diese Methode " +"aufgerufen, um eine Ganzzahl für die Basis zu erhalten. In früheren Versionen " +"wurde :meth:`base.__int__ ` anstelle von :meth:`base.__index__ " +"` verwendet." msgid "The first parameter is now positional-only." -msgstr "" +msgstr "Der erste Parameter ist nun rein positional." msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__int__` is not " "defined." msgstr "" +"Greift auf :meth:`~object.__index__` zurück, wenn :meth:`~object.__int__` nicht definiert ist." msgid "" ":class:`int` string inputs and string representations can be limited to help " @@ -1300,10 +1830,16 @@ msgid "" "ref:`integer string conversion length limitation ` " "documentation." msgstr "" +"Die Länge von Zeichenketten bei der Umwandlung in oder aus einem :class:`int` " +"kann begrenzt werden, um Denial-of-Service-Angriffe zu verhindern. Es wird ein " +":exc:`ValueError` ausgelöst, wenn das Limit bei der Umwandlung einer Zeichenkette " +"in ein :class:`int` überschritten wird oder wenn die Umwandlung eines :class:`int` " +"in eine Zeichenkette das Limit überschreiten würde. Siehe die Dokumentation zur " +":ref:`Längenbegrenzung bei der Umwandlung von Ganzzahlen in Zeichenketten `." msgid "" ":func:`int` no longer delegates to the :meth:`~object.__trunc__` method." -msgstr "" +msgstr ":func:`int` delegiert nicht mehr an die Methode :meth:`~object.__trunc__`." msgid "" "Return ``True`` if the *object* argument is an instance of the *classinfo* " @@ -1316,9 +1852,19 @@ msgid "" "exc:`TypeError` exception is raised. :exc:`TypeError` may not be raised for " "an invalid type if an earlier check succeeds." msgstr "" +"Gibt ``True`` zurück, wenn das Argument *object* eine Instanz des Arguments *classinfo* " +"oder einer (direkten, indirekten oder :term:`virtuellen `) Unterklasse davon ist. Wenn *object* kein Objekt des angegebenen Typs ist, " +"gibt die Funktion stets ``False`` zurück. Wenn *classinfo* ein Tupel von Typ-" +"Objekten (oder rekursiv weiteren solchen Tupeln) oder eine :ref:`types-union` aus " +"mehreren Typen ist, wird ``True`` zurückgegeben, falls *object* eine Instanz eines " +"dieser Typen ist. Wenn *classinfo* weder ein Typ noch ein Tupel von Typen (und " +"solchen Tupeln) ist, wird eine :exc:`TypeError`-Ausnahme ausgelöst. Eine :exc:`TypeError`-" +"Ausnahme wird für einen ungültigen Typ möglicherweise nicht ausgelöst, wenn eine " +"frühere Überprüfung erfolgreich ist." msgid "*classinfo* can be a :ref:`types-union`." -msgstr "" +msgstr "*classinfo* kann eine :ref:`types-union` sein." msgid "" "Return ``True`` if *class* is a subclass (direct, indirect, or :term:" @@ -1328,6 +1874,13 @@ msgid "" "return ``True`` if *class* is a subclass of any entry in *classinfo*. In " "any other case, a :exc:`TypeError` exception is raised." msgstr "" +"Gibt ``True`` zurück, wenn *class* eine Unterklasse (direkt, indirekt oder :term:" +"`virtuell `) von *classinfo* ist. Eine Klasse gilt als " +"Unterklasse ihrer selbst. *classinfo* kann ein Tupel von Klassenobjekten (oder " +"rekursiv weitere solcher Tupel) oder eine :ref:`types-union` sein; in diesem " +"Fall wird ``True`` zurückgegeben, wenn *class* eine Unterklasse irgendeines " +"Eintrags in *classinfo* ist. In allen anderen Fällen wird eine :exc:`TypeError`-Ausnahme " +"ausgelöst." msgid "" "Return an :term:`iterator` object. The first argument is interpreted very " @@ -1343,15 +1896,30 @@ msgid "" "the value returned is equal to *sentinel*, :exc:`StopIteration` will be " "raised, otherwise the value will be returned." msgstr "" +"Gibt ein :term:`Iterator`-Objekt zurück. Das erste Argument wird je nach " +"Vorhandensein des zweiten Arguments sehr unterschiedlich interpretiert. " +"Ohne ein zweites Argument muss das einzige Argument ein Container-Objekt sein, " +"das das :term:`iterable`-Protokoll (die Methode :meth:`~object.__iter__`) " +"oder das Sequenzprotokoll (die Methode :meth:`~object.__getitem__` mit " +"ganzzahligen Argumenten beginnend bei ``0``) unterstützt. Wird keines dieser " +"Protokolle unterstützt, so wird ein :exc:`TypeError` ausgelöst. Wenn das zweite " +"Argument, *sentinel*, angegeben ist, muss das erste Argument ein aufrufbares " +"Objekt (*callable*) sein. Der in diesem Fall erzeugte Iterator ruft bei jedem " +"Aufruf seiner Methode :meth:`~iterator.__next__` das aufrufbare Objekt ohne " +"Argumente auf; entspricht der Rückgabewert *sentinel*, so wird :exc:`StopIteration` " +"ausgelöst, andernfalls wird der Wert zurückgegeben." msgid "See also :ref:`typeiter`." -msgstr "" +msgstr "Siehe auch :ref:`typeiter`." msgid "" "One useful application of the second form of :func:`iter` is to build a " "block-reader. For example, reading fixed-width blocks from a binary database " "file until the end of file is reached::" msgstr "" +"Eine nützliche Anwendung der zweiten Form von :func:`iter` ist die Erstellung " +"eines Block-Readers. Zum Beispiel das Lesen von Blöcken fester Größe aus einer " +"binären Datenbankdatei bis zum Erreichen des Dateiende::" msgid "" "from functools import partial\n" @@ -1359,44 +1927,63 @@ msgid "" " for block in iter(partial(f.read, 64), b''):\n" " process_block(block)" msgstr "" +"from functools import partial\n" +"with open('mydata.db', 'rb') as f:\n" +" for block in iter(partial(f.read, 64), b''):\n" +" process_block(block)" msgid "" "Return the length (the number of items) of an object. The argument may be a " "sequence (such as a string, bytes, tuple, list, or range) or a collection " "(such as a dictionary, set, or frozen set)." msgstr "" +"Gibt die Länge (die Anzahl der Elemente) eines Objekts zurück. Das Argument kann eine " +"Sequenz (wie etwa ein String, Bytes, ein Tupel, eine Liste oder ein Range-Objekt) oder eine Collection " +"(wie etwa ein Dictionary, ein Set oder ein Frozen Set) sein." msgid "" -"``len`` raises :exc:`OverflowError` on lengths larger than :data:`sys." -"maxsize`, such as :class:`range(2 ** 100) `." +"``len`` raises :exc:`OverflowError` on lengths larger than :data:`sys.maxsize`, " +"such as :class:`range(2 ** 100) `." msgstr "" +"``len`` löst bei Längen größer als :data:`sys.maxsize` eine :exc:`OverflowError`-Ausnahme aus." +"Z. B. :class:`range(2 ** 100) `." msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." msgstr "" +"Anstatt eine Funktion zu sein, ist :class:`list` eigentlich ein veränderbarer Sequenztyp, " +"wie in :ref:`typesseq-list` und :ref:`typesseq` dokumentiert." msgid "" "Return a mapping object representing the current local symbol table, with " "variable names as the keys, and their currently bound references as the " "values." msgstr "" +"Gibt ein Mapping-Objekt zurück, das die aktuelle lokale Symboltabelle repräsentiert, " +"wobei die Variablennamen als Schlüssel und die aktuell daran gebundenen Referenzen als Werte dienen." msgid "" "At module scope, as well as when using :func:`exec` or :func:`eval` with a " "single namespace, this function returns the same namespace as :func:" "`globals`." msgstr "" +"Auf Modulebene sowie bei der Verwendung von :func:`exec` oder :func:`eval` mit " +"einem einzigen Namensraum gibt diese Funktion denselben Namensraum zurück wie :func:`globals`." msgid "" "At class scope, it returns the namespace that will be passed to the " "metaclass constructor." msgstr "" +"Auf Klassenebene gibt es den Namensraum zurück, der an den Metaklassen-Konstruktor übergeben wird." msgid "" "When using ``exec()`` or ``eval()`` with separate local and global " "arguments, it returns the local namespace passed in to the function call." msgstr "" +"Bei der Verwendung von ``exec()`` oder ``eval()`` mit separaten lokalen und " +"globalen Argumenten wird der lokale Namensraum zurückgegeben, der an den " +"Funktionsaufruf übergeben wurde." msgid "" "In all of the above cases, each call to ``locals()`` in a given frame of " @@ -1406,6 +1993,13 @@ msgid "" "deleting local variables will immediately affect the contents of the " "returned mapping object." msgstr "" +"In allen oben genannten Fällen gibt jeder Aufruf von ``locals()`` in " +"einem bestimmten Ausführungs-Frame *dasselbe* Mapping-Objekt zurück. " +"Änderungen, die über das von ``locals()`` zurückgegebene Mapping-Objekt " +"vorgenommen werden, zeigen sich als zugewiesene, neu zugewiesene oder " +"gelöschte lokale Variablen; umgekehrt wirken sich Zuweisungen, Neuzuweisungen " +"oder das Löschen lokaler Variablen unmittelbar auf den Inhalt des zurückgegebenen " +"Mapping-Objekts aus." msgid "" "In an :term:`optimized scope` (including functions, generators, and " @@ -1417,6 +2011,15 @@ msgid "" "variables and nonlocal cell references does *not* affect the contents of " "previously returned dictionaries." msgstr "" +"In einem :term:`optimierten Gültigkeitsbereich` (einschließlich Funktionen, " +"Generatoren und Coroutinen) liefert jeder Aufruf von ``locals()`` stattdessen " +"ein neues Dictionary zurück, das die aktuellen Bindungen der lokalen Variablen " +"der Funktion sowie etwaige nonlocal-Zellreferenzen enthält. In diesem Fall " +"werden Änderungen an Namensbindungen, die über das zurückgegebene Dictionary " +"vorgenommen werden, *nicht* in die entsprechenden lokalen Variablen oder " +"nonlocal-Zellreferenzen zurückgeschrieben; zudem hat das Zuweisen, Neuzuweisen " +"oder Löschen lokaler Variablen und nonlocal-Zellreferenzen *keine* Auswirkungen " +"auf den Inhalt zuvor zurückgegebener Dictionaries." msgid "" "Calling ``locals()`` as part of a comprehension in a function, generator, or " @@ -1425,16 +2028,26 @@ msgid "" "other scopes, it behaves as if the comprehension were running as a nested " "function." msgstr "" +"Der Aufruf von ``locals()`` als Teil einer Listen-Abstraktion (comprehension) " +"in einer Funktion, einem Generator oder einer Coroutine entspricht dem Aufruf im " +"umschließenden Gültigkeitsbereich, mit der Ausnahme, dass die initialisierten " +"Iterationsvariablen der Listen-Abstraktion (comprehension) einbezogen werden. " +"In anderen Gültigkeitsbereichen verhält es sich so, als würde die " +"Listen-Abstraktion (comprehension) als verschachtelte Funktion ausgeführt." msgid "" "Calling ``locals()`` as part of a generator expression is equivalent to " "calling it in a nested generator function." msgstr "" +"Der Aufruf von ``locals()`` als Teil eines Generatorausdrucks ist gleichbedeutend mit " +"dem Aufruf innerhalb einer verschachtelten Generatorfunktion." msgid "" "The behaviour of ``locals()`` in a comprehension has been updated as " "described in :pep:`709`." msgstr "" +"Das Verhalten von ``locals()`` in einer Listen-Abstraktion (comprehension) " +"wurde wie in :pep:`709` beschrieben aktualisiert." msgid "" "As part of :pep:`667`, the semantics of mutating the mapping objects " @@ -1443,6 +2056,11 @@ msgid "" "being defined, the behaviour in other scopes remains unchanged from previous " "versions." msgstr "" +"Im Rahmen von :pep:`667` ist nun die Semantik für die Veränderung der von dieser " +"Funktion zurückgegebenen Mapping-Objekte definiert. Das Verhalten in :term:`" +"optimierten Gültigkeitsbereichen ` entspricht nun der obigen " +"Beschreibung. Abgesehen von dieser Definition bleibt das Verhalten in anderen " +"Gültigkeitsbereichen gegenüber früheren Versionen unverändert." msgid "" "Return an iterator that applies *function* to every item of *iterable*, " @@ -1454,20 +2072,33 @@ msgid "" "cases where the function inputs are already arranged into argument tuples, " "see :func:`itertools.starmap`." msgstr "" +"Gibt einen Iterator zurück, der *function* auf jedes Element von *iterable* anwendet " +"und die Ergebnisse liefert. Werden weitere *iterable*-Argumente übergeben, " +"muss *function* entsprechend viele Argumente entgegennehmen und wird parallel " +"auf die Elemente aller Iterables angewendet. Bei mehreren Iterables endet " +"der Iterator, sobald das kürzeste Iterable erschöpft ist. Ist *strict* auf ``True`` " +"gesetzt und eines der Iterables vor den anderen erschöpft, wird ein :exc:`ValueError` " +"ausgelöst. Für Fälle, in denen die Eingabewerte für die Funktion bereits als " +"Argument-Tupel vorliegen, siehe :func:`itertools.starmap`.“ msgid "Added the *strict* parameter." -msgstr "" +msgstr "Den Parameter *strict* hinzugefügt." msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." msgstr "" +"Gibt das größte Element eines iterierbaren Objekts oder das größte " +"von zwei oder mehr Argumenten zurück." msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The largest item in the iterable is returned. If two or more positional " "arguments are provided, the largest of the positional arguments is returned." msgstr "" +"Wird ein einzelnes Positionsargument übergeben, so muss es sich um ein :term:`iterable` handeln. " +"Das größte Element des Iterables wird zurückgegeben. Werden zwei oder mehr Positionsargumente " +"übergeben, so wird das größte der Positionsargumente zurückgegeben." msgid "" "There are two optional keyword-only arguments. The *key* argument specifies " @@ -1476,6 +2107,12 @@ msgid "" "empty. If the iterable is empty and *default* is not provided, a :exc:" "`ValueError` is raised." msgstr "" +"Es gibt zwei optionale Argumente, die nur als Schlüsselwortargumente übergeben " +"werden können. Das Argument *key* legt eine Sortierfunktion mit einem Argument " +"fest, wie sie auch bei :meth:`list.sort` verwendet wird. Das Argument *default* " +"gibt ein Objekt an, das zurückgegeben wird, falls das übergebene Iterable leer ist. " +"Ist das Iterable leer und wird kein *default*-Wert angegeben, so wird ein :exc:`ValueError` " +"ausgelöst." msgid "" "If multiple items are maximal, the function returns the first one " @@ -1483,28 +2120,39 @@ msgid "" "such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and ``heapq." "nlargest(1, iterable, key=keyfunc)``." msgstr "" +"Wenn mehrere Elemente maximal sind, gibt die Funktion das erste zurück, " +"auf das sie stößt. Dies steht im Einklang mit anderen Werkzeugen, die die " +"Sortierstabilität bewahren, wie etwa ``sorted(iterable, key=keyfunc, " +"reverse=True)[0]`` und ``heapq.nlargest(1, iterable, key=keyfunc)``.“ msgid "Added the *default* keyword-only parameter." -msgstr "" +msgstr "Der *default*-Parameter (nur als Keyword-Argument verwendbar) wurde hinzugefügt." msgid "The *key* can be ``None``." -msgstr "" +msgstr "Der *Schlüssel* kann ``None`` sein." msgid "" "Return a \"memory view\" object created from the given argument. See :ref:" "`typememoryview` for more information." msgstr "" +"Gibt ein aus dem angegebenen Argument erstelltes \"memory-View\“-Objekt zurück. " +"Siehe :ref:`typememoryview` für weitere Informationen. msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." msgstr "" +"Geben Sie das kleinste Element eines iterierbaren Objekts oder das kleinste " +"von zwei oder mehr Argumenten zurück." msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The smallest item in the iterable is returned. If two or more positional " "arguments are provided, the smallest of the positional arguments is returned." msgstr "" +"Wird ein einzelnes Positionsargument übergeben, so muss es sich um ein :term:`Iterable` handeln. " +"Das kleinste Element des Iterables wird zurückgegeben. Werden zwei oder mehr Positionsargumente " +"übergeben, so wird das kleinste der Positionsargumente zurückgegeben." msgid "" "If multiple items are minimal, the function returns the first one " @@ -1512,12 +2160,20 @@ msgid "" "such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1, " "iterable, key=keyfunc)``." msgstr "" +"Wenn mehrere Elemente das Minimum darstellen, gibt die Funktion das erste " +"zurück, auf das sie stößt. Dies steht im Einklang mit anderen Werkzeugen, " +"die die Sortierstabilität wahren, wie etwa ``sorted(iterable, key=keyfunc)[0]`` " +"und ``heapq.nsmallest(1, iterable, key=keyfunc)``.“ msgid "" "Retrieve the next item from the :term:`iterator` by calling its :meth:" "`~iterator.__next__` method. If *default* is given, it is returned if the " "iterator is exhausted, otherwise :exc:`StopIteration` is raised." msgstr "" +"Rufe das nächste Element aus dem :term:`Iterator` ab, indem dessen " +":meth:`~iterator.__next__`-Methode aufgerufen wird. Wenn *default* angegeben ist, " +"wird dieser Wert zurückgegeben, falls der Iterator erschöpft ist; " +"andernfalls wird :exc:`StopIteration` ausgelöst." msgid "" "This is the ultimate base class of all other classes. It has methods that " @@ -1525,11 +2181,17 @@ msgid "" "called, it returns a new featureless object. The constructor does not accept " "any arguments." msgstr "" +"Dies ist die oberste Basisklasse aller anderen Klassen. Sie verfügt über Methoden, " +"die allen Instanzen von Python-Klassen gemeinsam sind. Beim Aufruf des Konstruktors " +"wird ein neues, eigenschaftsloses Objekt zurückgegeben. Der Konstruktor akzeptiert " +"keine Argumente." msgid "" ":class:`object` instances do *not* have :attr:`~object.__dict__` attributes, " "so you can't assign arbitrary attributes to an instance of :class:`object`." msgstr "" +"Instanzen von :class:`object` besitzen *keine* :attr:`~object.__dict__`-Attribute; " +"daher können Sie einer Instanz von :class:`object` keine beliebigen Attribute zuweisen." msgid "" "Convert an integer number to an octal string prefixed with \"0o\". The " @@ -1537,6 +2199,10 @@ msgid "" "`int` object, it has to define an :meth:`~object.__index__` method that " "returns an integer. For example:" msgstr "" +"Wandelt eine Ganzzahl in einen Oktal-String mit dem Präfix \"0o\“ um. Das " +"Ergebnis ist ein gültiger Python-Ausdruck. Wenn *integer* kein Python " +":class:`int` Objekt ist, muss es eine :meth:`~object.__index__`-Methode " +"definieren, die eine Ganzzahl zurückgibt. Zum Beispiel:" msgid "" "If you want to convert an integer number to an octal string either with the " @@ -1548,6 +2214,9 @@ msgid "" "cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more " "examples of how to use this function." msgstr "" +"Öffnet *file* und gibt ein entsprechendes :term:`Dateiobjekt` zurück. Wenn die Datei " +"nicht geöffnet werden kann, wird ein :exc:`OSError` ausgelöst. Weitere " +"Beispiele für die Verwendung dieser Funktion finden Sie unter :ref:`tut-files`." msgid "" "*file* is a :term:`path-like object` giving the pathname (absolute or " @@ -1556,6 +2225,12 @@ msgid "" "given, it is closed when the returned I/O object is closed unless *closefd* " "is set to ``False``.)" msgstr "" +"*file* ist ein :term:`pfadartiges Objekt` (path-like object), das den Pfadnamen " +"(absolut oder relativ zum aktuellen Arbeitsverzeichnis) der zu öffnenden Datei " +"angibt, oder ein ganzzahliger Dateideskriptor der zu umschließenden Datei. " +"(Wird ein Dateideskriptor angegeben, so wird dieser geschlossen, wenn das " +"zurückgegebene E/A-Objekt geschlossen wird, es sei denn, *closefd* ist auf " +"``False`` gesetzt.)" msgid "" "*mode* is an optional string that specifies the mode in which the file is " @@ -1569,60 +2244,74 @@ msgid "" "reading and writing raw bytes use binary mode and leave *encoding* " "unspecified.) The available modes are:" msgstr "" +"*mode* ist eine optionale Zeichenkette, die den Modus angibt, in dem die Datei " +"geöffnet wird. Der Standardwert ist ``'r'``, was das Öffnen zum Lesen im " +"Textmodus bedeutet. Weitere gebräuchliche Werte sind ``'w'`` zum Schreiben " +"(wobei die Datei geleert wird, falls sie bereits existiert), ``'x'`` für " +"die exklusive Erstellung und ``'a'`` zum Anhängen (was auf *einigen* Unix-Systemen " +"bedeutet, dass *alle* Schreibvorgänge Daten an das Ende der Datei anhängen, " +"unabhängig von der aktuellen Schreib-/Leseposition). Wenn im Textmodus kein " +"*encoding* angegeben wird, hängt die verwendete Zeichenkodierung vom Betriebssystem " +"ab: :func:`locale.getencoding` wird aufgerufen, um die Kodierung der aktuellen " +"Locale zu ermitteln. (Verwenden Sie für das Lesen und Schreiben von Rohbytes " +"den Binärmodus und lassen Sie *encoding* weg.) Die verfügbaren Modi sind:" msgid "Character" -msgstr "" +msgstr "Zeichen" msgid "Meaning" -msgstr "" +msgstr " 1, um die Größe eines Puffers fester Größe in Bytes anzugeben. Beachten Sie, dass " +"die Angabe einer Puffergröße auf diese Weise für gepufferte Binär-E/A gilt, während " +"``TextIOWrapper`` (d. h. mit ``mode='r+'`` geöffnete Dateien) eine andere " +"Pufferung verwendet. Um die Pufferung in ``TextIOWrapper`` zu deaktivieren, " +"können Sie das Flag ``write_through`` für :func:`io.TextIOWrapper.reconfigure` verwenden. " +"Wenn kein *buffering*-Argument angegeben wird, funktioniert die Standard-Pufferungsstrategie wie folgt:" msgid "" "Binary files are buffered in fixed-size chunks; the size of the buffer is " @@ -1658,12 +2366,19 @@ msgid "" "size is available. On most systems, the buffer will typically be 128 " "kilobytes long." msgstr "" +"Binärdateien werden in Blöcken fester Größe gepuffert; die Puffergröße beträgt " +"``max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE)``, sofern die Blockgröße " +"des Geräts verfügbar ist. Auf den meisten Systemen ist der Puffer typischerweise " +"128 Kilobyte groß." msgid "" "\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " "returns ``True``) use line buffering. Other text files use the policy " "described above for binary files." msgstr "" +"\"Interaktive\“ Textdateien (Dateien, für die :meth:`~io.IOBase.isatty` " +"``True`` zurückgibt) verwenden Zeilenpufferung. Andere Textdateien verwenden " +"das für Binärdateien beschriebene Verfahren." msgid "" "*encoding* is the name of the encoding used to decode or encode the file. " @@ -1672,6 +2387,11 @@ msgid "" "encoding` supported by Python can be used. See the :mod:`codecs` module for " "the list of supported encodings." msgstr "" +"*encoding* ist der Name der Zeichenkodierung, die zum Dekodieren oder Kodieren der Datei verwendet wird. " +"Dies sollte nur im Textmodus verwendet werden. Die Standardkodierung ist plattformabhängig " +"(entsprechend dem Rückgabewert von :func:`locale.getencoding`), es kann jedoch jede von Python " +"unterstützte :term:`Textkodierung` verwendet werden. Eine Liste der unterstützten " +"Kodierungen finden Sie im Modul :mod:`codecs`." msgid "" "*errors* is an optional string that specifies how encoding and decoding " @@ -1680,21 +2400,33 @@ msgid "" "though any error handling name that has been registered with :func:`codecs." "register_error` is also valid. The standard names include:" msgstr "" +"*errors* ist eine optionale Zeichenkette, die festlegt, wie mit Fehlern bei " +"der Kodierung und Dekodierung umgegangen werden soll – dies kann nicht im " +"Binärmodus verwendet werden. Es stehen verschiedene Standard-Fehlerbehandlungsroutinen " +"zur Verfügung (aufgeführt unter :ref:`error-handlers`), wobei auch jeder Name für eine " +"Fehlerbehandlungsroutine zulässig ist, der mit :func:`codecs.register_error` " +"registriert wurde. Zu den Standardnamen gehören:“ msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." msgstr "" +"``'strict'``, um eine :exc:`ValueError`-Ausnahme auszulösen, wenn ein " +"Kodierungsfehler auftritt. Der Standardwert ``None`` hat dieselbe Wirkung." msgid "" "``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to " "data loss." msgstr "" +"``'ignore'`` ignoriert Fehler. Beachten Sie, dass das Ignorieren von Kodierungsfehlern " +"zu Datenverlust führen kann.“ msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." msgstr "" +"``'replace'`` bewirkt, dass an Stellen mit fehlerhaften Daten ein Ersetzungszeichen " +"(wie etwa ``'?'``) eingefügt wird.“ msgid "" "``'surrogateescape'`` will represent any incorrect bytes as low surrogate " @@ -1703,28 +2435,42 @@ msgid "" "handler is used when writing data. This is useful for processing files in " "an unknown encoding." msgstr "" +"``'surrogateescape'`` stellt fehlerhafte Bytes als reduzierte Ersatz-Codeeinheiten " +" (low surrogate code) im Bereich von U+DC80 bis U+DCFF dar. Diese Ersatz-Codeeinheiten " +"werden beim Schreiben von Daten – sofern der Fehlerbehandler ``surrogateescape`` verwendet " +"wird – wieder in die ursprünglichen Bytes zurückgewandelt. Dies ist nützlich für " +"die Verarbeitung von Dateien mit unbekannter Zeichenkodierung." msgid "" "``'xmlcharrefreplace'`` is only supported when writing to a file. Characters " "not supported by the encoding are replaced with the appropriate XML " "character reference :samp:`&#{nnn};`." msgstr "" +"``'xmlcharrefreplace'`` wird nur beim Schreiben in eine Datei unterstützt. Zeichen, " +"die von der Zeichenkodierung nicht unterstützt werden, werden durch die entsprechende " +"XML-Zeichenreferenz :samp:`&#{nnn};` ersetzt.“ msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." msgstr "" +"``'backslashreplace'`` ersetzt fehlerhafte Daten durch Pythons Escape-Sequenzen mit Backslash.“ msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." msgstr "" +"``'namereplace'`` (wird ebenfalls nur beim Schreiben unterstützt) ersetzt nicht unterstützte " +"Zeichen durch ``\\N{...}``-Escape-Sequenzen.“ msgid "" "*newline* determines how to parse newline characters from the stream. It can " "be ``None``, ``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as " "follows:" msgstr "" +"*newline* legt fest, wie Zeilenumbruchzeichen aus dem Datenstrom verarbeitet werden. " +"Es kann die Werte ``None``, ``''``, ``'\\n'``, ``'\\r'`` oder ``'\\r\\n'`` annehmen. " +"Die Funktionsweise ist wie folgt:" msgid "" "When reading input from the stream, if *newline* is ``None``, universal " @@ -1735,6 +2481,15 @@ msgid "" "has any of the other legal values, input lines are only terminated by the " "given string, and the line ending is returned to the caller untranslated." msgstr "" +"Beim Lesen von Eingaben aus dem Stream wird der Modus für universelle " +"Zeilenumbrüche aktiviert, wenn *newline* den Wert ``None`` hat. Zeilen " +"in der Eingabe können mit ``'\\n'``, ``'\\r'`` oder ``'\\r\\n'`` enden; " +"diese werden in ``'\\n'`` umgewandelt, bevor sie an den Aufrufer zurückgegeben " +"werden. Hat *newline* den Wert ``''``, ist der Modus für universelle " +"Zeilenumbrüche ebenfalls aktiviert, jedoch werden die Zeilenenden unverändert " +"an den Aufrufer zurückgegeben. Bei allen anderen zulässigen Werten werden " +"Eingabezeilen ausschließlich durch die angegebene Zeichenkette begrenzt, " +"und das Zeilenende wird unverändert an den Aufrufer zurückgegeben." msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " @@ -1743,6 +2498,11 @@ msgid "" "takes place. If *newline* is any of the other legal values, any ``'\\n'`` " "characters written are translated to the given string." msgstr "" +"Beim Schreiben von Ausgaben in den Stream werden – sofern *newline* den Wert ``None`` hat – " +"alle geschriebenen ``'\\n'``-Zeichen in das systemübliche Zeilenumbruchzeichen " +":data:`os.linesep` umgewandelt. Ist *newline* gleich ``''`` oder ``'\\n'``, " +"findet keine Umwandlung statt. Nimmt *newline* einen der anderen zulässigen Werte an, " +"werden alle geschriebenen ``'\\n'``-Zeichen in die angegebene Zeichenkette umgewandelt." msgid "" "If *closefd* is ``False`` and a file descriptor rather than a filename was " @@ -1750,6 +2510,10 @@ msgid "" "closed. If a filename is given *closefd* must be ``True`` (the default); " "otherwise, an error will be raised." msgstr "" +"Wenn *closefd* auf ``False`` gesetzt ist und anstelle eines Dateinamens ein " +"Dateideskriptor übergeben wurde, bleibt der zugrundeliegende Dateideskriptor " +"beim Schließen der Datei geöffnet. Wird ein Dateiname angegeben, muss *closefd* " +"auf ``True`` (dem Standardwert) stehen; andernfalls wird ein Fehler ausgelöst." msgid "" "A custom opener can be used by passing a callable as *opener*. The " @@ -1758,14 +2522,23 @@ msgid "" "descriptor (passing :mod:`os.open` as *opener* results in functionality " "similar to passing ``None``)." msgstr "" +"Ein benutzerdefinierter Opener kann verwendet werden, indem ein aufrufbares " +"Objekt als *opener* übergeben wird. Der zugrundeliegende Dateideskriptor " +"für das Dateiobjekt wird dann durch den Aufruf von *opener* mit (*file*, *flags*) " +"ermittelt. *opener* muss einen offenen Dateideskriptor zurückgeben (die Übergabe " +"von :mod:`os.open` als *opener* führt zu einer Funktionalität, die der " +"Übergabe von ``None`` ähnelt)." msgid "The newly created file is :ref:`non-inheritable `." -msgstr "" +msgstr "Die neu erstellte Datei ist :ref:`nicht vererbbar `." msgid "" "The following example uses the :ref:`dir_fd ` parameter of the :func:" "`os.open` function to open a file relative to a given directory::" msgstr "" +"Das folgende Beispiel verwendet den Parameter :ref:`dir_fd ` der " +"Funktion :func:`os.open`, um eine Datei relativ zu einem bestimmten Verzeichnis " +"zu öffnen::" msgid "" ">>> import os\n" @@ -1778,6 +2551,15 @@ msgid "" "...\n" ">>> os.close(dir_fd) # don't leak a file descriptor" msgstr "" +">>> import os\n" +">>> dir_fd = os.open('somedir', os.O_RDONLY)\n" +">>> def opener(path, flags):\n" +"... return os.open(path, flags, dir_fd=dir_fd)\n" +"...\n" +">>> with open('spamspam.txt', 'w', opener=opener) as f:\n" +"... print('Das wird geschrieben in somedir/spamspam.txt', file=f)\n" +"...\n" +">>> os.close(dir_fd) # don't leak a file descriptor" msgid "" "The type of :term:`file object` returned by the :func:`open` function " @@ -1792,62 +2574,88 @@ msgid "" "disabled, the raw stream, a subclass of :class:`io.RawIOBase`, :class:`io." "FileIO`, is returned." msgstr "" +"Der Typ des von der Funktion :func:`open` zurückgegebenen :term:`Datei-Objekts` " +"hängt vom Modus ab. Wird :func:`open` verwendet, um eine Datei im Textmodus " +"(``'w'``, ``'r'``, ``'wt'``, ``'rt'`` usw.) zu öffnen, wird eine Unterklasse " +"von :class:`io.TextIOBase` (speziell :class:`io.TextIOWrapper`) zurückgegeben. " +"Wird die Funktion verwendet, um eine Datei im Binärmodus mit Pufferung zu " +"öffnen, ist die zurückgegebene Klasse eine Unterklasse von :class:`io." +"BufferedIOBase`. Die genaue Klasse variiert: Im Binär-Lesemodus wird ein " +":class:`io.BufferedReader` zurückgegeben; im Binär-Schreib- und Binär-Anhängemodus " +"ein :class:`io.BufferedWriter` und im Lese-/Schreibmodus ein :class:`io." +"BufferedRandom`. Ist die Pufferung deaktiviert, wird der Rohdatenstrom (Raw Stream) " +"zurückgegeben – eine Unterklasse von :class:`io.RawIOBase`, nämlich :class:`io." +"FileIO`." msgid "" "See also the file handling modules, such as :mod:`fileinput`, :mod:`io` " "(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:" "`tempfile`, and :mod:`shutil`." msgstr "" +"Siehe auch die Module zur Dateiverarbeitung, wie :mod:`fileinput`, :mod:`io` " +"(wo :func:`open` definiert ist), :mod:`os`, :mod:`os.path`, :mod:" +"`tempfile` und :mod:`shutil`." msgid "" "Raises an :ref:`auditing event ` ``open`` with arguments ``path``, " "``mode``, ``flags``." msgstr "" +"Löst ein :ref:`Audit-Ereignis ` ``open`` mit den Argumenten ``path``, " +"``mode`` und ``flags`` aus." msgid "" "The ``mode`` and ``flags`` arguments may have been modified or inferred from " "the original call." msgstr "" +"Die Argumente „mode“ und „flags“ wurden möglicherweise modifiziert oder aus " +"dem ursprünglichen Aufruf abgeleitet." msgid "The *opener* parameter was added." -msgstr "" +msgstr "Der Parameter *opener* wurde hinzugefügt." msgid "The ``'x'`` mode was added." -msgstr "" +msgstr "Der Modus ``'x'`` wurde hinzugefügt." msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." -msgstr "" +msgstr "Früher wurde :exc:`IOError` ausgelöst; mittlerweile ist es ein Alias ​​für :exc:`OSError`." msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." msgstr "" +"Ein :exc:`FileExistsError` wird nun ausgelöst, wenn die im exklusiven " +"Erstellungsmodus (``'x'``) geöffnete Datei bereits existiert." msgid "The file is now non-inheritable." -msgstr "" +msgstr "Die Datei ist nun nicht mehr vererbbar." msgid "" "If the system call is interrupted and the signal handler does not raise an " "exception, the function now retries the system call instead of raising an :" "exc:`InterruptedError` exception (see :pep:`475` for the rationale)." msgstr "" +"Wenn der Systemaufruf unterbrochen wird und der Signal-Handler keine Ausnahme " +"auslöst, wiederholt die Funktion nun den Systemaufruf, anstatt eine " +":exc:`InterruptedError`-Ausnahme auszulösen (siehe :pep:`475` für die Begründung)." msgid "The ``'namereplace'`` error handler was added." -msgstr "" +msgstr "Der Fehlerbehandlungsmechanismus „namereplace“ wurde hinzugefügt." msgid "Support added to accept objects implementing :class:`os.PathLike`." -msgstr "" +msgstr "Unterstützung für Objekte hinzugefügt, die :class:`os.PathLike` implementieren." msgid "" "On Windows, opening a console buffer may return a subclass of :class:`io." "RawIOBase` other than :class:`io.FileIO`." msgstr "" +"Unter Windows kann das Öffnen eines Konsolenpuffers eine Unterklasse von :class:`io." +"RawIOBase` zurückgeben, bei der es sich nicht um :class:`io.FileIO` handelt." msgid "The ``'U'`` mode has been removed." -msgstr "" +msgstr "Der Modus „U“ wurde entfernt." msgid "Return the ordinal value of a character." -msgstr "" +msgstr "Gibt den Ordinalwert eines Zeichens zurück." msgid "" "If the argument is a one-character string, return the Unicode code point of " @@ -1855,12 +2663,19 @@ msgid "" "``ord('€')`` (Euro sign) returns ``8364``. This is the inverse of :func:" "`chr`." msgstr "" +"Wenn das Argument eine Zeichenkette der Länge 1 ist, wird der Unicode-Codepunkt " +"dieses Zeichens zurückgegeben. Beispielsweise liefert ``ord('a')`` die Ganzzahl " +"``97`` und ``ord('€')`` (Euro-Zeichen) liefert ``8364``. Dies ist die " +"Umkehrfunktion zu :func:`chr`." msgid "" "If the argument is a :class:`bytes` or :class:`bytearray` object of length " "1, return its single byte value. For example, ``ord(b'a')`` returns the " "integer ``97``." msgstr "" +"Wenn das Argument ein :class:`bytes`- oder :class:`bytearray`-Objekt der " +"Länge 1 ist, wird dessen einzelner Bytewert zurückgegeben. Beispielsweise " +"gibt ``ord(b'a')`` die Ganzzahl ``97`` zurück.“ msgid "" "Return *base* to the power *exp*; if *mod* is present, return *base* to the " @@ -1868,6 +2683,10 @@ msgid "" "mod``). The two-argument form ``pow(base, exp)`` is equivalent to using the " "power operator: ``base**exp``." msgstr "" +"Gibt *base* hoch *exp* zurück; ist *mod* angegeben, wird *base* hoch *exp* " +"modulo *mod* zurückgegeben (effizienter berechnet als ``pow(base, exp) % mod``). " +"Die Form mit zwei Argumenten ``pow(base, exp)`` entspricht der Verwendung des " +"Potenzoperators: ``base**exp``." msgid "" "When arguments are builtin numeric types with mixed operand types, the " @@ -1882,6 +2701,18 @@ msgid "" "`float` with an integral exponent, a float result is delivered. For example, " "``pow(-9, 2.0)`` returns ``81.0``." msgstr "" +"Wenn es sich bei den Argumenten um numerische Typen mit unterschiedlichen " +"Operandentypen handelt, gelten die Regeln zur Typanpassung für binäre " +"arithmetische Operatoren. Bei Operanden vom Typ :class:`int` hat das Ergebnis " +"denselben Typ wie die Operanden (nach der Typanpassung), es sei denn, das " +"zweite Argument ist negativ; in diesem Fall werden alle Argumente in :class:`float` " +"umgewandelt und das Ergebnis ist vom Typ :class:`float`. So liefert beispielsweise " +"``pow(10, 2)`` den Wert ``100``, während ``pow(10, -2)`` den Wert ``0.01`` ergibt. " +"Bei einer negativen Basis vom Typ :class:`int` oder :class:`float` und einem nicht " +"ganzzahligen Exponenten wird ein komplexes Ergebnis geliefert. Zum Beispiel liefert " +"``pow(-9, 0.5)`` einen Wert nahe ``3j``. Ist die Basis hingegen negativ (vom Typ " +":class:`int` oder :class:`float`) und der Exponent ganzzahlig, so wird ein Ergebnis " +"vom Typ :class:`float` geliefert. So ergibt ``pow(-9, 2.0)`` beispielsweise ``81.0``." msgid "" "For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must " @@ -1890,9 +2721,14 @@ msgid "" "``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to " "*base* modulo *mod*." msgstr "" +"Wenn *base* und *exp* vom Typ :class:`int` sind und *mod* angegeben ist, " +"muss auch *mod* vom Typ Integer sein und darf nicht null sein. Wenn *mod* " +"angegeben ist und *exp* negativ ist, müssen *base* und *mod* teilerfremd " +"sein. In diesem Fall wird ``pow(inv_base, -exp, mod)`` zurückgegeben, " +"wobei *inv_base* das Inverse von *base* modulo *mod* ist." msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" -msgstr "" +msgstr "Hier ist ein Beispiel für die Berechnung des Inversen von ``38`` modulo ``97``::" msgid "" ">>> pow(38, -1, mod=97)\n" @@ -1900,21 +2736,30 @@ msgid "" ">>> 23 * 38 % 97 == 1\n" "True" msgstr "" +">>> pow(38, -1, mod=97)\n" +"23\n" +">>> 23 * 38 % 97 == 1\n" +"True" msgid "" "For :class:`int` operands, the three-argument form of ``pow`` now allows the " "second argument to be negative, permitting computation of modular inverses." msgstr "" +"Bei :class:`int`-Operanden erlaubt die Form von ``pow`` mit drei Argumenten " +"nun ein negatives zweites Argument, was die Berechnung modularer Inverser ermöglicht." msgid "" "Allow keyword arguments. Formerly, only positional arguments were supported." -msgstr "" +msgstr "Erlaube Schlüsselwortargumente. Zuvor wurden nur Positionsargumente unterstützt." msgid "" "Print *objects* to the text stream *file*, separated by *sep* and followed " "by *end*. *sep*, *end*, *file*, and *flush*, if present, must be given as " "keyword arguments." msgstr "" +"Gibt die *objects* in den Textdatenstrom *file* aus, getrennt durch *sep* und gefolgt " +"von *end*. *sep*, *end*, *file* und *flush* müssen, sofern angegeben, als " +"Schlüsselwortargumente übergeben werden." msgid "" "All non-keyword arguments are converted to strings like :func:`str` does and " @@ -1923,6 +2768,12 @@ msgid "" "default values. If no *objects* are given, :func:`print` will just write " "*end*." msgstr "" +"Alle Argumente, die keine Schlüsselwortargumente sind, werden wie bei :func:`str` " +"in Zeichenketten umgewandelt und in den Stream geschrieben, wobei sie durch *sep* " +"getrennt und von *end* gefolgt werden. Sowohl *sep* als auch *end* müssen " +"Zeichenketten sein; sie können auch ``None`` sein, was bedeutet, dass die " +"Standardwerte verwendet werden. Werden keine *objects* angegeben, schreibt " +":func:`print` lediglich *end*." msgid "" "The *file* argument must be an object with a ``write(string)`` method; if it " @@ -1930,26 +2781,36 @@ msgid "" "arguments are converted to text strings, :func:`print` cannot be used with " "binary mode file objects. For these, use ``file.write(...)`` instead." msgstr "" +"Das Argument *file* muss ein Objekt mit einer ``write(string)``-Methode sein; " +"ist es nicht vorhanden oder ``None``, wird :data:`sys.stdout` verwendet. " +"Da die ausgegebenen Argumente in Textzeichenketten umgewandelt werden, " +"kann :func:`print` nicht mit Dateiobjekten im Binärmodus verwendet werden. " +"Verwenden Sie für diese stattdessen ``file.write(...)``." msgid "" "Output buffering is usually determined by *file*. However, if *flush* is " "true, the stream is forcibly flushed." msgstr "" +"Die Ausgabepufferung wird normalerweise durch *file* bestimmt. Wenn *flush* jedoch " +"auf „true“ gesetzt ist, wird der Stream zwangsweise geleert." msgid "Added the *flush* keyword argument." -msgstr "" +msgstr "Das Keyword-Argument *flush* wurde hinzugefügt." msgid "Return a property attribute." -msgstr "" +msgstr "Gibt ein Eigenschaftsattribut zurück." msgid "" "*fget* is a function for getting an attribute value. *fset* is a function " "for setting an attribute value. *fdel* is a function for deleting an " "attribute value. And *doc* creates a docstring for the attribute." msgstr "" +"*fget* ist eine Funktion zum Abrufen eines Attributwerts. *fset* ist eine Funktion " +"zum Setzen eines Attributwerts. *fdel* ist eine Funktion zum Löschen eines " +"Attributwerts. Und *doc* erstellt einen Docstring für das Attribut." msgid "A typical use is to define a managed attribute ``x``::" -msgstr "" +msgstr "Eine typische Verwendung ist die Definition eines verwalteten Attributs ``x``::" msgid "" "class C:\n" @@ -1967,18 +2828,40 @@ msgid "" "\n" " x = property(getx, setx, delx, \"I'm the 'x' property.\")" msgstr "" +"class C:\n" +" def __init__(self):\n" +" self._x = None\n" +"\n" +" def getx(self):\n" +" return self._x\n" +"\n" +" def setx(self, value):\n" +" self._x = value\n" +"\n" +" def delx(self):\n" +" del self._x\n" +"\n" +" x = property(getx, setx, delx, \"Ich bin die 'x' Eigenschaft.\")" msgid "" "If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " "value`` will invoke the setter, and ``del c.x`` the deleter." msgstr "" +"Wenn *c* eine Instanz von *C* ist, ruft ``c.x`` den Empfänger (getter) auf, " +"``c.x = value`` den Einsetzer (setter) und ``del c.x`` den Löscher (deleter)." msgid "" "If given, *doc* will be the docstring of the property attribute. Otherwise, " "the property will copy *fget*'s docstring (if it exists). This makes it " "possible to create read-only properties easily using :func:`property` as a :" "term:`decorator`::" + msgstr "" +"Wenn angegeben, ist *doc* die Dokumentzeichenfolge des Eigenschaftsattributs. " +"Andernfalls kopiert die \"Eigenschaft\" (property) die Dokumentzeichenfolge " +"von *fget* (falls vorhanden). Dies macht es möglich, schreibgeschützte " +"Eigenschaften einfach zu erstellen, indem :func:`property` als :term:`Dekorateur` " +"verwendet wird.::“ msgid "" "class Parrot:\n" @@ -1990,12 +2873,23 @@ msgid "" " \"\"\"Get the current voltage.\"\"\"\n" " return self._voltage" msgstr "" +"class Parrot:\n" +" def __init__(self):\n" +" self._voltage = 100000\n" +"\n" +" @property\n" +" def voltage(self):\n" +" \"\"\"Hole die aktuelle Spannung.\"\"\"\n" +" return self._voltage" msgid "" "The ``@property`` decorator turns the :meth:`!voltage` method into a " "\"getter\" for a read-only attribute with the same name, and it sets the " "docstring for *voltage* to \"Get the current voltage.\"" msgstr "" +"Der ``@property``-Dekorateur wandelt die Methode :meth:`!voltage` in einen " +"\"Empfänger\“ für ein gleichnamiges Attribut mit Lesezugriff um und setzt den " +"Docstring für *voltage* auf „Hole die aktuelle Spannung.“" msgid "" "A property object has ``getter``, ``setter``, and ``deleter`` methods usable " @@ -2003,6 +2897,11 @@ msgid "" "accessor function set to the decorated function. This is best explained " "with an example:" msgstr "" +"Ein Property-Objekt verfügt über ``getter``-, ``setter``- und ``deleter``-Methoden, " +"die als Dekorateur verwendet werden können; sie erstellen eine Kopie der " +"Property, bei der die entsprechende Zugriffsfunktion auf die dekorierte " +"Funktion gesetzt ist. Dies lässt sich am besten anhand eines Beispiels " +"erläutern:" msgid "" "class C:\n" @@ -2022,30 +2921,55 @@ msgid "" " def x(self):\n" " del self._x" msgstr "" +"class C:\n" +" def __init__(self):\n" +" self._x = None\n" +"\n" +" @property\n" +" def x(self):\n" +" \"\"\"Ich bin die 'x' Eigenschaft.\"\"\"\n" +" return self._x\n" +"\n" +" @x.setter\n" +" def x(self, value):\n" +" self._x = value\n" +"\n" +" @x.deleter\n" +" def x(self):\n" +" del self._x" msgid "" "This code is exactly equivalent to the first example. Be sure to give the " "additional functions the same name as the original property (``x`` in this " "case.)" msgstr "" +"Dieser Code ist exakt gleichbedeutend mit dem ersten Beispiel. Achte " +"darauf, den zusätzlichen Funktionen denselben Namen zu geben wie der " +"ursprünglichen Eigenschaft (in diesem Fall ``x``)." msgid "" "The returned property object also has the attributes ``fget``, ``fset``, and " "``fdel`` corresponding to the constructor arguments." msgstr "" +"Das zurückgegebene Property-Objekt verfügt zudem über die Attribute ``fget``, " +"``fset`` und ``fdel``, die den Konstruktorargumenten entsprechen." msgid "The docstrings of property objects are now writeable." -msgstr "" +msgstr "Die Docstrings von Property-Objekten sind jetzt beschreibbar." msgid "" "Attribute holding the name of the property. The name of the property can be " "changed at runtime." msgstr "" +"Attribut, das den Namen der Eigenschaft enthält. Der Name der Eigenschaft " +"kann zur Laufzeit geändert werden." msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." msgstr "" +"Anstatt eine Funktion zu sein, ist :class:`range` tatsächlich ein unveränderlicher " +"Sequenztyp, wie in :ref:`typesseq-range` und :ref:`typesseq` dokumentiert." msgid "" "Return a string containing a printable representation of an object. For " @@ -2058,9 +2982,18 @@ msgid "" "method. If :func:`sys.displayhook` is not accessible, this function will " "raise :exc:`RuntimeError`." msgstr "" +"Gibt eine Zeichenkette zurück, die eine druckbare Darstellung eines Objekts " +"enthält. Bei vielen Typen versucht diese Funktion, eine Zeichenkette zurückzugeben, " +"die bei Übergabe an :func:`eval` ein Objekt mit demselben Wert ergeben würde; " +"andernfalls besteht die Darstellung aus einer in spitze Klammern eingeschlossenen " +"Zeichenkette, die den Namen des Objekttyps sowie zusätzliche Informationen – " +"häufig einschließlich Name und Adresse des Objekts – enthält. Eine Klasse kann " +"steuern, was diese Funktion für ihre Instanzen zurückgibt, indem sie eine " +":meth:`~object.__repr__`-Methode definiert. Ist :func:`sys.displayhook` nicht " +"verfügbar, löst diese Funktion einen :exc:`RuntimeError` aus." msgid "This class has a custom representation that can be evaluated::" -msgstr "" +msgstr "Diese Klasse verfügt über eine benutzerdefinierte Darstellung, die ausgewertet werden kann::" msgid "" "class Person:\n" @@ -2071,6 +3004,13 @@ msgid "" " def __repr__(self):\n" " return f\"Person('{self.name}', {self.age})\"" msgstr "" +"class Person:\n" +" def __init__(self, name, age):\n" +" self.name = name\n" +" self.age = age\n" +"\n" +" def __repr__(self):\n" +" return f\"Person('{self.name}', {self.age})\"" msgid "" "Return a reverse :term:`iterator`. The argument must be an object which has " @@ -2078,12 +3018,19 @@ msgid "" "(the :meth:`~object.__len__` method and the :meth:`~object.__getitem__` " "method with integer arguments starting at ``0``)." msgstr "" +"Gibt einen umgekehrten :term:`Iterator` zurück. Das Argument muss ein Objekt " +"sein, das über eine :meth:`~object.__reversed__`-Methode verfügt oder das " +"Sequenzprotokoll unterstützt (die :meth:`~object.__len__`-Methode und die " +":meth:`~object.__getitem__`-Methode mit ganzzahligen Argumenten beginnend bei ``0``)." msgid "" "Return *number* rounded to *ndigits* precision after the decimal point. If " "*ndigits* is omitted or is ``None``, it returns the nearest integer to its " "input." msgstr "" +"Gibt *number* auf *ndigits* Nachkommastellen gerundet zurück. Wenn " +"*ndigits* weggelassen wird oder ``None`` ist, wird die dem Eingabewert " +"nächstgelegene Ganzzahl zurückgegeben." msgid "" "For the built-in types supporting :func:`round`, values are rounded to the " @@ -2094,11 +3041,20 @@ msgid "" "negative). The return value is an integer if *ndigits* is omitted or " "``None``. Otherwise, the return value has the same type as *number*." msgstr "" +"Bei den eingebauten Typen, die :func:`round` unterstützen, werden Werte auf " +"das nächste Vielfache von 10 hoch minus *ndigits* gerundet; liegen zwei " +"Vielfache gleich nah, wird zur geraden Zahl hin gerundet (so ergeben " +"beispielsweise sowohl ``round(0.5)`` als auch ``round(-0.5)`` den Wert ``0``, " +"und ``round(1.5)`` ergibt ``2``). Für *ndigits* ist jeder Ganzzahlwert " +"zulässig (positiv, null oder negativ). Der Rückgabewert ist eine Ganzzahl, " +"wenn *ndigits* weggelassen wird oder ``None`` ist. Andernfalls hat der " +"Rückgabewert denselben Typ wie *number*." msgid "" "For a general Python object ``number``, ``round`` delegates to ``number." "__round__``." msgstr "" +"Bei einem allgemeinen Python-Objekt ``number`` delegiert ``round`` an ``number.__round__``." msgid "" "The behavior of :func:`round` for floats can be surprising: for example, " @@ -2107,18 +3063,28 @@ msgid "" "represented exactly as a float. See :ref:`tut-fp-issues` for more " "information." msgstr "" +"Das Verhalten von :func:`round` bei Gleitkommazahlen kann überraschend sein: So ergibt " +"``round(2.675, 2)`` beispielsweise ``2.67`` anstelle der erwarteten ``2.68``. Dies ist " +"kein Fehler, sondern liegt daran, dass die meisten Dezimalbrüche nicht exakt " +"als Gleitkommazahl dargestellt werden können. Weitere Informationen finden " +"Sie unter :ref:`tut-fp-issues`." msgid "" "Return a new :class:`set` object, optionally with elements taken from " "*iterable*. ``set`` is a built-in class. See :class:`set` and :ref:`types-" "set` for documentation about this class." msgstr "" +"Gibt ein neues :class:`set`-Objekt zurück, optional mit Elementen aus " +"*iterable*. ``set`` ist eine eingebaute Klasse. Siehe :class:`set` und :ref:`types-" +"set` für die Dokumentation zu dieser Klasse.“ msgid "" "For other containers see the built-in :class:`frozenset`, :class:`list`, :" "class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections` " "module." msgstr "" +"Für weitere Container siehe die eingebauten Klassen :class:`frozenset`, :class:`list`, :" +"class:`tuple` und :class:`dict` sowie das Modul :mod:`collections`." msgid "" "This is the counterpart of :func:`getattr`. The arguments are an object, a " @@ -2127,6 +3093,11 @@ msgid "" "provided the object allows it. For example, ``setattr(x, 'foobar', 123)`` " "is equivalent to ``x.foobar = 123``." msgstr "" +"Dies ist das Gegenstück zu :func:`getattr`. Die Argumente sind ein Objekt, " +"eine Zeichenkette und ein beliebiger Wert. Die Zeichenkette kann ein " +"vorhandenes oder ein neues Attribut bezeichnen. Die Funktion weist dem " +"Attribut den Wert zu, sofern das Objekt dies zulässt. So entspricht " +"beispielsweise ``setattr(x, 'foobar', 123)`` der Anweisung ``x.foobar = 123``." msgid "" "*name* need not be a Python identifier as defined in :ref:`identifiers` " @@ -2135,18 +3106,29 @@ msgid "" "whose name is not an identifier will not be accessible using the dot " "notation, but is accessible through :func:`getattr` etc.." msgstr "" +"*name* muss kein Python-Bezeichner im Sinne von :ref:`identifiers` sein, " +"es sei denn, das Objekt erzwingt dies, beispielsweise in einer benutzerdefinierten :meth:" +"`~object.__getattribute__`-Methode oder über :attr:`~object.__slots__`. Ein Attribut, " +"dessen Name kein Bezeichner ist, kann nicht über die Punktnotation angesprochen " +"werden, ist jedoch über :func:`getattr` usw. zugänglich.“ msgid "" "Since :ref:`private name mangling ` happens at " "compilation time, one must manually mangle a private attribute's (attributes " "with two leading underscores) name in order to set it with :func:`setattr`." msgstr "" +"Da :ref:`Private Name Mangling ` zur Kompilierzeit " +"erfolgt, muss der Name eines privaten Attributs (Attribute mit zwei führenden " +"Unterstrichen) manuell umgewandelt werden, um es mittels :func:`setattr` zu setzen." msgid "" "Return a :term:`slice` object representing the set of indices specified by " "``range(start, stop, step)``. The *start* and *step* arguments default to " "``None``." msgstr "" +"Gibt ein :term:`slice`-Objekt zurück, das die durch ``range(start, stop, step)`` " +"festgelegte Menge an Indizes repräsentiert. Die Argumente *start* und *step* " +"haben standardmäßig den Wert ``None``." msgid "" "Slice objects have read-only data attributes :attr:`!start`, :attr:`!stop`, " @@ -2154,35 +3136,52 @@ msgid "" "default). They have no other explicit functionality; however, they are used " "by NumPy and other third-party packages." msgstr "" +"Slice-Objekte besitzen die schreibgeschützten Datenattribute :attr:`!start`, :attr:`!stop` " +"und :attr:`!step`, die lediglich die Argumentwerte (oder deren " +"Standardwerte) zurückgeben. Sie verfügen über keine weitere explizite Funktionalität; " +"sie werden jedoch von NumPy und anderen Paketen von Drittanbietern verwendet." msgid "" "Slice objects are also generated when extended indexing syntax is used. For " "example: ``a[start:stop:step]`` or ``a[start:stop, i]``. See :func:" "`itertools.islice` for an alternate version that returns an :term:`iterator`." msgstr "" +"Slice-Objekte werden auch bei Verwendung der erweiterten Indexierungs-Syntax " +"erzeugt. Zum Beispiel: ``a[start:stop:step]`` oder ``a[start:stop, i]``. " +"Siehe :func:`itertools.islice` für eine alternative Version, die einen " +":term:`Iterator` zurückgibt." msgid "" "Slice objects are now :term:`hashable` (provided :attr:`~slice.start`, :attr:" "`~slice.stop`, and :attr:`~slice.step` are hashable)." msgstr "" +"Slice-Objekte sind jetzt :term:`hashbar` (sofern :attr:`~slice.start`, " +":attr:`~slice.stop` und :attr:`~slice.step` hashbar sind)." msgid "Return a new sorted list from the items in *iterable*." -msgstr "" +msgstr "Gibt eine neue sortierte Liste der Elemente aus *iterable* zurück." msgid "" "Has two optional arguments which must be specified as keyword arguments." msgstr "" +"Verfügt über zwei optionale Argumente, die als Schlüsselwortargumente angegeben werden müssen." msgid "" "*key* specifies a function of one argument that is used to extract a " "comparison key from each element in *iterable* (for example, ``key=str." "lower``). The default value is ``None`` (compare the elements directly)." msgstr "" +"*key* gibt eine Funktion mit einem Argument an, die dazu dient, einen " +"Vergleichsschlüssel aus jedem Element in *iterable* zu extrahieren (zum " +"Beispiel ``key=str.lower``). Der Standardwert ist ``None`` (die Elemente " +"werden direkt verglichen)." msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." msgstr "" +"*reverse* ist ein boolescher Wert. Wenn er auf ``True`` gesetzt ist, werden " +"die Listenelemente so sortiert, als ob jeder Vergleich umgekehrt würde." msgid "" "Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " @@ -2195,6 +3194,10 @@ msgid "" "compare equal --- this is helpful for sorting in multiple passes (for " "example, sort by department, then by salary grade)." msgstr "" +"Die integrierte Funktion :func:`sorted` ist garantiert stabil. Ein Sortierverfahren ist " +"stabil, wenn es die relative Reihenfolge von Elementen, die als gleich gelten, " +"nicht verändert – dies ist hilfreich bei Sortierungen in mehreren Durchläufen " +"(zum Beispiel Sortierung nach Abteilung und anschließend nach Gehaltsgruppe)." msgid "" "The sort algorithm uses only ``<`` comparisons between items. While " @@ -2206,29 +3209,45 @@ msgid "" "mixed type comparisons which can call reflected the :meth:`~object.__gt__` " "method." msgstr "" +"Der Sortieralgorithmus verwendet ausschließlich ``<``-Vergleiche zwischen " +"den Elementen. Obwohl die Definition einer :meth:`~object.__lt__`-Methode " +"für das Sortieren ausreicht, empfiehlt :PEP:`8`, alle sechs :ref:`erweiterten " +"Vergleichsoperationen ` zu implementieren. Dies hilft, Fehler " +"bei der Verwendung derselben Daten mit anderen Sortier- oder Auswahlfunktionen " +"wie :func:`max` zu vermeiden, die auf einer anderen zugrundeliegenden Methode " +"basieren. Zudem beugt die Implementierung aller sechs Vergleichsoperationen " +"Verwirrung bei Vergleichen zwischen unterschiedlichen Datentypen vor, bei " +"denen die gespiegelte :meth:`~object.__gt__`-Methode aufgerufen werden kann." msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." -msgstr "" +msgstr "Beispiele und eine kurze Anleitung zum Sortieren finden Sie unter :ref:`sortinghowto`." msgid "Transform a method into a static method." -msgstr "" +msgstr "Wandelt eine Methode in eine statische Methode um." msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" msgstr "" +"Eine statische Methode erhält kein implizites erstes Argument. Um eine " +"statische Methode zu deklarieren, verwenden Sie dieses Idiom::" msgid "" "class C:\n" " @staticmethod\n" " def f(arg1, arg2, argN): ..." msgstr "" +"class C:\n" +" @staticmethod\n" +" def f(arg1, arg2, argN): ..." msgid "" "The ``@staticmethod`` form is a function :term:`decorator` -- see :ref:" "`function` for details." msgstr "" +"Die Form ``@staticmethod`` ist ein Funktions-:term:`Dekorateur` – siehe :ref:`" +"`function` für Einzelheiten.“ msgid "" "A static method can be called either on the class (such as ``C.f()``) or on " @@ -2236,12 +3255,19 @@ msgid "" "`descriptor` is also callable, so it can be used in the class definition " "(such as ``f()``)." msgstr "" +"Eine statische Methode kann entweder über die Klasse (z. B. ``C.f()``) " +"oder über eine Instanz (z. B. ``C().f()``) aufgerufen werden. Darüber " +"hinaus ist der statische Methoden-Deskriptor selbst aufrufbar, sodass " +"er in der Klassendefinition verwendet werden kann (z. B. ``f()``)." msgid "" "Static methods in Python are similar to those found in Java or C++. Also, " "see :func:`classmethod` for a variant that is useful for creating alternate " "class constructors." msgstr "" +"Statische Methoden in Python ähneln denen in Java oder C++. Siehe auch " +":func:`classmethod` für eine Variante, die sich zur Erstellung alternativer " +"Klassenkonstruktoren eignet." msgid "" "Like all decorators, it is also possible to call ``staticmethod`` as a " @@ -2250,6 +3276,11 @@ msgid "" "want to avoid the automatic transformation to instance method. For these " "cases, use this idiom::" msgstr "" +"Wie bei allen Dekorateuren ist es auch möglich, ``staticmethod`` als reguläre " +"Funktion aufzurufen und mit dem Ergebnis weiterzuarbeiten. Dies ist in Fällen " +"erforderlich, in denen man innerhalb des Klassenkörpers eine Referenz auf eine " +"Funktion benötigt und die automatische Umwandlung in eine Instanzmethode " +"vermeiden möchte. Für solche Fälle verwendet man folgendes Idiom::" msgid "" "def regular_function():\n" @@ -2258,9 +3289,14 @@ msgid "" "class C:\n" " method = staticmethod(regular_function)" msgstr "" +"def regular_function():\n" +" ...\n" +"\n" +"class C:\n" +" method = staticmethod(regular_function)" msgid "For more information on static methods, see :ref:`types`." -msgstr "" +msgstr "Weitere Informationen zu statischen Methoden finden Sie unter :ref:`types`." msgid "" "Static methods now inherit the method attributes (:attr:`~function." @@ -2268,21 +3304,31 @@ msgid "" "attr:`~function.__doc__` and :attr:`~function.__annotations__`), have a new " "``__wrapped__`` attribute, and are now callable as regular functions." msgstr "" +"Statische Methoden erben nun die Methodenattribute (:attr:`~function." +"__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :" +"attr:`~function.__doc__` und :attr:`~function.__annotations__`), verfügen über ein neues " +"``__wrapped__``-Attribut und sind nun wie reguläre Funktionen aufrufbar." msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." msgstr "" +"Gibt eine :class:`str`-Version von *object* zurück. Siehe :func:`str` für Details." msgid "" "``str`` is the built-in string :term:`class`. For general information about " "strings, see :ref:`textseq`." msgstr "" +"``str`` ist die integrierte Zeichenketten-:term:`Klasse`. Allgemeine Informationen zu " +"Zeichenketten finden Sie unter :ref:`textseq`.“ msgid "" "Sums *start* and the items of an *iterable* from left to right and returns " "the total. The *iterable*'s items are normally numbers, and the start value " "is not allowed to be a string." msgstr "" +"Summiert *start* und die Elemente eines *Iterables* von links nach rechts auf und gibt " +"die Gesamtsumme zurück. Die Elemente des *Iterables* sind normalerweise Zahlen, " +"und der Startwert darf kein String sein.“ msgid "" "For some use cases, there are good alternatives to :func:`sum`. The " @@ -2291,36 +3337,55 @@ msgid "" "see :func:`math.fsum`\\. To concatenate a series of iterables, consider " "using :func:`itertools.chain`." msgstr "" +"Für einige Anwendungsfälle gibt es gute Alternativen zu :func:`sum`. " +"Die bevorzugte, schnelle Methode zum Verketten einer Sequenz von " +"Zeichenketten ist der Aufruf von ``''.join(sequence)``. Für die " +"Addition von Gleitkommazahlen mit erhöhter Genauigkeit siehe " +":func:`math.fsum`. Zum Verketten einer Reihe von Iterables empfiehlt " +"sich die Verwendung von :func:`itertools.chain`." msgid "The *start* parameter can be specified as a keyword argument." -msgstr "" +msgstr "Der Parameter *start* kann als Schlüsselwortargument angegeben werden." msgid "" "Summation of floats switched to an algorithm that gives higher accuracy and " "better commutativity on most builds." msgstr "" +"Die Summation von Gleitkommazahlen wurde auf einen Algorithmus umgestellt, " +"der bei den meisten Builds eine höhere Genauigkeit und eine bessere Kommutativität bietet." msgid "" "Added specialization for summation of complexes, using same algorithm as for " "summation of floats." msgstr "" +"Spezialisierung für die Summation komplexer Zahlen hinzugefügt; dabei wird " +"derselbe Algorithmus wie für die Summation von Gleitkommazahlen verwendet." msgid "" "Return a proxy object that delegates method calls to a parent or sibling " "class of *type*. This is useful for accessing inherited methods that have " "been overridden in a class." msgstr "" +"Gibt ein Proxy-Objekt zurück, das Methodenaufrufe an eine Eltern- oder " +"Geschwisterklasse von *type* delegiert. Dies ist nützlich für den Zugriff " +"auf geerbte Methoden, die in einer Klasse überschrieben wurden." msgid "" "The *object_or_type* determines the :term:`method resolution order` to be " "searched. The search starts from the class right after the *type*." msgstr "" +"Das *object_or_type* bestimmt die :term:`Methodenauflösungsreihenfolge` " +"(method resolution order), die durchsucht werden soll. Die Suche beginnt " +"bei der Klasse, die direkt auf den *type* folgt." msgid "" "For example, if :attr:`~type.__mro__` of *object_or_type* is ``D -> B -> C -" "> A -> object`` and the value of *type* is ``B``, then :func:`super` " "searches ``C -> A -> object``." msgstr "" +"Wenn zum Beispiel :attr:`~type.__mro__` von *object_or_type* ``D -> B -> C -> A -> object`` " +"lautet und der Wert von *type* ``B`` ist, dann durchsucht :func:`super` " +"``C -> A -> object``." msgid "" "The :attr:`~type.__mro__` attribute of the class corresponding to " @@ -2328,6 +3393,10 @@ msgid "" "`getattr` and :func:`super`. The attribute is dynamic and can change " "whenever the inheritance hierarchy is updated." msgstr "" +"Das Attribut :attr:`~type.__mro__` der Klasse, die *object_or_type* entspricht, " +"listet die Suchreihenfolge für die Methodenauflösung auf, die sowohl von :func:" +"`getattr` als auch von :func:`super` verwendet wird. Das Attribut ist dynamisch " +"und kann sich ändern, wann immer die Vererbungshierarchie aktualisiert wird." msgid "" "If the second argument is omitted, the super object returned is unbound. If " @@ -2335,6 +3404,10 @@ msgid "" "If the second argument is a type, ``issubclass(type2, type)`` must be true " "(this is useful for classmethods)." msgstr "" +"Wird das zweite Argument weggelassen, ist das zurückgegebene super-Objekt ungebunden. " +"Ist das zweite Argument ein Objekt, muss ``isinstance(obj, type)`` wahr sein. " +"Ist das zweite Argument ein Typ, muss ``issubclass(type2, type)`` wahr sein " +"(dies ist nützlich für Klassenmethoden).“ msgid "" "When called directly within an ordinary method of a class, both arguments " @@ -2344,6 +3417,13 @@ msgid "" "argument :func:`!super` will not work as expected within nested functions, " "including generator expressions, which implicitly create nested functions.)" msgstr "" +"Wenn der Aufruf direkt innerhalb einer gewöhnlichen Methode einer Klasse erfolgt, " +"können beide Argumente weggelassen werden („:func:`!super` ohne Argumente“). " +"In diesem Fall ist *type* die umschließende Klasse und *obj* das erste Argument " +"der unmittelbar umschließenden Funktion (typischerweise ``self``). (Dies bedeutet, " +"dass :func:`!super` ohne Argumente innerhalb verschachtelter Funktionen – " +"einschließlich Generator-Ausdrücken, die implizit verschachtelte Funktionen erzeugen – " +"nicht wie erwartet funktioniert.)" msgid "" "There are two typical use cases for *super*. In a class hierarchy with " @@ -2351,6 +3431,11 @@ msgid "" "naming them explicitly, thus making the code more maintainable. This use " "closely parallels the use of *super* in other programming languages." msgstr "" +"Es gibt zwei typische Anwendungsfälle für *super*. In einer Klassenhierarchie " +"mit einfacher Vererbung kann *super* verwendet werden, um auf Elternklassen " +"zu verweisen, ohne diese explizit zu benennen, wodurch der Code " +"wartungsfreundlicher wird. Diese Verwendung entspricht weitgehend der " +"Verwendung von *super* in anderen Programmiersprachen." msgid "" "The second use case is to support cooperative multiple inheritance in a " @@ -2363,9 +3448,18 @@ msgid "" "changes in the class hierarchy, and because that order can include sibling " "classes that are unknown prior to runtime)." msgstr "" +"Der zweite Anwendungsfall ist die Unterstützung kooperativer Mehrfachvererbung in einer " +"dynamischen Ausführungsumgebung. Dieser Anwendungsfall ist spezifisch für Python und " +"kommt weder in statisch kompilierten Sprachen noch in Sprachen vor, die lediglich " +"Einfachvererbung unterstützen. Dies ermöglicht die Implementierung von \"Diamantstrukturen\“, " +"bei denen mehrere Basisklassen dieselbe Methode implementieren. Ein gutes Design " +"erfordert, dass derartige Implementierungen stets dieselbe Aufrufsignatur aufweisen " +"(da die Aufrufreihenfolge zur Laufzeit bestimmt wird, sich an Änderungen der " +"Klassenhierarchie anpasst und auch Geschwisterklassen einbeziehen kann, die vor " +"der Laufzeit noch unbekannt sind)." msgid "For both use cases, a typical superclass call looks like this::" -msgstr "" +msgstr "Für beide Anwendungsfälle sieht ein typischer Aufruf der Superklasse folgendermaßen aus:" msgid "" "class C(B):\n" @@ -2373,12 +3467,20 @@ msgid "" " super().method(arg) # This does the same thing as:\n" " # super(C, self).method(arg)" msgstr "" +"class C(B):\n" +" def method(self, arg):\n" +" super().method(arg) # Dies bewirkt dasselbe wie:\n" +" # super(C, self).method(arg)" + msgid "" "In addition to method lookups, :func:`super` also works for attribute " "lookups. One possible use case for this is calling :term:`descriptors " "` in a parent or sibling class." msgstr "" +"Neben der Methodensuche funktioniert :func:`super` auch bei der " +"Attributsuche. Ein möglicher Anwendungsfall hierfür ist der Aufruf " +"von :term:`Deskriptoren ` in einer Eltern- oder Geschwisterklasse." msgid "" "Note that :func:`super` is implemented as part of the binding process for " @@ -2388,6 +3490,13 @@ msgid "" "inheritance. Accordingly, :func:`super` is undefined for implicit lookups " "using statements or operators such as ``super()[name]``." msgstr "" +"Beachte, dass :func:`super` als Teil des Bindungsprozesses für explizite " +"Attributzugriffe mit Punktnotation – wie etwa ``super().__getitem__(name)`` " +"– implementiert ist. Dies geschieht durch die Implementierung einer eigenen " +":meth:`~object.__getattribute__`-Methode, die Klassen in einer vorhersagbaren " +"Reihenfolge durchsucht und so kooperative Mehrfachvererbung unterstützt. " +"Folglich ist :func:`super` für implizite Zugriffe mittels Anweisungen oder " +"Operatoren, wie beispielsweise ``super()[name]``, nicht definiert." msgid "" "Also note that, aside from the zero argument form, :func:`super` is not " @@ -2397,33 +3506,51 @@ msgid "" "necessary details to correctly retrieve the class being defined, as well as " "accessing the current instance for ordinary methods." msgstr "" +"Beachteaußerdem, dass :func:`super` – abgesehen von der Variante ohne " +"Argumente – nicht auf die Verwendung innerhalb von Methoden beschränkt ist. " +"Die Variante mit zwei Argumenten legt die Argumente genau fest und stellt die " +"entsprechenden Bezüge her. Die Variante ohne Argumente funktioniert hingegen " +"nur innerhalb einer Klassendefinition, da der Compiler die erforderlichen " +"Details ergänzt, um die gerade definierte Klasse korrekt zu ermitteln und " +"bei gewöhnlichen Methoden auf die aktuelle Instanz zuzugreifen." msgid "" "For practical suggestions on how to design cooperative classes using :func:" "`super`, see `guide to using super() `_." msgstr "" +"Praktische Vorschläge zur Gestaltung kooperativer Klassen unter Verwendung " +"von :func:`super` finden Sie im `Leitfaden zur Verwendung von super() " +"`_." msgid "" ":class:`super` objects are now :mod:`pickleable ` and :mod:" "`copyable `." msgstr "" +"`:class:`super`-Objekte sind jetzt :mod:`picklebar ` und :mod:`kopierbar `." msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." msgstr "" +"Anstatt eine Funktion zu sein, ist :class:`tuple` eigentlich ein unveränderlicher " +"Sequenztyp, wie in :ref:`typesseq-tuple` und :ref:`typesseq` dokumentiert." msgid "" "With one argument, return the type of an *object*. The return value is a " "type object and generally the same object as returned by :attr:`object." "__class__`." msgstr "" +"Geben Sie mit einem Argument den Typ eines *Objekts* zurück. Der Rückgabewert ist ein " +"Typobjekt und im Allgemeinen dasselbe Objekt, das von :attr:`object." +"__class__` zurückgegeben wird." msgid "" "The :func:`isinstance` built-in function is recommended for testing the type " "of an object, because it takes subclasses into account." msgstr "" +"Die eingebaute Funktion :func:`isinstance` wird empfohlen, um den Typ eines " +"Objekts zu überprüfen, da sie Unterklassen berücksichtigt." msgid "" "With three arguments, return a new type object. This is essentially a " @@ -2436,17 +3563,27 @@ msgid "" "__dict__` attribute. The following two statements create identical :class:`!" "type` objects:" msgstr "" +"Gibt bei Angabe von drei Argumenten ein neues Typobjekt zurück. Dies ist im Wesentlichen eine " +"dynamische Form der :keyword:`class`-Anweisung. Die Zeichenkette *name* ist der " +"Klassenname und wird zum Attribut :attr:`~type.__name__`. Das Tupel *bases* " +"enthält die Basisklassen und wird zum Attribut :attr:`~type.__bases__`; " +"ist es leer, wird :class:`object` – die gemeinsame Basisklasse aller Klassen – " +"hinzugefügt. Das Dictionary *dict* enthält Attribut- und Methodendefinitionen für " +"den Klassenkörper; es kann kopiert oder gekapselt werden, bevor es zum Attribut " +":attr:`~type.__dict__` wird. Die folgenden beiden Anweisungen erzeugen identische " +":class:`type`-Objekte:" msgid "See also:" -msgstr "" +msgstr "Siehe auch:" msgid "" ":ref:`Documentation on attributes and methods on classes `." msgstr "" +":ref:`Dokumentation zu Attributen und Methoden von Klassen `." msgid ":ref:`bltin-type-objects`" -msgstr "" +msgstr ":ref:`bltin-type-objects`" msgid "" "Keyword arguments provided to the three argument form are passed to the " @@ -2454,19 +3591,30 @@ msgid "" "in the same way that keywords in a class definition (besides *metaclass*) " "would." msgstr "" +"Schlüsselwortargumente, die der Form mit drei Argumenten übergeben werden, " +"werden an den entsprechenden Metaklassen-Mechanismus (üblicherweise " +":meth:`~object.__init_subclass__`) weitergereicht – auf dieselbe Weise, " +"wie dies bei Schlüsselwörtern in einer Klassendefinition (abgesehen von " +"*metaclass*) der Fall wäre." msgid "See also :ref:`class-customization`." -msgstr "" +msgstr "Siehe auch :ref:`class-customization`." msgid "" "Subclasses of :class:`!type` which don't override ``type.__new__`` may no " "longer use the one-argument form to get the type of an object." msgstr "" +"Unterklassen von :class:`!type`, die ``type.__new__`` nicht überschreiben, " +"dürfen nicht mehr die Form mit einem Argument verwenden, um den Typ eines " +"Objekts zu ermitteln." msgid "" "Return the :attr:`~object.__dict__` attribute for a module, class, instance, " "or any other object with a :attr:`!__dict__` attribute." msgstr "" +"Geben Sie das Attribut :attr:`~object.__dict__` für ein Modul, eine Klasse, " +"eine Instanz oder ein beliebiges anderes Objekt mit einem :attr:`!__dict__`" +"-Attribut zurück." msgid "" "Objects such as modules and instances have an updateable :attr:`~object." @@ -2474,28 +3622,39 @@ msgid "" "their :attr:`!__dict__` attributes (for example, classes use a :class:`types." "MappingProxyType` to prevent direct dictionary updates)." msgstr "" +"Objekte wie Module und Instanzen verfügen über ein aktualisierbares :attr:`~object." +"__dict__`-Attribut; andere Objekte können jedoch Schreibbeschränkungen für " +"ihre :attr:`!__dict__`-Attribute aufweisen (Klassen verwenden beispielsweise ein :class:`types." +"MappingProxyType`, um direkte Aktualisierungen des Dictionarys zu verhindern)." msgid "Without an argument, :func:`vars` acts like :func:`locals`." -msgstr "" +msgstr "Ohne Argument verhält sich :func:`vars` wie :func:`locals`." msgid "" "A :exc:`TypeError` exception is raised if an object is specified but it " "doesn't have a :attr:`~object.__dict__` attribute (for example, if its class " "defines the :attr:`~object.__slots__` attribute)." msgstr "" +"Eine :exc:`TypeError`-Ausnahme wird ausgelöst, wenn ein Objekt angegeben wird, " +"das kein :attr:`~object.__dict__`-Attribut besitzt (zum Beispiel, wenn seine " +"Klasse das :attr:`~object.__slots__`-Attribut definiert)." msgid "" "The result of calling this function without an argument has been updated as " "described for the :func:`locals` builtin." msgstr "" +"Das Ergebnis des Aufrufs dieser Funktion ohne Argument wurde wie für die " +"eingebaute Funktion :func:`locals` beschrieben aktualisiert." msgid "" "Iterate over several iterables in parallel, producing tuples with an item " "from each one." msgstr "" +"Über mehrere Iterables parallel iterieren und dabei Tupel mit je einem Element " +"aus jedem Iterable erzeugen.“ msgid "Example::" -msgstr "" +msgstr "Beispiel::" msgid "" ">>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" @@ -2505,23 +3664,37 @@ msgid "" "(2, 'spice')\n" "(3, 'everything nice')" msgstr "" +">>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" +"... print(item)\n" +"...\n" +"(1, 'sugar')\n" +"(2, 'spice')\n" +"(3, 'everything nice')" msgid "" "More formally: :func:`zip` returns an iterator of tuples, where the *i*-th " "tuple contains the *i*-th element from each of the argument iterables." msgstr "" +"Etwas formeller ausgedrückt: :func:`zip` gibt einen Iterator von Tupeln zurück, wobei das *i*-te " +"Tupel das *i*-te Element aus jedem der als Argument übergebenen Iterables enthält." msgid "" "Another way to think of :func:`zip` is that it turns rows into columns, and " "columns into rows. This is similar to `transposing a matrix `_." msgstr "" +"Eine weitere Möglichkeit, sich :func:`zip` vorzustellen, ist, dass es Zeilen in Spalten " +"und Spalten in Zeilen umwandelt. Dies ähnelt dem `Transponieren einer Matrix `_." msgid "" ":func:`zip` is lazy: The elements won't be processed until the iterable is " "iterated on, e.g. by a :keyword:`!for` loop or by wrapping in a :class:" "`list`." msgstr "" +":func:`zip` arbeitet verzögert (lazy): Die Elemente werden erst verarbeitet, " +"wenn über das Iterable iteriert wird, z. B. mittels einer :keyword:`!for`-Schleife " +"oder durch Umwandlung in eine :class:`list`." msgid "" "One thing to consider is that the iterables passed to :func:`zip` could have " @@ -2529,28 +3702,44 @@ msgid "" "the code that prepared these iterables. Python offers three different " "approaches to dealing with this issue:" msgstr "" +"Es ist zu beachten, dass die an :func:`zip` übergebenen Iterables " +"unterschiedliche Längen aufweisen können – manchmal beabsichtigt, " +"manchmal aufgrund eines Fehlers in dem Code, der diese Iterables " +"erstellt hat. Python bietet drei verschiedene Ansätze für den Umgang " +"mit diesem Problem:" msgid "" "By default, :func:`zip` stops when the shortest iterable is exhausted. It " "will ignore the remaining items in the longer iterables, cutting off the " "result to the length of the shortest iterable::" msgstr "" +"Standardmäßig hält :func:`zip` an, sobald das kürzeste Iterable erschöpft " +"ist. Es ignoriert die verbleibenden Elemente in den längeren Iterables und " +"begrenzt das Ergebnis auf die Länge des kürzesten Iterables::" msgid "" ">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" "[(0, 'fee'), (1, 'fi'), (2, 'fo')]" msgstr "" +">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" +"[(0, 'fee'), (1, 'fi'), (2, 'fo')]" msgid "" ":func:`zip` is often used in cases where the iterables are assumed to be of " "equal length. In such cases, it's recommended to use the ``strict=True`` " "option. Its output is the same as regular :func:`zip`::" msgstr "" +":func:`zip` wird häufig in Fällen verwendet, in denen davon ausgegangen wird, " +"dass die Iterables gleich lang sind. In solchen Fällen empfiehlt sich die " +"Verwendung der Option ``strict=True``. Die Ausgabe entspricht der von " +"regulärem :func:`zip`::" msgid "" ">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" "[('a', 1), ('b', 2), ('c', 3)]" msgstr "" +">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" +"[('a', 1), ('b', 2), ('c', 3)]" msgid "" "Unlike the default behavior, it raises a :exc:`ValueError` if one iterable " @@ -2562,20 +3751,28 @@ msgid "" "different lengths will be silenced, possibly manifesting as a hard-to-find " "bug in another part of the program." msgstr "" +"Ohne das Argument „strict=True“ werden Fehler, die zu Iterables " +"unterschiedlicher Länge führen, unterdrückt; dies kann sich möglicherweise " +"als schwer zu findender Fehler an einer anderen Stelle des Programms äußern." msgid "" "Shorter iterables can be padded with a constant value to make all the " "iterables have the same length. This is done by :func:`itertools." "zip_longest`." msgstr "" +"Kürzere Iterables können mit einem konstanten Wert aufgefüllt werden, " +"damit alle Iterables dieselbe Länge haben. Dies geschieht mit " +":func:`itertools.zip_longest`." msgid "" "Edge cases: With a single iterable argument, :func:`zip` returns an iterator " "of 1-tuples. With no arguments, it returns an empty iterator." msgstr "" +"Grenzfälle: Bei einem einzelnen iterierbaren Argument gibt :func:`zip` einen Iterator " +"von 1-Tupeln zurück. Ohne Argumente gibt es einen leeren Iterator zurück." msgid "Tips and tricks:" -msgstr "" +msgstr "Tipps und Tricks:" msgid "" "The left-to-right evaluation order of the iterables is guaranteed. This " @@ -2584,11 +3781,19 @@ msgid "" "``n`` times so that each output tuple has the result of ``n`` calls to the " "iterator. This has the effect of dividing the input into n-length chunks." msgstr "" +"Die Auswertungsreihenfolge der Iterables von links nach rechts ist garantiert. " +"Dies ermöglicht ein Idiom, um eine Datensequenz mithilfe von " +"``zip(*[iter(s)]*n, strict=True)`` in Gruppen der Länge ``n`` zu unterteilen. " +"Dabei wird *derselbe* Iterator ``n``-mal verwendet, sodass jedes Ergebnis-Tupel " +"die Resultate von ``n`` Aufrufen des Iterators enthält. Dies bewirkt eine " +"Aufteilung der Eingabe in Abschnitte der Länge ``n``." msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" msgstr "" +":func:`zip` kann in Verbindung mit dem ``*``-Operator verwendet werden, um eine " +"Liste zu entpacken::" msgid "" ">>> x = [1, 2, 3]\n" @@ -2599,6 +3804,13 @@ msgid "" ">>> x == list(x2) and y == list(y2)\n" "True" msgstr "" +">>> x = [1, 2, 3]\n" +">>> y = [4, 5, 6]\n" +">>> list(zip(x, y))\n" +"[(1, 4), (2, 5), (3, 6)]\n" +">>> x2, y2 = zip(*zip(x, y))\n" +">>> x == list(x2) and y == list(y2)\n" +"True" msgid "Added the ``strict`` argument." msgstr "" @@ -2607,6 +3819,9 @@ msgid "" "This is an advanced function that is not needed in everyday Python " "programming, unlike :func:`importlib.import_module`." msgstr "" +"Dies ist eine fortgeschrittene Funktion, die im Gegensatz zu " +":func:`importlib.import_module` in der alltäglichen Python-Programmierung " +"nicht benötigt wird." msgid "" "This function is invoked by the :keyword:`import` statement. It can be " @@ -2618,6 +3833,15 @@ msgid "" "implementation is in use. Direct use of :func:`__import__` is also " "discouraged in favor of :func:`importlib.import_module`." msgstr "" +"Diese Funktion wird durch die :keyword:`import`-Anweisung aufgerufen. " +"Sie kann ersetzt werden (durch Importieren des Moduls :mod:`builtins` " +"und Zuweisung an ``builtins.__import__``), um die Semantik der " +":keyword:`import`-Anweisung zu ändern; davon wird jedoch **dringend** " +"abgeraten. Es ist meist einfacher, Import-Hooks (siehe :pep:`302`) zu " +"verwenden, um dieselben Ziele zu erreichen, ohne Probleme bei Code zu " +"verursachen, der von der Standard-Importimplementierung ausgeht. Auch " +"von der direkten Verwendung von :func:`__import__` wird zugunsten von " +":func:`importlib.import_module` abgeraten." msgid "" "The function imports the module *name*, potentially using the given " @@ -2627,6 +3851,13 @@ msgid "" "does not use its *locals* argument at all and uses its *globals* only to " "determine the package context of the :keyword:`import` statement." msgstr "" +"Die Funktion importiert das Modul *name* und verwendet dabei gegebenenfalls " +"die angegebenen *globals* und *locals*, um zu bestimmen, wie der Name im " +"Kontext eines Pakets zu interpretieren ist. Über *fromlist* werden die " +"Namen von Objekten oder Untermodulen angegeben, die aus dem durch *name* " +"bezeichneten Modul importiert werden sollen. Die Standardimplementierung " +"verwendet das Argument *locals* überhaupt nicht und nutzt *globals* " +"lediglich dazu, den Paketkontext der :keyword:`import`-Anweisung zu bestimmen." msgid "" "*level* specifies whether to use absolute or relative imports. ``0`` (the " @@ -2635,6 +3866,11 @@ msgid "" "directory of the module calling :func:`__import__` (see :pep:`328` for the " "details)." msgstr "" +"*level* gibt an, ob absolute oder relative Importe verwendet werden sollen. ``0`` " +"(der Standard) bedeutet, dass nur absolute Importe durchgeführt werden. " +"Positive Werte für „level“ geben die Anzahl der übergeordneten Verzeichnisse " +"an, die ausgehend vom Verzeichnis des Moduls, das __import__() aufruft, " +"durchsucht werden sollen. (siehe :pep:`328` für mehr Details)." msgid "" "When the *name* variable is of the form ``package.module``, normally, the " @@ -2642,57 +3878,80 @@ msgid "" "module named by *name*. However, when a non-empty *fromlist* argument is " "given, the module named by *name* is returned." msgstr "" +"Wenn die Variable *name* die Form ``package.module`` hat, wird normalerweise " +"das Paket der obersten Ebene (der Name bis zum ersten Punkt) zurückgegeben, " +"*nicht* das durch *name* bezeichnete Modul. Wird jedoch ein nicht leeres " +"*fromlist*-Argument angegeben, so wird das durch *name* bezeichnete Modul " +"zurückgegeben." msgid "" "For example, the statement ``import spam`` results in bytecode resembling " "the following code::" msgstr "" +"Die Anweisung „import spam“ führt beispielsweise zu Bytecode, der dem " +"folgenden Code ähnelt::" msgid "spam = __import__('spam', globals(), locals(), [], 0)" -msgstr "" +msgstr "spam = __import__('spam', globals(), locals(), [], 0)" msgid "The statement ``import spam.ham`` results in this call::" -msgstr "" +msgstr "Die Anweisung ``import spam.ham`` führt zu diesem Aufruf::" msgid "spam = __import__('spam.ham', globals(), locals(), [], 0)" -msgstr "" +msgstr "spam = __import__('spam.ham', globals(), locals(), [], 0)" msgid "" "Note how :func:`__import__` returns the toplevel module here because this is " "the object that is bound to a name by the :keyword:`import` statement." msgstr "" +"Beachte, wie :func:`__import__` hier das Modul der obersten Ebene zurückgibt, da dies " +"das Objekt ist, das durch die :keyword:`import`-Anweisung an einen Namen gebunden wird." msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" msgstr "" +"Andererseits führt die Anweisung ``from spam.ham import eggs, sausage as " +"saus`` zu ::" msgid "" "_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)\n" "eggs = _temp.eggs\n" "saus = _temp.sausage" msgstr "" +"_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)\n" +"eggs = _temp.eggs\n" +"saus = _temp.sausage" msgid "" "Here, the ``spam.ham`` module is returned from :func:`__import__`. From " "this object, the names to import are retrieved and assigned to their " "respective names." msgstr "" +"Hier wird das Modul ``spam.ham`` von :func:`__import__` zurückgegeben. Aus " +"diesem Objekt werden die zu importierenden Namen abgerufen und den " +"entsprechenden Namen zugewiesen." msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." msgstr "" +"Wenn Sie ein Modul (möglicherweise innerhalb eines Pakets) einfach anhand " +"seines Namens importieren möchten, verwenden Sie :func:`importlib.import_module`." msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." msgstr "" +"Negative Werte für *level* werden nicht mehr unterstützt (wodurch sich auch " +"der Standardwert auf 0 ändert)." msgid "" "When the command line options :option:`-E` or :option:`-I` are being used, " "the environment variable :envvar:`PYTHONCASEOK` is now ignored." msgstr "" +"Wenn die Befehlszeilenoptionen :option:`-E` oder :option:`-I` verwendet werden, " +"wird die Umgebungsvariable :envvar:`PYTHONCASEOK` nun ignoriert." msgid "Footnotes" msgstr "Fußnoten" @@ -2702,84 +3961,88 @@ msgid "" "you are reading the code from a file, make sure to use newline conversion " "mode to convert Windows or Mac-style newlines." msgstr "" +"Beachte, dass der Parser nur Zeilenenden im Unix-Format akzeptiert. Wenn " +"Du den Code aus einer Datei liest, stelle sicher, dass Du den Modus zur " +"Umwandlung von Zeilenumbrüchen verwendest, um Zeilenumbrüche im Windows- " +"oder Mac-Format zu konvertieren." msgid "Boolean" -msgstr "" +msgstr "Boolescher Wert" msgid "type" msgstr "Typ" msgid "built-in function" -msgstr "" +msgstr "Eingebaute Funktion" msgid "exec" -msgstr "" +msgstr "Ausführen" msgid "NaN" -msgstr "" +msgstr "Keine Nummer (NaN, Not a Number)" msgid "Infinity" -msgstr "" +msgstr "Unendlichkeit" msgid "__format__" -msgstr "" +msgstr "__format__" msgid "string" -msgstr "" +msgstr "Zeichenkette" msgid "format() (built-in function)" -msgstr "" +msgstr "format() (Eingebaute Funktion)" msgid "file object" -msgstr "" +msgstr "Datei Objekt" msgid "open() built-in function" -msgstr "" +msgstr "open() Eingebaute Funktion" msgid "file" -msgstr "" +msgstr "Datei" msgid "modes" -msgstr "" +msgstr "Modus / Modi" msgid "universal newlines" -msgstr "" +msgstr "Universal Neue Zeile" msgid "line-buffered I/O" -msgstr "" +msgstr "Zeilen gepufferte I/O" msgid "unbuffered I/O" -msgstr "" +msgstr "Ungepufferte I/O" msgid "buffer size, I/O" -msgstr "" +msgstr "Puffer Größe, I/O" msgid "I/O control" -msgstr "" +msgstr "I/O Kontrolle" msgid "buffering" -msgstr "" +msgstr "Puffern" msgid "text mode" -msgstr "" +msgstr "Text Modus" msgid "module" -msgstr "" +msgstr "Modul" msgid "sys" msgstr "sys" msgid "str() (built-in function)" -msgstr "" +msgstr "str() (Eingebaute Funktion)" msgid "object" -msgstr "" +msgstr "Objekt" msgid "statement" -msgstr "" +msgstr "Ausdruck" msgid "import" -msgstr "" +msgstr "Import" msgid "builtins" -msgstr "" +msgstr "Eingebaute Funktionen" diff --git a/library/string.po b/library/string.po index 8606f53..3020988 100644 --- a/library/string.po +++ b/library/string.po @@ -1,15 +1,15 @@ -# SOME DESCRIPTIVE TITLE. +# German translation for Python documentation. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. +# FIRST AUTHOR Swen Bachmann <142266608+sba72@users.noreply.github.com>, 2026. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-25 14:12+0000\n" -"PO-Revision-Date: 2025-09-16 00:01+0000\n" +"PO-Revision-Date: 2026-08-03 12:48+0000\n" +"Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,764 +18,463 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid ":mod:`!string` --- Common string operations" -msgstr "" +msgstr ":mod:`!string` --- Allgemeine Zeichenkettenoperationen" msgid "**Source code:** :source:`Lib/string.py`" -msgstr "" +msgstr "*Quellcode:** :source:`Lib/string.py`" msgid ":ref:`textseq`" -msgstr "" +msgstr ":ref:`textseq`" msgid ":ref:`string-methods`" -msgstr "" +msgstr ":ref:`string-methods`" msgid "String constants" -msgstr "" +msgstr "String-Konstanten" msgid "The constants defined in this module are:" -msgstr "" +msgstr "Die in diesem Modul definierten Konstanten sind:" -msgid "" -"The concatenation of the :const:`ascii_lowercase` and :const:" -"`ascii_uppercase` constants described below. This value is not locale-" -"dependent." -msgstr "" +msgid "The concatenation of the :const:`ascii_lowercase` and :const:`ascii_uppercase` constants described below. This value is not locale-dependent." +msgstr "Die Konkatenation der unten beschriebenen Konstanten :const:`ascii_lowercase` und :const:`ascii_uppercase`. Dieser Wert ist nicht locale-abhängig." -msgid "" -"The lowercase letters ``'abcdefghijklmnopqrstuvwxyz'``. This value is not " -"locale-dependent and will not change." -msgstr "" +msgid "The lowercase letters ``'abcdefghijklmnopqrstuvwxyz'``. This value is not locale-dependent and will not change." +msgstr "Die Kleinbuchstaben ``'abcdefghijklmnopqrstuvwxyz'``. Dieser Wert ist nicht locale-abhängig und ändert sich nicht." -msgid "" -"The uppercase letters ``'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. This value is not " -"locale-dependent and will not change." -msgstr "" +msgid "The uppercase letters ``'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. This value is not locale-dependent and will not change." +msgstr "Die Großbuchstaben ``'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Dieser Wert ist nicht locale-abhängig und ändert sich nicht." msgid "The string ``'0123456789'``." -msgstr "" +msgstr "Die Zeichenkette ``'0123456789'``." msgid "The string ``'0123456789abcdefABCDEF'``." -msgstr "" +msgstr "Die Zeichenkette ``'0123456789abcdefABCDEF'``." msgid "The string ``'01234567'``." -msgstr "" +msgstr "Die Zeichenkette ``'01234567'``." -msgid "" -"String of ASCII characters which are considered punctuation characters in " -"the ``C`` locale: ``!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~``." -msgstr "" +msgid "String of ASCII characters which are considered punctuation characters in the ``C`` locale: ``!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~``." +msgstr "Zeichenkette von ASCII-Zeichen, die im ``C``-locale als Satzzeichen gelten: ``!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~``." -msgid "" -"String of ASCII characters which are considered printable by Python. This is " -"a combination of :const:`digits`, :const:`ascii_letters`, :const:" -"`punctuation`, and :const:`whitespace`." -msgstr "" +msgid "String of ASCII characters which are considered printable by Python. This is a combination of :const:`digits`, :const:`ascii_letters`, :const:`punctuation`, and :const:`whitespace`." +msgstr "Zeichenkette von ASCII-Zeichen, die in Python als druckbar gelten. Dies ist eine Kombination aus :const:`digits`, :const:`ascii_letters`, :const:`punctuation` und :const:`whitespace`." -msgid "" -"By design, :meth:`string.printable.isprintable() ` returns :" -"const:`False`. In particular, ``string.printable`` is not printable in the " -"POSIX sense (see :manpage:`LC_CTYPE `)." -msgstr "" +msgid "By design, :meth:`string.printable.isprintable() ` returns :const:`False`. In particular, ``string.printable`` is not printable in the POSIX sense (see :manpage:`LC_CTYPE `)." +msgstr "Designbedingt gibt :meth:`string.printable.isprintable() ` :const:`False` zurück. Insbesondere ist ``string.printable`` im POSIX-Sinn nicht druckbar (siehe :manpage:`LC_CTYPE `)." -msgid "" -"A string containing all ASCII characters that are considered whitespace. " -"This includes the characters space, tab, linefeed, return, formfeed, and " -"vertical tab." -msgstr "" +msgid "A string containing all ASCII characters that are considered whitespace. This includes the characters space, tab, linefeed, return, formfeed, and vertical tab." +msgstr "Eine Zeichenkette, die alle ASCII-Zeichen enthält, die als Whitespace gelten. Dies umfasst die Zeichen Leerzeichen, Tabulator, Zeilenvorschub (linefeed), Zeilenrücklauf (return), Seitenvorschub (formfeed) und vertikaler Tabulator." msgid "Custom String Formatting" -msgstr "" +msgstr "Benutzerdefinierte Zeichenkettenformatierung" -msgid "" -"The built-in string class provides the ability to do complex variable " -"substitutions and value formatting via the :meth:`~str.format` method " -"described in :pep:`3101`. The :class:`Formatter` class in the :mod:`string` " -"module allows you to create and customize your own string formatting " -"behaviors using the same implementation as the built-in :meth:`~str.format` " -"method." -msgstr "" +msgid "The built-in string class provides the ability to do complex variable substitutions and value formatting via the :meth:`~str.format` method described in :pep:`3101`. The :class:`Formatter` class in the :mod:`string` module allows you to create and customize your own string formatting behaviors using the same implementation as the built-in :meth:`~str.format` method." +msgstr "Die eingebaute String-Klasse bietet die Möglichkeit, komplexe Variablensubstitutionen und Werteformatierungen über die in :pep:`3101` beschriebene Methode :meth:`~str.format` durchzuführen. Die Klasse :class:`Formatter` im Modul :mod:`string` ermöglicht es, dein eigenes Verhalten für die Zeichenkettenformatierung mit derselben Implementierung wie die eingebaute Methode :meth:`~str.format` zu erstellen und anzupassen." msgid "The :class:`Formatter` class has the following public methods:" -msgstr "" +msgstr "Die Klasse :class:`Formatter` hat die folgenden öffentlichen Methoden:" -msgid "" -"The primary API method. It takes a format string and an arbitrary set of " -"positional and keyword arguments. It is just a wrapper that calls :meth:" -"`vformat`." -msgstr "" +msgid "The primary API method. It takes a format string and an arbitrary set of positional and keyword arguments. It is just a wrapper that calls :meth:`vformat`." +msgstr "Die Haupt-API-Methode. Sie nimmt einen Formatstring sowie eine beliebige Menge an Positions- und Schlüsselwort-Argumenten entgegen. Sie ist nur ein Wrapper, der :meth:`vformat` aufruft." -msgid "" -"A format string argument is now :ref:`positional-only `." -msgstr "" +msgid "A format string argument is now :ref:`positional-only `." +msgstr "Ein Formatstring-Argument ist jetzt :ref:`positional-only `." -msgid "" -"This function does the actual work of formatting. It is exposed as a " -"separate function for cases where you want to pass in a predefined " -"dictionary of arguments, rather than unpacking and repacking the dictionary " -"as individual arguments using the ``*args`` and ``**kwargs`` syntax. :meth:" -"`vformat` does the work of breaking up the format string into character data " -"and replacement fields. It calls the various methods described below." -msgstr "" +msgid "This function does the actual work of formatting. It is exposed as a separate function for cases where you want to pass in a predefined dictionary of arguments, rather than unpacking and repacking the dictionary as individual arguments using the ``*args`` and ``**kwargs`` syntax. :meth:`vformat` does the work of breaking up the format string into character data and replacement fields. It calls the various methods described below." +msgstr "Diese Funktion führt die eigentliche Formatierungsarbeit durch. Sie ist als separate Funktion für Fälle verfügbar, in denen du ein vordefiniertes Dictionary von Argumenten übergeben möchtest, anstatt das Dictionary mit der Syntax ``*args`` und ``**kwargs`` als einzelne Argumente zu entpacken und neu zu verpacken. :meth:`vformat` übernimmt das Aufteilen des Formatstrings in Zeichendaten und Ersetzungsfelder. Sie ruft die verschiedenen unten beschriebenen Methoden auf." -msgid "" -"In addition, the :class:`Formatter` defines a number of methods that are " -"intended to be replaced by subclasses:" -msgstr "" +msgid "In addition, the :class:`Formatter` defines a number of methods that are intended to be replaced by subclasses:" +msgstr "Darüber hinaus definiert :class:`Formatter` eine Reihe von Methoden, die dazu gedacht sind, von Unterklassen überschrieben zu werden:" -msgid "" -"Loop over the format_string and return an iterable of tuples " -"(*literal_text*, *field_name*, *format_spec*, *conversion*). This is used " -"by :meth:`vformat` to break the string into either literal text, or " -"replacement fields." -msgstr "" +msgid "Loop over the format_string and return an iterable of tuples (*literal_text*, *field_name*, *format_spec*, *conversion*). This is used by :meth:`vformat` to break the string into either literal text, or replacement fields." +msgstr "Durchläuft den format_string und gibt ein Iterable aus Tupeln (*literal_text*, *field_name*, *format_spec*, *conversion*) zurück. Dies wird von :meth:`vformat` verwendet, um die Zeichenkette entweder in Literaltext oder Ersetzungsfelder zu zerlegen." -msgid "" -"The values in the tuple conceptually represent a span of literal text " -"followed by a single replacement field. If there is no literal text (which " -"can happen if two replacement fields occur consecutively), then " -"*literal_text* will be a zero-length string. If there is no replacement " -"field, then the values of *field_name*, *format_spec* and *conversion* will " -"be ``None``. The value of *field_name* is unmodified and auto-numbering of " -"non-numbered positional fields is done by :meth:`vformat`." -msgstr "" +msgid "The values in the tuple conceptually represent a span of literal text followed by a single replacement field. If there is no literal text (which can happen if two replacement fields occur consecutively), then *literal_text* will be a zero-length string. If there is no replacement field, then the values of *field_name*, *format_spec* and *conversion* will be ``None``. The value of *field_name* is unmodified and auto-numbering of non-numbered positional fields is done by :meth:`vformat`." +msgstr "Die Werte im Tupel repräsentieren konzeptionell einen Abschnitt von Literaltext, gefolgt von einem einzelnen Ersetzungsfeld. Wenn kein Literaltext vorhanden ist (was passieren kann, wenn zwei Ersetzungsfelder aufeinanderfolgen), ist *literal_text* eine Zeichenkette der Länge Null. Wenn kein Ersetzungsfeld vorhanden ist, sind die Werte von *field_name*, *format_spec* und *conversion* gleich ``None``. Der Wert von *field_name* wird nicht verändert und die automatische Nummerierung nicht nummerierter Positionsfelder erfolgt durch :meth:`vformat`." -msgid "" -"Given *field_name*, convert it to an object to be formatted. Auto-numbering " -"of *field_name* returned from :meth:`parse` is done by :meth:`vformat` " -"before calling this method. Returns a tuple (obj, used_key). The default " -"version takes strings of the form defined in :pep:`3101`, such as " -"\"0[name]\" or \"label.title\". *args* and *kwargs* are as passed in to :" -"meth:`vformat`. The return value *used_key* has the same meaning as the " -"*key* parameter to :meth:`get_value`." -msgstr "" +msgid "Given *field_name*, convert it to an object to be formatted. Auto-numbering of *field_name* returned from :meth:`parse` is done by :meth:`vformat` before calling this method. Returns a tuple (obj, used_key). The default version takes strings of the form defined in :pep:`3101`, such as \"0[name]\" or \"label.title\". *args* and *kwargs* are as passed in to :meth:`vformat`. The return value *used_key* has the same meaning as the *key* parameter to :meth:`get_value`." +msgstr "Konvertiert den übergebenen *field_name* in ein zu formatierendes Objekt. Die automatische Nummerierung des von :meth:`parse` zurückgegebenen *field_name* erfolgt durch :meth:`vformat`, bevor diese Methode aufgerufen wird. Gibt ein Tupel (obj, used_key) zurück. Die Standardversion akzeptiert Zeichenketten in dem in :pep:`3101` definierten Format, wie etwa \\\"0[name]\\\" oder \\\"label.title\\\". *args* und *kwargs* entsprechen den an :meth:`vformat` übergebenen Argumenten. Der Rückgabewert *used_key* hat dieselbe Bedeutung wie der Parameter *key* für :meth:`get_value`." -msgid "" -"Retrieve a given field value. The *key* argument will be either an integer " -"or a string. If it is an integer, it represents the index of the positional " -"argument in *args*; if it is a string, then it represents a named argument " -"in *kwargs*." -msgstr "" +msgid "Retrieve a given field value. The *key* argument will be either an integer or a string. If it is an integer, it represents the index of the positional argument in *args*; if it is a string, then it represents a named argument in *kwargs*." +msgstr "Ruft einen gegebenen Feldwert ab. Das Argument *key* ist entweder eine Ganzzahl oder eine Zeichenkette. Wenn es eine Ganzzahl ist, repräsentiert es den Index des Positionsarguments in *args*; wenn es eine Zeichenkette ist, repräsentiert es ein benanntes Argument in *kwargs*." -msgid "" -"The *args* parameter is set to the list of positional arguments to :meth:" -"`vformat`, and the *kwargs* parameter is set to the dictionary of keyword " -"arguments." -msgstr "" +msgid "The *args* parameter is set to the list of positional arguments to :meth:`vformat`, and the *kwargs* parameter is set to the dictionary of keyword arguments." +msgstr "Der Parameter *args* ist auf die Liste der Positionsargumente für :meth:`vformat` gesetzt und der Parameter *kwargs* auf das Dictionary der Schlüsselwort-Argumente." -msgid "" -"For compound field names, these functions are only called for the first " -"component of the field name; subsequent components are handled through " -"normal attribute and indexing operations." -msgstr "" +msgid "For compound field names, these functions are only called for the first component of the field name; subsequent components are handled through normal attribute and indexing operations." +msgstr "Bei zusammengesetzten Feldnamen werden diese Funktionen nur für die erste Komponente des Feldnamens aufgerufen; nachfolgende Komponenten werden über normale Attribut- und Indizierungsoperationen verarbeitet." -msgid "" -"So for example, the field expression '0.name' would cause :meth:`get_value` " -"to be called with a *key* argument of 0. The ``name`` attribute will be " -"looked up after :meth:`get_value` returns by calling the built-in :func:" -"`getattr` function." -msgstr "" +msgid "So for example, the field expression '0.name' would cause :meth:`get_value` to be called with a *key* argument of 0. The ``name`` attribute will be looked up after :meth:`get_value` returns by calling the built-in :func:`getattr` function." +msgstr "So würde beispielsweise der Feldausdruck '0.name' dazu führen, dass :meth:`get_value` mit dem Argument *key* gleich 0 aufgerufen wird. Das Attribut ``name`` wird nach der Rückgabe von :meth:`get_value` durch den Aufruf der eingebauten Funktion :func:`getattr` nachgeschlagen." -msgid "" -"If the index or keyword refers to an item that does not exist, then an :exc:" -"`IndexError` or :exc:`KeyError` should be raised." -msgstr "" +msgid "If the index or keyword refers to an item that does not exist, then an :exc:`IndexError` or :exc:`KeyError` should be raised." +msgstr "Wenn sich der Index oder das Schlüsselwort auf ein Element bezieht, das nicht existiert, sollte ein :exc:`IndexError` oder :exc:`KeyError` ausgelöst werden." -msgid "" -"Implement checking for unused arguments if desired. The arguments to this " -"function is the set of all argument keys that were actually referred to in " -"the format string (integers for positional arguments, and strings for named " -"arguments), and a reference to the *args* and *kwargs* that was passed to " -"vformat. The set of unused args can be calculated from these parameters. :" -"meth:`check_unused_args` is assumed to raise an exception if the check fails." -msgstr "" +msgid "Implement checking for unused arguments if desired. The arguments to this function is the set of all argument keys that were actually referred to in the format string (integers for positional arguments, and strings for named arguments), and a reference to the *args* and *kwargs* that was passed to vformat. The set of unused args can be calculated from these parameters. :meth:`check_unused_args` is assumed to raise an exception if the check fails." +msgstr "Implementiert bei Bedarf die Prüfung auf unbenutzte Argumente. Die Argumente dieser Funktion sind die Menge aller Argument-Schlüssel, auf die im Formatstring tatsächlich verwiesen wurde (Ganzzahlen für Positionsargumente und Zeichenketten für benannte Argumente), sowie eine Referenz auf *args* und *kwargs*, die an vformat übergeben wurden. Die Menge der unbenutzten Argumente kann aus diesen Parametern berechnet werden. Es wird davon ausgegangen, dass :meth:`check_unused_args` eine Ausnahme auslöst, wenn die Prüfung fehlschlägt." -msgid "" -":meth:`format_field` simply calls the global :func:`format` built-in. The " -"method is provided so that subclasses can override it." -msgstr "" +msgid ":meth:`format_field` simply calls the global :func:`format` built-in. The method is provided so that subclasses can override it." +msgstr ":meth:`format_field` ruft einfach die globale eingebaute Funktion :func:`format` auf. Die Methode wird bereitgestellt, damit Unterklassen sie überschreiben können." -msgid "" -"Converts the value (returned by :meth:`get_field`) given a conversion type " -"(as in the tuple returned by the :meth:`parse` method). The default version " -"understands 's' (str), 'r' (repr) and 'a' (ascii) conversion types." -msgstr "" +msgid "Converts the value (returned by :meth:`get_field`) given a conversion type (as in the tuple returned by the :meth:`parse` method). The default version understands 's' (str), 'r' (repr) and 'a' (ascii) conversion types." +msgstr "Konvertiert den Wert (der von :meth:`get_field` zurückgegeben wird) anhand eines Konvertierungstyps (wie in dem von der Methode :meth:`parse` zurückgegebenen Tupel). Die Standardversion unterstützt die Konvertierungstypen 's' (str), 'r' (repr) und 'a' (ascii)." msgid "Format String Syntax" -msgstr "" +msgstr "Formatstring-Syntax" -msgid "" -"The :meth:`str.format` method and the :class:`Formatter` class share the " -"same syntax for format strings (although in the case of :class:`Formatter`, " -"subclasses can define their own format string syntax). The syntax is " -"related to that of :ref:`formatted string literals ` and :ref:" -"`template string literals `, but it is less sophisticated and, in " -"particular, does not support arbitrary expressions in interpolations." -msgstr "" +msgid "The :meth:`str.format` method and the :class:`Formatter` class share the same syntax for format strings (although in the case of :class:`Formatter`, subclasses can define their own format string syntax). The syntax is related to that of :ref:`formatted string literals ` and :ref:`template string literals `, but it is less sophisticated and, in particular, does not support arbitrary expressions in interpolations." +msgstr "Die Methode :meth:`str.format` und die Klasse :class:`Formatter` teilen sich dieselbe Syntax für Formatstrings (obwohl Unterklassen im Fall von :class:`Formatter` ihre eigene Formatstring-Syntax definieren können). Die Syntax ist mit der von :ref:`formatierten Zeichenkettenliteralen ` und :ref:`Template-Zeichenkettenliteralen ` verwandt, ist jedoch weniger komplex und unterstützt insbesondere keine beliebigen Ausdrücke in Interpolationen." -msgid "" -"Format strings contain \"replacement fields\" surrounded by curly braces ``{}" -"``. Anything that is not contained in braces is considered literal text, " -"which is copied unchanged to the output. If you need to include a brace " -"character in the literal text, it can be escaped by doubling: ``{{`` and ``}}" -"``." -msgstr "" +msgid "Format strings contain \"replacement fields\" surrounded by curly braces ``{}``. Anything that is not contained in braces is considered literal text, which is copied unchanged to the output. If you need to include a brace character in the literal text, it can be escaped by doubling: ``{{`` and ``}}``." +msgstr "Formatstrings enthalten „Ersetzungsfelder“, die von geschweiften Klammern ``{}`` umgeben sind. Alles, was nicht in Klammern steht, wird als Literaltext betrachtet und unverändert in die Ausgabe kopiert. Wenn ein Klammerzeichen im Literatext enthalten sein muss, kann es durch Verdopplung maskiert werden: ``{{`` und ``}}``." msgid "The grammar for a replacement field is as follows:" -msgstr "" +msgstr "Die Grammatik für ein Ersetzungsfeld lautet wie folgt:" -msgid "" -"In less formal terms, the replacement field can start with a *field_name* " -"that specifies the object whose value is to be formatted and inserted into " -"the output instead of the replacement field. The *field_name* is optionally " -"followed by a *conversion* field, which is preceded by an exclamation point " -"``'!'``, and a *format_spec*, which is preceded by a colon ``':'``. These " -"specify a non-default format for the replacement value." -msgstr "" +msgid "In less formal terms, the replacement field can start with a *field_name* that specifies the object whose value is to be formatted and inserted into the output instead of the replacement field. The *field_name* is optionally followed by a *conversion* field, which is preceded by an exclamation point ``'!'``, and a *format_spec*, which is preceded by a colon ``':'``. These specify a non-default format for the replacement value." +msgstr "Einfacher ausgedrückt kann das Ersetzungsfeld mit einem *field_name* beginnen, der das Objekt angibt, dessen Wert formatiert und anstelle des Ersetzungsfeldes in die Ausgabe eingefügt werden soll. Auf den *field_name* folgt optional ein *conversion*-Feld, dem ein Ausrufezeichen ``'!'`` vorangestellt ist, und eine *format_spec*, der ein Doppelpunkt ``':'`` vorangestellt ist. Diese geben ein vom Standard abweichendes Format für den Ersetzungswert an." msgid "See also the :ref:`formatspec` section." -msgstr "" +msgstr "Siehe auch den Abschnitt :ref:`formatspec`." -msgid "" -"The *field_name* itself begins with an *arg_name* that is either a number or " -"a keyword. If it's a number, it refers to a positional argument, and if " -"it's a keyword, it refers to a named keyword argument. An *arg_name* is " -"treated as a number if a call to :meth:`str.isdecimal` on the string would " -"return true. If the numerical arg_names in a format string are 0, 1, 2, ... " -"in sequence, they can all be omitted (not just some) and the numbers 0, 1, " -"2, ... will be automatically inserted in that order. Because *arg_name* is " -"not quote-delimited, it is not possible to specify arbitrary dictionary keys " -"(e.g., the strings ``'10'`` or ``':-]'``) within a format string. The " -"*arg_name* can be followed by any number of index or attribute expressions. " -"An expression of the form ``'.name'`` selects the named attribute using :" -"func:`getattr`, while an expression of the form ``'[index]'`` does an index " -"lookup using :meth:`~object.__getitem__`." -msgstr "" +msgid "The *field_name* itself begins with an *arg_name* that is either a number or a keyword. If it's a number, it refers to a positional argument, and if it's a keyword, it refers to a named keyword argument. An *arg_name* is treated as a number if a call to :meth:`str.isdecimal` on the string would return true. If the numerical arg_names in a format string are 0, 1, 2, ... in sequence, they can all be omitted (not just some) and the numbers 0, 1, 2, ... will be automatically inserted in that order. Because *arg_name* is not quote-delimited, it is not possible to specify arbitrary dictionary keys (e.g., the strings ``'10'`` or ``':-]'``) within a format string. The *arg_name* can be followed by any number of index or attribute expressions. An expression of the form ``'.name'`` selects the named attribute using :func:`getattr`, while an expression of the form ``'[index]'`` does an index lookup using :meth:`~object.__getitem__`." +msgstr "Der *field_name* selbst beginnt mit einem *arg_name*, der entweder eine Zahl oder ein Schlüsselwort ist. Wenn es eine Zahl ist, bezieht sie sich auf ein Positionsargument, und wenn es ein Schlüsselwort ist, bezieht es sich auf ein benanntes Schlüsselwort-Argument. Ein *arg_name* wird als Zahl behandelt, wenn ein Aufruf von :meth:`str.isdecimal` auf der Zeichenkette true zurückgeben würde. Wenn die numerischen arg_names in einem Formatstring nacheinander 0, 1, 2, ... lauten, können sie alle weggelassen werden (nicht nur einige), und die Zahlen 0, 1, 2, ... werden automatisch in dieser Reihenfolge eingesetzt. Da *arg_name* nicht in Anführungszeichen steht, ist es nicht möglich, beliebige Dictionary-Schlüssel (z. B. die Zeichenketten ``'10'`` oder ``':-]'``) innerhalb eines Formatstrings anzugeben. Auf den *arg_name* können beliebig viele Index- oder Attributausdrücke folgen. Ein Ausdruck der Form ``'.name'`` wählt das benannte Attribut mittels :func:`getattr` aus, während ein Ausdruck der Form ``'[index]'`` ein Nachschlagen des Index mittels :meth:`~object.__getitem__` durchführt." -msgid "" -"The positional argument specifiers can be omitted for :meth:`str.format`, so " -"``'{} {}'.format(a, b)`` is equivalent to ``'{0} {1}'.format(a, b)``." -msgstr "" +msgid "The positional argument specifiers can be omitted for :meth:`str.format`, so ``'{} {}'.format(a, b)`` is equivalent to ``'{0} {1}'.format(a, b)``." +msgstr "Die Positionsargument-Spezifikatoren können für :meth:`str.format` weggelassen werden, sodass ``'{} {}'.format(a, b)`` äquivalent zu ``'{0} {1}'.format(a, b)`` ist." -msgid "" -"The positional argument specifiers can be omitted for :class:`Formatter`." -msgstr "" +msgid "The positional argument specifiers can be omitted for :class:`Formatter`." +msgstr "Die Positionsargument-Spezifikatoren können für :class:`Formatter` weggelassen werden." msgid "Some simple format string examples::" -msgstr "" +msgstr "Einige einfache Beispiele für Formatstrings::" msgid "" "\"First, thou shalt count to {0}\" # References first positional argument\n" -"\"Bring me a {}\" # Implicitly references the first " -"positional argument\n" +"\"Bring me a {}\" # Implicitly references the first positional argument\n" "\"From {} to {}\" # Same as \"From {0} to {1}\"\n" "\"My quest is {name}\" # References keyword argument 'name'\n" -"\"Weight in tons {0.weight}\" # 'weight' attribute of first positional " -"arg\n" -"\"Units destroyed: {players[0]}\" # First element of keyword argument " -"'players'." +"\"Weight in tons {0.weight}\" # 'weight' attribute of first positional arg\n" +"\"Units destroyed: {players[0]}\" # First element of keyword argument 'players'." msgstr "" +"\"First, thou shalt count to {0}\" # Bezieht sich auf das erste Positionsargument\n" +"\"Bring me a {}\" # Bezieht sich implizit auf das erste Positionsargument\n" +"\"From {} to {}\" # Entspricht \\\"From {0} to {1}\"\n" +"\"My quest is {name}\" # Bezieht sich auf das Schlüsselwort-Argument 'name'\n" +"\"Weight in tons {0.weight}\" # Attribut 'weight' des ersten Positionsarguments\n" +"\"Units destroyed: {players[0]}\" # Erstes Element des Schlüsselwort-Arguments 'players'." -msgid "" -"The *conversion* field causes a type coercion before formatting. Normally, " -"the job of formatting a value is done by the :meth:`~object.__format__` " -"method of the value itself. However, in some cases it is desirable to force " -"a type to be formatted as a string, overriding its own definition of " -"formatting. By converting the value to a string before calling :meth:" -"`~object.__format__`, the normal formatting logic is bypassed." -msgstr "" +msgid "The *conversion* field causes a type coercion before formatting. Normally, the job of formatting a value is done by the :meth:`~object.__format__` method of the value itself. However, in some cases it is desirable to force a type to be formatted as a string, overriding its own definition of formatting. By converting the value to a string before calling :meth:`~object.__format__`, the normal formatting logic is bypassed." +msgstr "Das *conversion*-Feld erzwingt vor der Formatierung eine Typumwandlung. Normalerweise wird die Formatierung eines Wertes von dessen eigener Methode :meth:`~object.__format__` durchgeführt. In einigen Fällen ist es jedoch erwünscht, die Formatierung eines Typs als Zeichenkette zu erzwingen und seine eigene Formatierungsdefinition zu übergehen. Durch das Konvertieren des Wertes in eine Zeichenkette vor dem Aufruf von :meth:`~object.__format__` wird die normale Formatierungslogik umgangen." -msgid "" -"Three conversion flags are currently supported: ``'!s'`` which calls :func:" -"`str` on the value, ``'!r'`` which calls :func:`repr` and ``'!a'`` which " -"calls :func:`ascii`." -msgstr "" +msgid "Three conversion flags are currently supported: ``'!s'`` which calls :func:`str` on the value, ``'!r'`` which calls :func:`repr` and ``'!a'`` which calls :func:`ascii`." +msgstr "Drei Konvertierungsflags werden derzeit unterstützt: ``'!s'``, das :func:`str` für den Wert aufruft, ``'!r'``, das :func:`repr` aufruft, und ``'!a'``, das :func:`ascii` aufruft." msgid "Some examples::" -msgstr "" +msgstr "Einige Beispiele::" msgid "" "\"Harold's a clever {0!s}\" # Calls str() on the argument first\n" "\"Bring out the holy {name!r}\" # Calls repr() on the argument first\n" "\"More {!a}\" # Calls ascii() on the argument first" msgstr "" +"\"Harold's a clever {0!s}\" # Ruft zuerst str() für das Argument auf\n" +"\"Bring out the holy {name!r}\" # Ruft zuerst repr() für das Argument auf\n" +"\"More {!a}\" # Ruft zuerst ascii() für das Argument auf" -msgid "" -"The *format_spec* field contains a specification of how the value should be " -"presented, including such details as field width, alignment, padding, " -"decimal precision and so on. Each value type can define its own " -"\"formatting mini-language\" or interpretation of the *format_spec*." -msgstr "" +msgid "The *format_spec* field contains a specification of how the value should be presented, including such details as field width, alignment, padding, decimal precision and so on. Each value type can define its own \"formatting mini-language\" or interpretation of the *format_spec*." +msgstr "Das Feld *format_spec* enthält eine Spezifikation darüber, wie der Wert dargestellt werden soll, einschließlich Details wie Feldbreite, Ausrichtung, Auffüllung, Dezimalpräzision und so weiter. Jeder Werttyp kann seine eigene „Formatierungs-Minisprache“ oder Interpretation der *format_spec* definieren." -msgid "" -"Most built-in types support a common formatting mini-language, which is " -"described in the next section." -msgstr "" +msgid "Most built-in types support a common formatting mini-language, which is described in the next section." +msgstr "Die meisten eingebauten Typen unterstützen eine gemeinsame Formatierungs-Mini-Sprache, die im nächsten Abschnitt beschrieben wird." -msgid "" -"A *format_spec* field can also include nested replacement fields within it. " -"These nested replacement fields may contain a field name, conversion flag " -"and format specification, but deeper nesting is not allowed. The " -"replacement fields within the format_spec are substituted before the " -"*format_spec* string is interpreted. This allows the formatting of a value " -"to be dynamically specified." -msgstr "" +msgid "A *format_spec* field can also include nested replacement fields within it. These nested replacement fields may contain a field name, conversion flag and format specification, but deeper nesting is not allowed. The replacement fields within the format_spec are substituted before the *format_spec* string is interpreted. This allows the formatting of a value to be dynamically specified." +msgstr "Ein *format_spec*-Feld kann auch verschachtelte Ersetzungsfelder enthalten. Diese verschachtelten Ersetzungsfelder können einen Feldnamen, ein Konvertierungskennzeichen und eine Formatangabe enthalten, eine tiefere Verschachtelung ist jedoch nicht zulässig. Die Ersetzungsfelder innerhalb von *format_spec* werden ersetzt, bevor die *format_spec*-Zeichenkette interpretiert wird. Dies ermöglicht es dir, die Formatierung eines Werts dynamisch anzugeben." msgid "See the :ref:`formatexamples` section for some examples." -msgstr "" +msgstr "Siehe den Abschnitt :ref:`formatexamples` für einige Beispiele." msgid "Format Specification Mini-Language" -msgstr "" +msgstr "Formatspezifikation Mini-Sprache" -msgid "" -"\"Format specifications\" are used within replacement fields contained " -"within a format string to define how individual values are presented (see :" -"ref:`formatstrings`, :ref:`f-strings`, and :ref:`t-strings`). They can also " -"be passed directly to the built-in :func:`format` function. Each " -"formattable type may define how the format specification is to be " -"interpreted." -msgstr "" +msgid "\"Format specifications\" are used within replacement fields contained within a format string to define how individual values are presented (see :ref:`formatstrings`, :ref:`f-strings`, and :ref:`t-strings`). They can also be passed directly to the built-in :func:`format` function. Each formattable type may define how the format specification is to be interpreted." +msgstr "„Formatspezifikationen“ werden innerhalb von Ersetzungsfeldern in einem Format-String verwendet, um zu definieren, wie einzelne Werte dargestellt werden (siehe :ref:`formatstrings`, `:ref:`f-strings` und :ref:`t-strings`). Sie können auch direkt an die eingebaute Funktion :func:`format` übergeben werden. Jeder formatierbare Typ kann festlegen, wie die Formatspezifikation zu interpretieren ist." -msgid "" -"Most built-in types implement the following options for format " -"specifications, although some of the formatting options are only supported " -"by the numeric types." -msgstr "" +msgid "Most built-in types implement the following options for format specifications, although some of the formatting options are only supported by the numeric types." +msgstr "Die meisten eingebauten Typen implementieren die folgenden Optionen für Formatspezifikationen, obwohl einige der Formatierungsoptionen nur von den numerischen Typen unterstützt werden." -msgid "" -"A general convention is that an empty format specification produces the same " -"result as if you had called :func:`str` on the value. A non-empty format " -"specification typically modifies the result." -msgstr "" +msgid "A general convention is that an empty format specification produces the same result as if you had called :func:`str` on the value. A non-empty format specification typically modifies the result." +msgstr "Eine allgemeine Konvention besagt, dass eine leere Formatspezifikation dasselbe Ergebnis erzeugt, wie wenn du :func:`str` für den Wert aufgerufen hättest. Eine nicht leere Formatspezifikation verändert in der Regel das Ergebnis." msgid "The general form of a *standard format specifier* is:" -msgstr "" +msgstr "Die allgemeine Form einer *Standard-Formatspezifikation* ist:" -msgid "" -"If a valid *align* value is specified, it can be preceded by a *fill* " -"character that can be any character and defaults to a space if omitted. It " -"is not possible to use a literal curly brace (\"``{``\" or \"``}``\") as the " -"*fill* character in a :ref:`formatted string literal ` or when " -"using the :meth:`str.format` method. However, it is possible to insert a " -"curly brace with a nested replacement field. This limitation doesn't affect " -"the :func:`format` function." -msgstr "" +msgid "If a valid *align* value is specified, it can be preceded by a *fill* character that can be any character and defaults to a space if omitted. It is not possible to use a literal curly brace (\"``{``\" or \"``}``\") as the *fill* character in a :ref:`formatted string literal ` or when using the :meth:`str.format` method. However, it is possible to insert a curly brace with a nested replacement field. This limitation doesn't affect the :func:`format` function." +msgstr "Wenn ein gültiger *align*-Wert angegeben ist, kann ihm ein *fill*-Zeichen vorangestellt werden, das ein beliebiges Zeichen sein kann und standardmäßig ein Leerzeichen ist, wenn es weggelassen wird. Es ist nicht möglich, eine geschweifte Klammer (\"``{``\" oder \"``}``\") als *fill*-Zeichen in einem :ref:`formatted string literal ` oder bei der Verwendung der :meth:`str.format` Methode zu verwenden. Es ist jedoch möglich, eine geschweifte Klammer mit einem verschachtelten Ersetzungsfeld einzufügen. Diese Einschränkung betrifft die :func:`format`-Funktion nicht." msgid "The meaning of the various alignment options is as follows:" -msgstr "" +msgstr "Die Bedeutung der verschiedenen Ausrichtungsoptionen ist wie folgt:" msgid "Option" -msgstr "" +msgstr "Option" msgid "Meaning" -msgstr "" +msgstr "Bedeutung" msgid "``'<'``" -msgstr "" +msgstr "``'<'``" -msgid "" -"Forces the field to be left-aligned within the available space (this is the " -"default for most objects)." -msgstr "" +msgid "Forces the field to be left-aligned within the available space (this is the default for most objects)." +msgstr "Erzwingt, dass das Feld innerhalb des verfügbaren Platzes linksbündig ausgerichtet wird (dies ist der Standardwert für die meisten Objekte)." msgid "``'>'``" -msgstr "" +msgstr "``'>'``" -msgid "" -"Forces the field to be right-aligned within the available space (this is the " -"default for numbers)." -msgstr "" +msgid "Forces the field to be right-aligned within the available space (this is the default for numbers)." +msgstr "Erzwingt, dass das Feld innerhalb des verfügbaren Platzes rechtsbündig ausgerichtet wird (dies ist der Standard für Zahlen)." msgid "``'='``" -msgstr "" +msgstr "``'='``" -msgid "" -"Forces the padding to be placed after the sign (if any) but before the " -"digits. This is used for printing fields in the form '+000000120'. This " -"alignment option is only valid for numeric types, excluding :class:" -"`complex`. It becomes the default for numbers when '0' immediately precedes " -"the field width." -msgstr "" +msgid "Forces the padding to be placed after the sign (if any) but before the digits. This is used for printing fields in the form '+000000120'. This alignment option is only valid for numeric types, excluding :class:`complex`. It becomes the default for numbers when '0' immediately precedes the field width." +msgstr "Erzwingt, dass die Auffüllung nach dem Vorzeichen (falls vorhanden), aber vor den Ziffern platziert wird. Dies wird für die Ausgabe von Feldern in der Form '+000000120' verwendet. Diese Ausrichtungsoption ist nur für numerische Typen gültig, ausgenommen :class:`complex`. Sie wird für Zahlen standardmäßig verwendet, wenn '0' direkt vor der Feldbreite steht." msgid "``'^'``" -msgstr "" +msgstr "``'^'``" msgid "Forces the field to be centered within the available space." -msgstr "" +msgstr "Erzwingt, dass das Feld innerhalb des verfügbaren Platzes zentriert ausgerichtet wird." -msgid "" -"Note that unless a minimum field width is defined, the field width will " -"always be the same size as the data to fill it, so that the alignment option " -"has no meaning in this case." -msgstr "" +msgid "Note that unless a minimum field width is defined, the field width will always be the same size as the data to fill it, so that the alignment option has no meaning in this case." +msgstr "Beachte, dass die Feldbreite, sofern keine Mindestfeldbreite definiert ist, immer dieselbe Größe wie die darin enthaltenen Daten hat, sodass die Ausrichtungsoption in diesem Fall keine Bedeutung hat." -msgid "" -"The *sign* option is only valid for number types, and can be one of the " -"following:" -msgstr "" +msgid "The *sign* option is only valid for number types, and can be one of the following:" +msgstr "Die Option *sign* ist nur für numerische Typen gültig und kann eine der folgenden sein:" msgid "``'+'``" -msgstr "" +msgstr "``'+'``" -msgid "" -"Indicates that a sign should be used for both positive as well as negative " -"numbers." -msgstr "" +msgid "Indicates that a sign should be used for both positive as well as negative numbers." +msgstr "Gibt an, dass sowohl für positive als auch für negative Zahlen ein Vorzeichen verwendet werden soll." msgid "``'-'``" -msgstr "" +msgstr "``'-'``" -msgid "" -"Indicates that a sign should be used only for negative numbers (this is the " -"default behavior)." -msgstr "" +msgid "Indicates that a sign should be used only for negative numbers (this is the default behavior)." +msgstr "Gibt an, dass nur für negative Zahlen ein Vorzeichen verwendet werden soll (dies ist das Standardverhalten)." msgid "space" -msgstr "" +msgstr "Leerzeichen" -msgid "" -"Indicates that a leading space should be used on positive numbers, and a " -"minus sign on negative numbers." -msgstr "" +msgid "Indicates that a leading space should be used on positive numbers, and a minus sign on negative numbers." +msgstr "Gibt an, dass bei positiven Zahlen ein führendes Leerzeichen und bei negativen Zahlen ein Minuszeichen verwendet werden soll." -msgid "" -"The ``'z'`` option coerces negative zero floating-point values to positive " -"zero after rounding to the format precision. This option is only valid for " -"floating-point presentation types." -msgstr "" +msgid "The ``'z'`` option coerces negative zero floating-point values to positive zero after rounding to the format precision. This option is only valid for floating-point presentation types." +msgstr "Die Option ``'z'`` wandelt negative Null-Gleitkommawerte nach dem Runden auf die Formatpräzision in eine positive Null um. Diese Option ist nur für Gleitkomma-Darstellungstypen gültig." msgid "Added the ``'z'`` option (see also :pep:`682`)." -msgstr "" +msgstr "Die Option ``'z'`` wurde hinzugefügt (siehe auch :pep:`682`)." -msgid "" -"The ``'#'`` option causes the \"alternate form\" to be used for the " -"conversion. The alternate form is defined differently for different types. " -"This option is only valid for integer, float and complex types. For " -"integers, when binary, octal, or hexadecimal output is used, this option " -"adds the respective prefix ``'0b'``, ``'0o'``, ``'0x'``, or ``'0X'`` to the " -"output value. For float and complex the alternate form causes the result of " -"the conversion to always contain a decimal-point character, even if no " -"digits follow it. Normally, a decimal-point character appears in the result " -"of these conversions only if a digit follows it. In addition, for ``'g'`` " -"and ``'G'`` conversions, trailing zeros are not removed from the result." -msgstr "" +msgid "The ``'#'`` option causes the \"alternate form\" to be used for the conversion. The alternate form is defined differently for different types. This option is only valid for integer, float and complex types. For integers, when binary, octal, or hexadecimal output is used, this option adds the respective prefix ``'0b'``, ``'0o'``, ``'0x'``, or ``'0X'`` to the output value. For float and complex the alternate form causes the result of the conversion to always contain a decimal-point character, even if no digits follow it. Normally, a decimal-point character appears in the result of these conversions only if a digit follows it. In addition, for ``'g'`` and ``'G'`` conversions, trailing zeros are not removed from the result." +msgstr "Die Option ``'#'`` bewirkt, dass die \"alternative Form\" für die Umwandlung verwendet wird. Die alternative Form ist für verschiedene Typen unterschiedlich definiert. Diese Option ist nur für die Typen Integer, Float und Complex gültig. Wenn bei Integern eine Binär-, Oktal- oder Hexadezimalausgabe verwendet wird, fügt diese Option dem Ausgabewert das entsprechende Präfix ``'0b'``, ``'0o'``, ``'0x'`` oder ``'0X'`` hinzu. Bei Float und Complex führt die alternative Form dazu, dass das Ergebnis der Umwandlung immer ein Dezimalpunkt-Zeichen enthält, selbst wenn keine Ziffern folgen. Normalerweise erscheint ein Dezimalpunkt-Zeichen im Ergebnis dieser Umwandlungen nur, wenn eine Ziffer folgt. Zudem werden bei ``'g'``- und ``'G'``- Umwandlungen nachstehende Nullen nicht aus dem Ergebnis entfernt." -msgid "" -"The *width* is a decimal integer defining the minimum total field width, " -"including any prefixes, separators, and other formatting characters. If not " -"specified, then the field width will be determined by the content." -msgstr "" +msgid "The *width* is a decimal integer defining the minimum total field width, including any prefixes, separators, and other formatting characters. If not specified, then the field width will be determined by the content." +msgstr "Die Breite *width* ist eine dezimale Ganzzahl, die die minimale Gesamtfeldbreite definiert, einschließlich etwaiger Präfixe, Trennzeichen und anderer Formatierungszeichen. Wenn sie nicht angegeben ist, wird die Feldbreite durch den Inhalt bestimmt." -msgid "" -"When no explicit alignment is given, preceding the *width* field by a zero " -"(``'0'``) character enables sign-aware zero-padding for numeric types, " -"excluding :class:`complex`. This is equivalent to a *fill* character of " -"``'0'`` with an *alignment* type of ``'='``." -msgstr "" +msgid "When no explicit alignment is given, preceding the *width* field by a zero (``'0'``) character enables sign-aware zero-padding for numeric types, excluding :class:`complex`. This is equivalent to a *fill* character of ``'0'`` with an *alignment* type of ``'='``." +msgstr "Wenn keine explizite Ausrichtung angegeben ist, aktiviert eine vorangestellte Null (``'0'``) vor dem Feld *width* eine vorzeichenberücksichtigende Nullauffüllung für numerische Typen, ausgenommen :class:`complex`. Dies entspricht einem *fill*-Zeichen von ``'0'`` mit einem *alignment*-Typ von ``'='``." -msgid "" -"Preceding the *width* field by ``'0'`` no longer affects the default " -"alignment for strings." -msgstr "" +msgid "Preceding the *width* field by ``'0'`` no longer affects the default alignment for strings." +msgstr "Eine vorangestellte ``'0'`` vor dem Feld *width* hat keinen Einfluss mehr auf die Standardausrichtung von Zeichenketten." -msgid "" -"The *precision* is a decimal integer indicating how many digits should be " -"displayed after the decimal point for presentation types ``'f'`` and " -"``'F'``, or before and after the decimal point for presentation types " -"``'g'`` or ``'G'``. For string presentation types the field indicates the " -"maximum field size - in other words, how many characters will be used from " -"the field content. The *precision* is not allowed for integer presentation " -"types." -msgstr "" +msgid "The *precision* is a decimal integer indicating how many digits should be displayed after the decimal point for presentation types ``'f'`` and ``'F'``, or before and after the decimal point for presentation types ``'g'`` or ``'G'``. For string presentation types the field indicates the maximum field size - in other words, how many characters will be used from the field content. The *precision* is not allowed for integer presentation types." +msgstr "Die Präzision (*precision*) ist eine dezimale Ganzzahl, die angibt, wie viele Stellen nach dem Dezimalpunkt bei den Darstellungstypen ``'f'`` und ``'F'`` oder vor und nach dem Dezimalpunkt bei den Darstellungstypen ``'g'`` oder ``'G'`` angezeigt werden sollen. Bei Zeichenketten-Darstellungstypen gibt das Feld die maximale Feldgröße an – mit anderen Worten, wie viele Zeichen aus dem Feldinhalt verwendet werden. Die *precision* ist für Ganzzahl-Darstellungstypen nicht zulässig." -msgid "" -"The *grouping* option after *width* and *precision* fields specifies a digit " -"group separator for the integral and fractional parts of a number " -"respectively. It can be one of the following:" -msgstr "" +msgid "The *grouping* option after *width* and *precision* fields specifies a digit group separator for the integral and fractional parts of a number respectively. It can be one of the following:" +msgstr "Die Option *grouping* nach den Feldern *width* und *precision* gibt jeweils ein Zifferngruppentrennzeichen für den Ganzzahl- und den Nachkommateil einer Zahl an. Sie kann eine der folgenden sein:" msgid "``','``" -msgstr "" +msgstr "``','``" -msgid "" -"Inserts a comma every 3 digits for integer presentation type ``'d'`` and " -"floating-point presentation types, excluding ``'n'``. For other presentation " -"types, this option is not supported." -msgstr "" +msgid "Inserts a comma every 3 digits for integer presentation type ``'d'`` and floating-point presentation types, excluding ``'n'``. For other presentation types, this option is not supported." +msgstr "Fügt alle 3 Ziffern ein Komma ein für den Ganzzahl-Darstellungstyp ``'d'`` und Gleitkomma-Darstellungstypen, ausgenommen ``'n'``. Für andere Darstellungstypen wird diese Option nicht unterstützt." msgid "``'_'``" -msgstr "" +msgstr "``'_'``" -msgid "" -"Inserts an underscore every 3 digits for integer presentation type ``'d'`` " -"and floating-point presentation types, excluding ``'n'``. For integer " -"presentation types ``'b'``, ``'o'``, ``'x'``, and ``'X'``, underscores are " -"inserted every 4 digits. For other presentation types, this option is not " -"supported." -msgstr "" +msgid "Inserts an underscore every 3 digits for integer presentation type ``'d'`` and floating-point presentation types, excluding ``'n'``. For integer presentation types ``'b'``, ``'o'``, ``'x'``, and ``'X'``, underscores are inserted every 4 digits. For other presentation types, this option is not supported." +msgstr "Fügt alle 3 Ziffern einen Unterstrich ein für den Ganzzahl-Darstellungstyp ``'d'`` und Gleitkomma-Darstellungstypen, ausgenommen ``'n'``. Für die Ganzzahl-Darstellungstypen ``'b'``, ``'o'``, ``'x'`` und ``'X'`` werden Unterstriche jeweils nach 4 Ziffern eingefügt. Für andere Darstellungstypen wird diese Option nicht unterstützt." -msgid "" -"For a locale aware separator, use the ``'n'`` presentation type instead." -msgstr "" +msgid "For a locale aware separator, use the ``'n'`` presentation type instead." +msgstr "Verwenden Sie stattdessen den Darstellungstyp ``'n'`` für ein gebietsschemaabhängiges Trennzeichen." msgid "Added the ``','`` option (see also :pep:`378`)." -msgstr "" +msgstr "Die Option ``','`` wurde hinzugefügt (siehe auch :pep:`378`)." msgid "Added the ``'_'`` option (see also :pep:`515`)." -msgstr "" +msgstr "Die Option ``'_'`` wurde hinzugefügt (siehe auch :pep:`515`)." msgid "Support the *grouping* option for the fractional part." -msgstr "" +msgstr "Unterstützung der Option *grouping* für den Nachkommateil." msgid "Finally, the *type* determines how the data should be presented." -msgstr "" +msgstr "Schließlich bestimmt der Typ (*type*), wie die Daten dargestellt werden sollen." msgid "The available string presentation types are:" -msgstr "" +msgstr "Die verfügbaren Zeichenketten-Darstellungstypen sind:" msgid "Type" -msgstr "" +msgstr "Typ" msgid "``'s'``" -msgstr "" +msgstr "``'s'``" msgid "String format. This is the default type for strings and may be omitted." -msgstr "" +msgstr "Zeichenkettenformat. Dies ist der Standardtyp für Zeichenketten und kann weggelassen werden." msgid "None" -msgstr "" +msgstr "None" msgid "The same as ``'s'``." -msgstr "" +msgstr "Gleichbedeutend mit ``'s'``." msgid "The available integer presentation types are:" -msgstr "" +msgstr "Die verfügbaren Ganzzahl-Darstellungstypen sind:" msgid "``'b'``" -msgstr "" +msgstr "``'b'``" msgid "Binary format. Outputs the number in base 2." -msgstr "" +msgstr "Binärformat. Gibt die Zahl zur Basis 2 aus." msgid "``'c'``" -msgstr "" +msgstr "``'c'``" -msgid "" -"Character. Converts the integer to the corresponding unicode character " -"before printing." -msgstr "" +msgid "Character. Converts the integer to the corresponding unicode character before printing." +msgstr "Zeichen. Konvertiert die Ganzzahl vor der Ausgabe in das entsprechende Unicode-Zeichen." msgid "``'d'``" -msgstr "" +msgstr "``'d'``" msgid "Decimal Integer. Outputs the number in base 10." -msgstr "" +msgstr "Dezimalzahl. Gibt die Zahl zur Basis 10 aus." msgid "``'o'``" -msgstr "" +msgstr "``'o'``" msgid "Octal format. Outputs the number in base 8." -msgstr "" +msgstr "Oktalformat. Gibt die Zahl zur Basis 8 aus." msgid "``'x'``" -msgstr "" +msgstr "``'x'``" -msgid "" -"Hex format. Outputs the number in base 16, using lower-case letters for the " -"digits above 9." -msgstr "" +msgid "Hex format. Outputs the number in base 16, using lower-case letters for the digits above 9." +msgstr "Hexadezimalformat. Gibt die Zahl zur Basis 16 aus und verwendet dabei Kleinbuchstaben für die Ziffern über 9." msgid "``'X'``" -msgstr "" +msgstr "``'X'``" -msgid "" -"Hex format. Outputs the number in base 16, using upper-case letters for the " -"digits above 9. In case ``'#'`` is specified, the prefix ``'0x'`` will be " -"upper-cased to ``'0X'`` as well." -msgstr "" +msgid "Hex format. Outputs the number in base 16, using upper-case letters for the digits above 9. In case ``'#'`` is specified, the prefix ``'0x'`` will be upper-cased to ``'0X'`` as well." +msgstr "Hexadezimalformat. Gibt die Zahl zur Basis 16 aus und verwendet dabei Großbuchstaben für die Ziffern über 9. Falls ``'#'`` angegeben ist, wird auch der Präfix ``'0x'`` zu ``'0X'`` großgeschrieben." msgid "``'n'``" -msgstr "" +msgstr "``'n'``" -msgid "" -"Number. This is the same as ``'d'``, except that it uses the current locale " -"setting to insert the appropriate digit group separators." -msgstr "" +msgid "Number. This is the same as ``'d'``, except that it uses the current locale setting to insert the appropriate digit group separators." +msgstr "Zahl. Entspricht ``'d'``, verwendet jedoch die aktuelle Gebietsschema-Einstellung, um die passenden Zifferntrennzeichen einzufügen." msgid "The same as ``'d'``." -msgstr "" +msgstr "Gleichbedeutend mit ``'d'``." -msgid "" -"In addition to the above presentation types, integers can be formatted with " -"the floating-point presentation types listed below (except ``'n'`` and " -"``None``). When doing so, :func:`float` is used to convert the integer to a " -"floating-point number before formatting." -msgstr "" +msgid "In addition to the above presentation types, integers can be formatted with the floating-point presentation types listed below (except ``'n'`` and ``None``). When doing so, :func:`float` is used to convert the integer to a floating-point number before formatting." +msgstr "Zusätzlich zu den oben genannten Darstellungstypen können Ganzzahlen mit den unten aufgeführten Gleitkomma-Darstellungstypen formatiert werden (außer ``'n'`` und ``None``). Dabei wird :func:`float` verwendet, um die Ganzzahl vor der Formatierung in eine Gleitkommazahl zu konvertieren." -msgid "" -"The available presentation types for :class:`float` and :class:`~decimal." -"Decimal` values are:" -msgstr "" +msgid "The available presentation types for :class:`float` and :class:`~decimal.Decimal` values are:" +msgstr "Die verfügbaren Darstellungstypen für :class:`float` und :class:`~decimal.Decimal` Werte sind:" msgid "``'e'``" -msgstr "" +msgstr "``'e'``" -msgid "" -"Scientific notation. For a given precision ``p``, formats the number in " -"scientific notation with the letter 'e' separating the coefficient from the " -"exponent. The coefficient has one digit before and ``p`` digits after the " -"decimal point, for a total of ``p + 1`` significant digits. With no " -"precision given, uses a precision of ``6`` digits after the decimal point " -"for :class:`float`, and shows all coefficient digits for :class:`~decimal." -"Decimal`. If ``p=0``, the decimal point is omitted unless the ``#`` option " -"is used." -msgstr "" +msgid "Scientific notation. For a given precision ``p``, formats the number in scientific notation with the letter 'e' separating the coefficient from the exponent. The coefficient has one digit before and ``p`` digits after the decimal point, for a total of ``p + 1`` significant digits. With no precision given, uses a precision of ``6`` digits after the decimal point for :class:`float`, and shows all coefficient digits for :class:`~decimal.Decimal`. If ``p=0``, the decimal point is omitted unless the ``#`` option is used." +msgstr "Wissenschaftliche Notation. Formatiert die Zahl für eine gegebene Präzision ``p`` in wissenschaftlicher Notation, wobei der Buchstabe 'e' den Koeffizienten vom Exponenten trennt. Der Koeffizient hat eine Ziffer vor und ``p`` Ziffern nach dem Dezimalpunkt, was insgesamt ``p + 1`` signifikante Stellen ergibt. Wenn keine Präzision angegeben ist, wird für :class:`float` eine Präzision von ``6`` Ziffern nach dem Dezimalpunkt verwendet und für :class:`~decimal.Decimal` werden alle Ziffern des Koeffizienten angezeigt. Falls ``p=0`` gilt, wird der Dezimalpunkt weggelassen, es sei denn, die Option ``#`` wird verwendet." msgid "``'E'``" -msgstr "" +msgstr "``'E'``" -msgid "" -"Scientific notation. Same as ``'e'`` except it uses an upper case 'E' as the " -"separator character." -msgstr "" +msgid "Scientific notation. Same as ``'e'`` except it uses an upper case 'E' as the separator character." +msgstr "Wissenschaftliche Notation. Entspricht ``'e'``, verwendet jedoch ein großes 'E' als Trennzeichen." msgid "``'f'``" -msgstr "" +msgstr "``'f'``" -msgid "" -"Fixed-point notation. For a given precision ``p``, formats the number as a " -"decimal number with exactly ``p`` digits following the decimal point. With " -"no precision given, uses a precision of ``6`` digits after the decimal point " -"for :class:`float`, and uses a precision large enough to show all " -"coefficient digits for :class:`~decimal.Decimal`. If ``p=0``, the decimal " -"point is omitted unless the ``#`` option is used." -msgstr "" +msgid "Fixed-point notation. For a given precision ``p``, formats the number as a decimal number with exactly ``p`` digits following the decimal point. With no precision given, uses a precision of ``6`` digits after the decimal point for :class:`float`, and uses a precision large enough to show all coefficient digits for :class:`~decimal.Decimal`. If ``p=0``, the decimal point is omitted unless the ``#`` option is used." +msgstr "Festkommanotation. Formatiert die Zahl für eine gegene Präzision ``p`` als Dezimalzahl mit genau ``p`` Ziffern nach dem Dezimalpunkt. Wenn keine Präzision angegeben ist, wird für :class:`float` eine Präzision von ``6`` Ziffern nach dem Dezimalpunkt verwendet und für :class:`~decimal.Decimal` eine ausreichende Präzision, um alle Ziffern des Koeffizienten anzuzeigen. Falls ``p=0`` gilt, wird der Dezimalpunkt weggelassen, es sei denn, die Option ``#`` wird verwendet." msgid "``'F'``" -msgstr "" +msgstr "``'F'``" -msgid "" -"Fixed-point notation. Same as ``'f'``, but converts ``nan`` to ``NAN`` and " -"``inf`` to ``INF``." -msgstr "" +msgid "Fixed-point notation. Same as ``'f'``, but converts ``nan`` to ``NAN`` and ``inf`` to ``INF``." +msgstr "Festkommanotation. Entspricht ``'f'``, wandelt jedoch ``nan`` in ``NAN`` und ``inf`` in ``INF`` um." msgid "``'g'``" -msgstr "" +msgstr "``'g'``" -msgid "" -"General format. For a given precision ``p >= 1``, this rounds the number to " -"``p`` significant digits and then formats the result in either fixed-point " -"format or in scientific notation, depending on its magnitude. A precision of " -"``0`` is treated as equivalent to a precision of ``1``." -msgstr "" +msgid "General format. For a given precision ``p >= 1``, this rounds the number to ``p`` significant digits and then formats the result in either fixed-point format or in scientific notation, depending on its magnitude. A precision of ``0`` is treated as equivalent to a precision of ``1``." +msgstr "Allgemeines Format. Für eine gegebene Präzision ``p >= 1`` rundet dies die Zahl auf ``p`` signifikante Stellen und formatiert das Ergebnis je nach seiner Größenordnung entweder in Festkommanotation oder in wissenschaftlicher Notation. Eine Präzision von ``0`` wird wie eine Präzision von ``1`` behandelt." -msgid "" -"The precise rules are as follows: suppose that the result formatted with " -"presentation type ``'e'`` and precision ``p-1`` would have exponent " -"``exp``. Then, if ``m <= exp < p``, where ``m`` is -4 for floats and -6 " -"for :class:`Decimals `, the number is formatted with " -"presentation type ``'f'`` and precision ``p-1-exp``. Otherwise, the number " -"is formatted with presentation type ``'e'`` and precision ``p-1``. In both " -"cases insignificant trailing zeros are removed from the significand, and the " -"decimal point is also removed if there are no remaining digits following it, " -"unless the ``'#'`` option is used." -msgstr "" +msgid "The precise rules are as follows: suppose that the result formatted with presentation type ``'e'`` and precision ``p-1`` would have exponent ``exp``. Then, if ``m <= exp < p``, where ``m`` is -4 for floats and -6 for :class:`Decimals `, the number is formatted with presentation type ``'f'`` and precision ``p-1-exp``. Otherwise, the number is formatted with presentation type ``'e'`` and precision ``p-1``. In both cases insignificant trailing zeros are removed from the significand, and the decimal point is also removed if there are no remaining digits following it, unless the ``'#'`` option is used." +msgstr "Die genauen Regeln lauten wie folgt: Angenommen, das mit dem Darstellungstyp ``'e'`` und der Präzision ``p-1`` formatierte Ergebnis hätte den Exponenten ``exp``. Wenn dann ``m <= exp < p`` gilt, wobei ``m`` für Floats -4 und für :class:`Decimals ` -6 ist, wird die Zahl mit dem Darstellungstyp ``'f'`` und der Präzision ``p-1-exp`` formatiert. Andernfalls wird die Zahl mit dem Darstellungstyp ``'e'`` und der Präzision ``p-1`` formatiert. In beiden Fällen werden irrelavante nachstehende Nullen aus der Mantisse entfernt, und auch der Dezimalpunkt wird entfernt, wenn keine weiteren Ziffern folgen, es sei denn, die Option ``'#'`` wird verwendet." -msgid "" -"With no precision given, uses a precision of ``6`` significant digits for :" -"class:`float`. For :class:`~decimal.Decimal`, the coefficient of the result " -"is formed from the coefficient digits of the value; scientific notation is " -"used for values smaller than ``1e-6`` in absolute value and values where the " -"place value of the least significant digit is larger than 1, and fixed-point " -"notation is used otherwise." -msgstr "" +msgid "With no precision given, uses a precision of ``6`` significant digits for :class:`float`. For :class:`~decimal.Decimal`, the coefficient of the result is formed from the coefficient digits of the value; scientific notation is used for values smaller than ``1e-6`` in absolute value and values where the place value of the least significant digit is larger than 1, and fixed-point notation is used otherwise." +msgstr "Wenn keine Präzision angegeben ist, wird für :class:`float` eine Präzision von ``6`` signifikanten Stellen verwendet. Für :class:`~decimal.Decimal` wird der Koeffizient des Ergebnisses aus den Koeffizientenziffern des Werts gebildet; wissenschaftliche Notation wird für Werte verwendet, deren Absolutwert kleiner als ``1e-6`` ist sowie für Werte, bei denen der Stellenwert der niederwertigsten Ziffer größer als 1 ist, andernfalls wird Festkommanotation verwendet." -msgid "" -"Positive and negative infinity, positive and negative zero, and nans, are " -"formatted as ``inf``, ``-inf``, ``0``, ``-0`` and ``nan`` respectively, " -"regardless of the precision." -msgstr "" +msgid "Positive and negative infinity, positive and negative zero, and nans, are formatted as ``inf``, ``-inf``, ``0``, ``-0`` and ``nan`` respectively, regardless of the precision." +msgstr "Positives und negatives Unendlich, positive und negative Null sowie NaNs werden unabhängig von der Präzision als ``inf``, ``-inf``, ``0``, ``-0`` bzw. ``nan`` formatiert." msgid "``'G'``" -msgstr "" +msgstr "``'G'``" -msgid "" -"General format. Same as ``'g'`` except switches to ``'E'`` if the number " -"gets too large. The representations of infinity and NaN are uppercased, too." -msgstr "" +msgid "General format. Same as ``'g'`` except switches to ``'E'`` if the number gets too large. The representations of infinity and NaN are uppercased, too." +msgstr "Allgemeines Format. Entspricht ``'g'``, wechselt jedoch zu ``'E'``, wenn die Zahl zu groß wird. Die Darstellungen von Unendlich und NaN werden ebenfalls in Großbuchstaben ausgegeben." -msgid "" -"Number. This is the same as ``'g'``, except that it uses the current locale " -"setting to insert the appropriate digit group separators for the integral " -"part of a number." -msgstr "" +msgid "Number. This is the same as ``'g'``, except that it uses the current locale setting to insert the appropriate digit group separators for the integral part of a number." +msgstr "Zahl. Entspricht ``'g'``, verwendet jedoch die aktuelle Gebietsschema-Einstellung, um die passenden Zifferntrennzeichen für den Ganzzahlteil einer Zahl einzufügen." msgid "``'%'``" -msgstr "" +msgstr "``'%'``" -msgid "" -"Percentage. Multiplies the number by 100 and displays in fixed (``'f'``) " -"format, followed by a percent sign." -msgstr "" +msgid "Percentage. Multiplies the number by 100 and displays in fixed (``'f'``) format, followed by a percent sign." +msgstr "Prozentsatz. Multipliziert die Zahl mit 100 und zeigt sie im Festkomma-Format (``'f'``) an, gefolgt von einem Prozentzeichen." -msgid "" -"For :class:`float` this is like the ``'g'`` type, except that when fixed-" -"point notation is used to format the result, it always includes at least one " -"digit past the decimal point, and switches to the scientific notation when " -"``exp >= p - 1``. When the precision is not specified, the latter will be " -"as large as needed to represent the given value faithfully." -msgstr "" +msgid "For :class:`float` this is like the ``'g'`` type, except that when fixed-point notation is used to format the result, it always includes at least one digit past the decimal point, and switches to the scientific notation when ``exp >= p - 1``. When the precision is not specified, the latter will be as large as needed to represent the given value faithfully." +msgstr "Für :class:`float` entspricht dies dem Typ ``'g'``, mit dem Unterschied, dass bei der Verwendung der Festkommanotation zur Formatierung des Ergebnisses immer mindestens eine Ziffer nach dem Dezimalpunkt enthalten ist und zur wissenschaftlichen Notation gewechselt wird, wenn ``exp >= p - 1`` gilt. Wenn keine Präzision angegeben ist, wird letztere so groß wie nötig gewählt, um den gegebenen Wert getreu darzustellen." -msgid "" -"For :class:`~decimal.Decimal`, this is the same as either ``'g'`` or ``'G'`` " -"depending on the value of ``context.capitals`` for the current decimal " -"context." -msgstr "" +msgid "For :class:`~decimal.Decimal`, this is the same as either ``'g'`` or ``'G'`` depending on the value of ``context.capitals`` for the current decimal context." +msgstr "Für :class:`~decimal.Decimal` entspricht dies entweder ``'g'`` oder ``'G'``, abhängig vom Wert von ``context.capitals`` des aktuellen Decimal-Kontexts." -msgid "" -"The overall effect is to match the output of :func:`str` as altered by the " -"other format modifiers." -msgstr "" +msgid "The overall effect is to match the output of :func:`str` as altered by the other format modifiers." +msgstr "Der Gesamteffekt besteht darin, der Ausgabe von :func:`str` zu entsprechen, wie sie durch die anderen Formatmodifikatoren geändert wird." -msgid "" -"The result should be correctly rounded to a given precision ``p`` of digits " -"after the decimal point. The rounding mode for :class:`float` matches that " -"of the :func:`round` builtin. For :class:`~decimal.Decimal`, the rounding " -"mode of the current :ref:`context ` will be used." -msgstr "" +msgid "The result should be correctly rounded to a given precision ``p`` of digits after the decimal point. The rounding mode for :class:`float` matches that of the :func:`round` builtin. For :class:`~decimal.Decimal`, the rounding mode of the current :ref:`context ` will be used." +msgstr "Das Ergebnis sollte korrekterweise auf eine gegebene Präzision ``p`` von Ziffern nach dem Dezimalpunkt gerundet werden. Der Rundungsmodus für :class:`float` entspricht dem der eingebauten Funktion :func:`round`. Für :class:`~decimal.Decimal` wird der Rundungsmodus des aktuellen :ref:`Kontexts ` verwendet." -msgid "" -"The available presentation types for :class:`complex` are the same as those " -"for :class:`float` (``'%'`` is not allowed). Both the real and imaginary " -"components of a complex number are formatted as floating-point numbers, " -"according to the specified presentation type. They are separated by the " -"mandatory sign of the imaginary part, the latter being terminated by a ``j`` " -"suffix. If the presentation type is missing, the result will match the " -"output of :func:`str` (complex numbers with a non-zero real part are also " -"surrounded by parentheses), possibly altered by other format modifiers." -msgstr "" +msgid "The available presentation types for :class:`complex` are the same as those for :class:`float` (``'%'`` is not allowed). Both the real and imaginary components of a complex number are formatted as floating-point numbers, according to the specified presentation type. They are separated by the mandatory sign of the imaginary part, the latter being terminated by a ``j`` suffix. If the presentation type is missing, the result will match the output of :func:`str` (complex numbers with a non-zero real part are also surrounded by parentheses), possibly altered by other format modifiers." +msgstr "Die verfügbaren Darstellungstypen für :class:`complex` entsprechen denen für :class:`float` (``'%'`` ist nicht zulässig). Sowohl der Real- als auch der Imaginärteil einer komplexen Zahl werden gemäß dem angegebenen Darstellungstyp als Gleitkommazahlen formatiert. Sie werden durch das obligatorische Vorzeichen des Imaginärteils getrennt, welcher durch ein angehängtes ``j`` abgeschlossen wird. Fehlt der Darstellungstyp, entspricht das Ergebnis der Ausgabe von :func:`str` (komplexe Zahlen mit einem Realteil ungleich Null werden zusätzlich von Klammern umschlossen), eventuell geändert durch andere Formatmodifikatoren." msgid "Format examples" -msgstr "" +msgstr "Formatierungsbeispiele" -msgid "" -"This section contains examples of the :meth:`str.format` syntax and " -"comparison with the old ``%``-formatting." -msgstr "" +msgid "This section contains examples of the :meth:`str.format` syntax and comparison with the old ``%``-formatting." +msgstr "Dieser Abschnitt enthält Beispiele für die :meth:`str.format`-Syntax und einen Vergleich mit der alten ``%``-Formatierung." -msgid "" -"In most of the cases the syntax is similar to the old ``%``-formatting, with " -"the addition of the ``{}`` and with ``:`` used instead of ``%``. For " -"example, ``'%03.2f'`` can be translated to ``'{:03.2f}'``." -msgstr "" +msgid "In most of the cases the syntax is similar to the old ``%``-formatting, with the addition of the ``{}`` and with ``:`` used instead of ``%``. For example, ``'%03.2f'`` can be translated to ``'{:03.2f}'``." +msgstr "In den meisten Fällen ähnelt die Syntax der alten ``%``-Formatierung, mit der Ergänzung von ``{}`` und der Verwendung von ``:`` anstelle von ``%``. Beispielsweise kann ``'%03.2f'`` in ``'{:03.2f}'`` übersetzt werden." -msgid "" -"The new format syntax also supports new and different options, shown in the " -"following examples." -msgstr "" +msgid "The new format syntax also supports new and different options, shown in the following examples." +msgstr "Die neue Format-Syntax unterstützt auch neue und andere Optionen, die in den folgenden Beispielen gezeigt werden." msgid "Accessing arguments by position::" -msgstr "" +msgstr "Zugriff auf Argumente über die Position::" msgid "" ">>> '{0}, {1}, {2}'.format('a', 'b', 'c')\n" @@ -786,32 +485,44 @@ msgid "" "'c, b, a'\n" ">>> '{2}, {1}, {0}'.format(*'abc') # unpacking argument sequence\n" "'c, b, a'\n" -">>> '{0}{1}{0}'.format('abra', 'cad') # arguments' indices can be " -"repeated\n" +">>> '{0}{1}{0}'.format('abra', 'cad') # arguments' indices can be repeated\n" "'abracadabra'" msgstr "" +"\">>> '{0}, {1}, {2}'.format('a', 'b', 'c')\n" +"\"'a, b, c'\n" +"\">>> '{}, {}, {}'.format('a', 'b', 'c') # nur 3.1+\n" +"\"'a, b, c'\n" +"\">>> '{2}, {1}, {0}'.format('a', 'b', 'c')\n" +"\"'c, b, a'\n" +"\">>> '{2}, {1}, {0}'.format(*'abc') # Entpacken einer Argumentsequenz\n" +"\"'c, b, a'\n" +"\">>> '{0}{1}{0}'.format('abra', 'cad') # Indizes der Argumente können wiederholt werden\n" +"\"'abracadabra'" msgid "Accessing arguments by name::" -msgstr "" +msgstr "Zugriff auf Argumente über den Namen::" msgid "" -">>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', " -"longitude='-115.81W')\n" +">>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')\n" "'Coordinates: 37.24N, -115.81W'\n" ">>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}\n" ">>> 'Coordinates: {latitude}, {longitude}'.format(**coord)\n" "'Coordinates: 37.24N, -115.81W'" msgstr "" +">>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')\n" +"\"'Coordinates: 37.24N, -115.81W'\n" +"\">>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}\n" +"\">>> 'Coordinates: {latitude}, {longitude}'.format(**coord)\n" +"\"'Coordinates: 37.24N, -115.81W'" msgid "Accessing arguments' attributes::" -msgstr "" +msgstr "Zugriff auf Attribute von Argumenten::" msgid "" ">>> c = 3-5j\n" ">>> ('The complex number {0} is formed from the real part {0.real} '\n" "... 'and the imaginary part {0.imag}.').format(c)\n" -"'The complex number (3-5j) is formed from the real part 3.0 and the " -"imaginary part -5.0.'\n" +"'The complex number (3-5j) is formed from the real part 3.0 and the imaginary part -5.0.'\n" ">>> class Point:\n" "... def __init__(self, x, y):\n" "... self.x, self.y = x, y\n" @@ -821,27 +532,43 @@ msgid "" ">>> str(Point(4, 2))\n" "'Point(4, 2)'" msgstr "" +"\">>> c = 3-5j\n" +"\">>> ('Die komplexe Zahl {0} besteht aus dem Realteil {0.real} '\n" +"\"... 'und dem Imaginärteil {0.imag}.').format(c)\n" +"\"'Die komplexe Zahl (3-5j) besteht aus dem Realteil 3.0 und dem Imaginärteil -5.0.'\n" +"\">>> class Point:\n" +"\"... def __init__(self, x, y):\n" +"\"... self.x, self.y = x, y\n" +"\"... def __str__(self):\n" +"\"... return 'Point({self.x}, {self.y})'.format(self=self)\n" +"\"...\n" +"\">>> str(Point(4, 2))\n" +"\"'Point(4, 2)'" msgid "Accessing arguments' items::" -msgstr "" +msgstr "Zugriff auf Elemente von Argumenten::" msgid "" ">>> coord = (3, 5)\n" ">>> 'X: {0[0]}; Y: {0[1]}'.format(coord)\n" "'X: 3; Y: 5'" msgstr "" +">>> coord = (3, 5)\n" +">>> 'X: {0[0]}; Y: {0[1]}'.format(coord)\n" +"'X: 3; Y: 5'" msgid "Replacing ``%s`` and ``%r``::" -msgstr "" +msgstr "Ersetzen von ``%s`` und ``%r``::" msgid "" -">>> \"repr() shows quotes: {!r}; str() doesn't: {!s}\".format('test1', " -"'test2')\n" +">>> \"repr() shows quotes: {!r}; str() doesn't: {!s}\".format('test1', 'test2')\n" "\"repr() shows quotes: 'test1'; str() doesn't: test2\"" msgstr "" +">>> \"repr() zeigt Anführungszeichen: {!r}; str() nicht: {!s}\".format('test1', 'test2')\n" +"\"repr() zeigt Anführungszeichen: 'test1'; str() nicht: test2\"" msgid "Aligning the text and specifying a width::" -msgstr "" +msgstr "Ausrichten von Text und Angeben einer Breite::" msgid "" ">>> '{:<30}'.format('left aligned')\n" @@ -853,23 +580,35 @@ msgid "" ">>> '{:*^30}'.format('centered') # use '*' as a fill char\n" "'***********centered***********'" msgstr "" +">>> '{:<30}'.format('linksbündig')\n" +"'linksbündig '\n" +">>> '{:>30}'.format('rechtsbündig')\n" +"' rechtsbündig'\n" +">>> '{:^30}'.format('zentriert')\n" +"' zentriert '\n" +">>> '{:*^30}'.format('zentriert') # '*' als Füllzeichen verwenden\n" +"'**********zentriert***********'" msgid "Replacing ``%+f``, ``%-f``, and ``% f`` and specifying a sign::" -msgstr "" +msgstr "Ersetzen von ``%+f``, ``%-f`` und ``% f`` sowie Angeben eines Vorzeichens::" msgid "" ">>> '{:+f}; {:+f}'.format(3.14, -3.14) # show it always\n" "'+3.140000; -3.140000'\n" ">>> '{: f}; {: f}'.format(3.14, -3.14) # show a space for positive numbers\n" "' 3.140000; -3.140000'\n" -">>> '{:-f}; {:-f}'.format(3.14, -3.14) # show only the minus -- same as '{:" -"f}; {:f}'\n" +">>> '{:-f}; {:-f}'.format(3.14, -3.14) # show only the minus -- same as '{:f}; {:f}'\n" "'3.140000; -3.140000'" msgstr "" +">>> '{:+f}; {:+f}'.format(3.14, -3.14) # immer anzeigen\n" +"'+3.140000; -3.140000'\n" +">>> '{: f}; {: f}'.format(3.14, -3.14) # Leerzeichen für positive Zahlen anzeigen\n" +"' 3.140000; -3.140000'\n" +">>> '{:-f}; {:-f}'.format(3.14, -3.14) # nur das Minus anzeigen -- entspricht '{:f}; {:f}'\n" +"'3.140000; -3.140000'" -msgid "" -"Replacing ``%x`` and ``%o`` and converting the value to different bases::" -msgstr "" +msgid "Replacing ``%x`` and ``%o`` and converting the value to different bases::" +msgstr "Ersetzen von ``%x`` und ``%o`` und Umwandeln des Werts in verschiedene Basen::" msgid "" ">>> # format also supports binary numbers\n" @@ -879,9 +618,15 @@ msgid "" ">>> \"int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}\".format(42)\n" "'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'" msgstr "" +">>> # format unterstützt auch Binärzahlen\n" +">>> \\\"int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}\\\".format(42)\n" +"'int: 42; hex: 2a; oct: 52; bin: 101010'\n" +">>> # mit 0x, 0o oder 0b als Präfix:\n" +">>> \\\"int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}\\\".format(42)\n" +"'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'" msgid "Using the comma or the underscore as a digit group separator::" -msgstr "" +msgstr "Verwendung des Kommas oder Unterstrichs als Tausendertrennzeichen::" msgid "" ">>> '{:,}'.format(1234567890)\n" @@ -899,9 +644,23 @@ msgid "" ">>> '{:,._}'.format(123456789.123456789)\n" "'123,456,789.123_456_79'" msgstr "" +">>> '{:,}'.format(1234567890)\n" +"'1,234,567,890'\n" +">>> '{:_}'.format(1234567890)\n" +"'1_234_567_890'\n" +">>> '{:_b}'.format(1234567890)\n" +"'100_1001_1001_0110_0000_0010_1101_0010'\n" +">>> '{:_x}'.format(1234567890)\n" +"'4996_02d2'\n" +">>> '{:_}'.format(123456789.123456789)\n" +"'123_456_789.12345679'\n" +">>> '{:.,}'.format(123456789.123456789)\n" +"'123456789.123,456,79'\n" +">>> '{:,._}'.format(123456789.123456789)\n" +"'123,456,789.123_456_79'" msgid "Expressing a percentage::" -msgstr "" +msgstr "Angabe eines Prozentsatzes::" msgid "" ">>> points = 19\n" @@ -909,9 +668,13 @@ msgid "" ">>> 'Correct answers: {:.2%}'.format(points/total)\n" "'Correct answers: 86.36%'" msgstr "" +">>> points = 19\n" +">>> total = 22\n" +">>> 'Correct answers: {:.2%}'.format(points/total)\n" +"'Correct answers: 86.36%'" msgid "Using type-specific formatting::" -msgstr "" +msgstr "Verwendung typspezifischer Formatierung::" msgid "" ">>> import datetime\n" @@ -919,9 +682,13 @@ msgid "" ">>> '{:%Y-%m-%d %H:%M:%S}'.format(d)\n" "'2010-07-04 12:15:58'" msgstr "" +">>> import datetime\n" +">>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)\n" +">>> '{:%Y-%m-%d %H:%M:%S}'.format(d)\n" +"'2010-07-04 12:15:58'" msgid "Nesting arguments and more complex examples::" -msgstr "" +msgstr "Verschachteln von Argumenten und komplexere Beispiele::" msgid "" ">>> for align, text in zip('<^>', ['left', 'center', 'right']):\n" @@ -940,8 +707,7 @@ msgid "" ">>> width = 5\n" ">>> for num in range(5,12):\n" "... for base in 'dXob':\n" -"... print('{0:{width}{base}}'.format(num, base=base, width=width), " -"end=' ')\n" +"... print('{0:{width}{base}}'.format(num, base=base, width=width), end=' ')\n" "... print()\n" "...\n" " 5 5 5 101\n" @@ -952,113 +718,89 @@ msgid "" " 10 A 12 1010\n" " 11 B 13 1011" msgstr "" +"\t>>> for align, text in zip('<^>', ['left', 'center', 'right']):\n" +"... '{0:{fill}{align}16}'.format(text, fill=align, align=align)\n" +"...\n" +"'left<<<<<<<<<<<<'\n" +"'^^^^^center^^^^^'\n" +"'>>>>>>>>>>>right'\n" +">>>\n" +">>> octets = [192, 168, 0, 1]\n" +">>> '{:02X}{:02X}{:02X}{:02X}'.format(*octets)\n" +"'C0A80001'\n" +">>> int(_, 16)\n" +"3232235521\n" +">>>\n" +">>> width = 5\n" +">>> for num in range(5,12):\n" +"... for base in 'dXob':\n" +"... print('{0:{width}{base}}'.format(num, base=base, width=width), end=' ')\n" +"... print()\n" +"...\n" +" 5 5 5 101\n" +" 6 6 6 110\n" +" 7 7 7 111\n" +" 8 8 10 1000\n" +" 9 9 11 1001\n" +" 10 A 12 1010\n" +" 11 B 13 1011\t" msgid "Template strings ($-strings)" -msgstr "" +msgstr "Vorlage-Zeichenketten ($-Zeichenketten)" -msgid "" -"The feature described here was introduced in Python 2.4; a simple templating " -"method based upon regular expressions. It predates :meth:`str.format`, :ref:" -"`formatted string literals `, and :ref:`template string literals " -"`." -msgstr "" +msgid "The feature described here was introduced in Python 2.4; a simple templating method based upon regular expressions. It predates :meth:`str.format`, :ref:`formatted string literals `, and :ref:`template string literals `." +msgstr "Die hier beschriebene Funktionalität wurde in Python 2.4 eingeführt; eine einfache Vorlage-Methode (Templating), die auf regulären Ausdrücken basiert. Sie ist älter als :meth:`str.format`, :ref:`formatierte Zeichenkettenliterale ` und :ref:`Vorlage-Zeichenkettenliterale `." -msgid "" -"It is unrelated to template string literals (t-strings), which were " -"introduced in Python 3.14. These evaluate to :class:`string.templatelib." -"Template` objects, found in the :mod:`string.templatelib` module." -msgstr "" +msgid "It is unrelated to template string literals (t-strings), which were introduced in Python 3.14. These evaluate to :class:`string.templatelib.Template` objects, found in the :mod:`string.templatelib` module." +msgstr "Sie steht in keinem Zusammenhang mit Vorlage-Zeichenkettenliteralen (t-strings), die in Python 3.14 eingeführt wurden. Diese werden zu :class:`string.templatelib.Template`-Objekten ausgewertet, die sich im Modul :mod:`string.templatelib` befinden." -msgid "" -"Template strings provide simpler string substitutions as described in :pep:" -"`292`. A primary use case for template strings is for internationalization " -"(i18n) since in that context, the simpler syntax and functionality makes it " -"easier to translate than other built-in string formatting facilities in " -"Python. As an example of a library built on template strings for i18n, see " -"the `flufl.i18n `_ package." -msgstr "" +msgid "Template strings provide simpler string substitutions as described in :pep:`292`. A primary use case for template strings is for internationalization (i18n) since in that context, the simpler syntax and functionality makes it easier to translate than other built-in string formatting facilities in Python. As an example of a library built on template strings for i18n, see the `flufl.i18n `_ package." +msgstr "Vorlage-Zeichenketten bieten einfachere Ersetzungen von Zeichenketten, wie in :pep:`292` beschrieben. Ein Hauptanwendungsfall für Vorlage-Zeichenketten ist die Internationalisierung (i18n), da die einfachere Syntax und Funktionalität in diesem Kontext die Übersetzung im Vergleich zu anderen eingebauten Zeichenketten-Formatierungsmöglichkeiten in Python erleichtert. Ein Beispiel für eine auf Vorlage-Zeichenketten aufbauende Bibliothek für i18n ist das Paket `flufl.i18n `" -msgid "" -"Template strings support ``$``-based substitutions, using the following " -"rules:" -msgstr "" +msgid "Template strings support ``$``-based substitutions, using the following rules:" +msgstr "Vorlage-Zeichenketten unterstützen ``$``-basierte Ersetzungen nach den folgenden Regeln:" msgid "``$$`` is an escape; it is replaced with a single ``$``." -msgstr "" +msgstr "``$$`` ist ein Maskierungszeichen; es wird durch ein einzelnes ``$`` ersetzt." -msgid "" -"``$identifier`` names a substitution placeholder matching a mapping key of " -"``\"identifier\"``. By default, ``\"identifier\"`` is restricted to any " -"case-insensitive ASCII alphanumeric string (including underscores) that " -"starts with an underscore or ASCII letter. The first non-identifier " -"character after the ``$`` character terminates this placeholder " -"specification." -msgstr "" +msgid "``$identifier`` names a substitution placeholder matching a mapping key of ``\"identifier\"``. By default, ``\"identifier\"`` is restricted to any case-insensitive ASCII alphanumeric string (including underscores) that starts with an underscore or ASCII letter. The first non-identifier character after the ``$`` character terminates this placeholder specification." +msgstr "``$identifier`` benennt einen Ersetzungs-Platzhalter, der einem Mapping-Schlüssel von ``\\\"identifier\\\"`` entspricht. Standardmäßig ist ``\\\"identifier\\\"`` auf jede ASCII-alphanumerische Zeichenkette (einschließlich Unterstrichen) ohne Berücksichtigung von Groß-/Kleinschreibung beschränkt, die mit einem Unterstrich oder einem ASCII-Buchstaben beginnt. Das erste Nicht-Bezeichner-Zeichen nach dem ``$``-Zeichen beendet diese Platzhalter-Spezifikation." -msgid "" -"``${identifier}`` is equivalent to ``$identifier``. It is required when " -"valid identifier characters follow the placeholder but are not part of the " -"placeholder, such as ``\"${noun}ification\"``." -msgstr "" +msgid "``${identifier}`` is equivalent to ``$identifier``. It is required when valid identifier characters follow the placeholder but are not part of the placeholder, such as ``\"${noun}ification\"``." +msgstr "``${identifier}`` ist äquivalent zu ``$identifier``. Es ist erforderlich, wenn gültige Bezeichner-Zeichen auf den Platzhalter folgen, aber nicht Teil des Platzhalters sind, wie etwa ``\\\"${noun}ification\\\"``." -msgid "" -"Any other appearance of ``$`` in the string will result in a :exc:" -"`ValueError` being raised." -msgstr "" +msgid "Any other appearance of ``$`` in the string will result in a :exc:`ValueError` being raised." +msgstr "Jedes andere Vorkommen von ``$`` in der Zeichenkette führt dazu, dass ein :exc:`ValueError` ausgelöst wird." -msgid "" -"The :mod:`string` module provides a :class:`Template` class that implements " -"these rules. The methods of :class:`Template` are:" -msgstr "" +msgid "The :mod:`string` module provides a :class:`Template` class that implements these rules. The methods of :class:`Template` are:" +msgstr "Das Modul :mod:`string` stellt eine Klasse :class:`Template` bereit, die diese Regeln implementiert. Die Methoden von :class:`Template` sind:" msgid "The constructor takes a single argument which is the template string." -msgstr "" +msgstr "Der Konstruktor nimmt ein einzelnes Argument entgegen, welches die Vorlage-Zeichenkette ist." -msgid "" -"Performs the template substitution, returning a new string. *mapping* is " -"any dictionary-like object with keys that match the placeholders in the " -"template. Alternatively, you can provide keyword arguments, where the " -"keywords are the placeholders. When both *mapping* and *kwds* are given and " -"there are duplicates, the placeholders from *kwds* take precedence." -msgstr "" +msgid "Performs the template substitution, returning a new string. *mapping* is any dictionary-like object with keys that match the placeholders in the template. Alternatively, you can provide keyword arguments, where the keywords are the placeholders. When both *mapping* and *kwds* are given and there are duplicates, the placeholders from *kwds* take precedence." +msgstr "Führt die Ersetzung der Vorlage durch und gibt eine neue Zeichenkette zurück. *mapping* ist ein beliebiges Dictionary-ähnliches Objekt mit Schlüsseln, die den Platzhaltern in der Vorlage entsprechen. Alternativ können Sie Schlüsselwort-\"Argumente angeben, wobei die Schlüsselwörter die Platzhalter sind. Wenn sowohl *mapping* als auch *kwds* angegeben sind und es Überschneidungen gibt, haben die Platzhalter aus *kwds* Vorrang." -msgid "" -"Like :meth:`substitute`, except that if placeholders are missing from " -"*mapping* and *kwds*, instead of raising a :exc:`KeyError` exception, the " -"original placeholder will appear in the resulting string intact. Also, " -"unlike with :meth:`substitute`, any other appearances of the ``$`` will " -"simply return ``$`` instead of raising :exc:`ValueError`." -msgstr "" +msgid "Like :meth:`substitute`, except that if placeholders are missing from *mapping* and *kwds*, instead of raising a :exc:`KeyError` exception, the original placeholder will appear in the resulting string intact. Also, unlike with :meth:`substitute`, any other appearances of the ``$`` will simply return ``$`` instead of raising :exc:`ValueError`." +msgstr "Wie :meth:`substitute`, außer dass, wenn Platzhalter in *mapping* und *kwds* fehlen, anstelle des Auslösens einer :exc:`KeyError`-Ausnahme der originale Platzhalter unverändert in der resultierenden Zeichenkette erscheint. Auch werden im Gegensatz zu :meth:`substitute` alle anderen Vorkommen von ``$`` einfach als ``$`` zurückgegeben, anstatt einen :exc:`ValueError` auszulösen." -msgid "" -"While other exceptions may still occur, this method is called \"safe\" " -"because it always tries to return a usable string instead of raising an " -"exception. In another sense, :meth:`safe_substitute` may be anything other " -"than safe, since it will silently ignore malformed templates containing " -"dangling delimiters, unmatched braces, or placeholders that are not valid " -"Python identifiers." -msgstr "" +msgid "While other exceptions may still occur, this method is called \"safe\" because it always tries to return a usable string instead of raising an exception. In another sense, :meth:`safe_substitute` may be anything other than safe, since it will silently ignore malformed templates containing dangling delimiters, unmatched braces, or placeholders that are not valid Python identifiers." +msgstr "Während weiterhin andere Ausnahmen auftreten können, wird diese Methode \"safe\" genannt, da sie immer versucht, eine brauchbare Zeichenkette zurückzugeben, anstatt eine Ausnahme auszulösen. In einem anderen Sinne ist :meth:`safe_substitute` möglicherweise alles andere als sicher, da sie stillschweigend fehlerhafte Vorlagen ignoriert, die unvollständige Trennzeichen, unpaarige Klammern oder Platzhalter enthalten, welche keine gültigen Python-Bezeichner sind." -msgid "" -"Returns ``False`` if the template has invalid placeholders that will cause :" -"meth:`substitute` to raise :exc:`ValueError`." -msgstr "" +msgid "Returns ``False`` if the template has invalid placeholders that will cause :meth:`substitute` to raise :exc:`ValueError`." +msgstr "Gibt ``False`` zurück, wenn die Vorlage ungültige Platzhalter enthält, die dazu führen, dass :meth:`substitute` einen :exc:`ValueError` auslöst." -msgid "" -"Returns a list of the valid identifiers in the template, in the order they " -"first appear, ignoring any invalid identifiers." -msgstr "" +msgid "Returns a list of the valid identifiers in the template, in the order they first appear, ignoring any invalid identifiers." +msgstr "Gibt eine Liste der gültigen Bezeichner in der Vorlage in der Reihenfolge ihres ersten Auftretens zurück und ignoriert dabei ungültige Bezeichner." msgid ":class:`Template` instances also provide one public data attribute:" -msgstr "" +msgstr ":class:`Template`-Instanzen stellen außerdem ein öffentliches Datenattribut bereit:" -msgid "" -"This is the object passed to the constructor's *template* argument. In " -"general, you shouldn't change it, but read-only access is not enforced." -msgstr "" +msgid "This is the object passed to the constructor's *template* argument. In general, you shouldn't change it, but read-only access is not enforced." +msgstr "Dies ist das Objekt, das an das *template*-Argument des Konstruktors übergeben wird. Im Allgemeinen sollten Sie es nicht ändern, allerdings wird ein schreibgeschützter Zugriff nicht erzwungen." msgid "Here is an example of how to use a Template::" -msgstr "" +msgstr "Hier ist ein Beispiel für die Verwendung von :class:`Template`::" msgid "" ">>> from string import Template\n" @@ -1077,151 +819,117 @@ msgid "" ">>> Template('$who likes $what').safe_substitute(d)\n" "'tim likes $what'" msgstr "" +">>> from string import Template\n" +">>> s = Template('$who likes $what')\n" +">>> s.substitute(who='tim', what='kung pao')\n" +"'tim likes kung pao'\n" +">>> d = dict(who='tim')\n" +">>> Template('Give $who $100').substitute(d)\n" +"Traceback (most recent call last):\n" +"...\n" +"ValueError: Invalid placeholder in string: line 1, col 11\n" +">>> Template('$who likes $what').substitute(d)\n" +"Traceback (most recent call last):\n" +"...\n" +"KeyError: 'what'\n" +">>> Template('$who likes $what').safe_substitute(d)\n" +"'tim likes $what'" -msgid "" -"Advanced usage: you can derive subclasses of :class:`Template` to customize " -"the placeholder syntax, delimiter character, or the entire regular " -"expression used to parse template strings. To do this, you can override " -"these class attributes:" -msgstr "" +msgid "Advanced usage: you can derive subclasses of :class:`Template` to customize the placeholder syntax, delimiter character, or the entire regular expression used to parse template strings. To do this, you can override these class attributes:" +msgstr "Fortgeschrittene Nutzung: Sie können Unterklassen von :class:`Template` ableiten, um die Platzhalter-Syntax, das Trennzeichen oder den gesamten regulären Ausdruck zum Parsen von Vorlage-Zeichenketten anzupassen. Dazu kannst du diese Klassenattribute überschreiben:" -msgid "" -"*delimiter* -- This is the literal string describing a placeholder " -"introducing delimiter. The default value is ``$``. Note that this should " -"*not* be a regular expression, as the implementation will call :meth:`re." -"escape` on this string as needed. Note further that you cannot change the " -"delimiter after class creation (i.e. a different delimiter must be set in " -"the subclass's class namespace)." -msgstr "" +msgid "*delimiter* -- This is the literal string describing a placeholder introducing delimiter. The default value is ``$``. Note that this should *not* be a regular expression, as the implementation will call :meth:`re.escape` on this string as needed. Note further that you cannot change the delimiter after class creation (i.e. a different delimiter must be set in the subclass's class namespace)." +msgstr "*delimiter* -- Dies ist die Zeichenkette, die das einleitende Trennzeichen eines Platzhalters beschreibt. Der Standardwert ist ``$``. Beachte, dass dies *kein* regulärer Ausdruck sein sollte, da die Implementierung bei Bedarf :meth:`re.escape` auf diese Zeichenkette anwendet. Beachte weiterhin, dass du das Trennzeichen nach der Klassenerstellung nicht mehr ändern kannst (d. h. ein anderes Trennzeichen muss im Klassennamensraum der Unterklasse gesetzt werden)." -msgid "" -"*idpattern* -- This is the regular expression describing the pattern for non-" -"braced placeholders. The default value is the regular expression ``(?a:[_a-" -"z][_a-z0-9]*)``. If this is given and *braceidpattern* is ``None`` this " -"pattern will also apply to braced placeholders." -msgstr "" +msgid "*idpattern* -- This is the regular expression describing the pattern for non-braced placeholders. The default value is the regular expression ``(?a:[_a-z][_a-z0-9]*)``. If this is given and *braceidpattern* is ``None`` this pattern will also apply to braced placeholders." +msgstr "*idpattern* -- Dies ist der reguläre Ausdruck, der das Muster für Platzhalter ohne geschweifte Klammern beschreibt. Der Standardwert ist der reguläre Ausdruck ``(?a:[_a-z][_a-z0-9]*)``. Wenn dieser angegeben ist und *braceidpattern* ``None`` ist, gilt dieses Muster auch für Platzhalter mit geschweiften Klammern." -msgid "" -"Since default *flags* is ``re.IGNORECASE``, pattern ``[a-z]`` can match with " -"some non-ASCII characters. That's why we use the local ``a`` flag here." -msgstr "" +msgid "Since default *flags* is ``re.IGNORECASE``, pattern ``[a-z]`` can match with some non-ASCII characters. That's why we use the local ``a`` flag here." +msgstr "Da standardmäßig *flags* auf ``re.IGNORECASE`` gesetzt ist, kann das Muster ``[a-z]`` auch auf einige Nicht-ASCII-Zeichen passen. Aus diesem Grund wird hier das lokale Flag ``a`` verwendet." -msgid "" -"*braceidpattern* can be used to define separate patterns used inside and " -"outside the braces." -msgstr "" +msgid "*braceidpattern* can be used to define separate patterns used inside and outside the braces." +msgstr "*braceidpattern* kann verwendet werden, um unterschiedliche Muster für die Verwendung innerhalb und außerhalb der geschweiften Klammern zu definieren." -msgid "" -"*braceidpattern* -- This is like *idpattern* but describes the pattern for " -"braced placeholders. Defaults to ``None`` which means to fall back to " -"*idpattern* (i.e. the same pattern is used both inside and outside braces). " -"If given, this allows you to define different patterns for braced and " -"unbraced placeholders." -msgstr "" +msgid "*braceidpattern* -- This is like *idpattern* but describes the pattern for braced placeholders. Defaults to ``None`` which means to fall back to *idpattern* (i.e. the same pattern is used both inside and outside braces). If given, this allows you to define different patterns for braced and unbraced placeholders." +msgstr "*braceidpattern* -- Dies ist wie *idpattern*, beschreibt jedoch das Muster für Platzhalter mit geschweiften Klammern. Der Standardwert ist ``None``, was bedeutet, dass auf *idpattern* zurückgegriffen wird (d. h. dasselbe Muster wird sowohl innerhalb als auch außerhalb von Klammern verwendet). Falls angegeben, ermöglicht dies die Definition unterschiedlicher Muster für Platzhalter mit und ohne geschweifte Klammern." -msgid "" -"*flags* -- The regular expression flags that will be applied when compiling " -"the regular expression used for recognizing substitutions. The default " -"value is ``re.IGNORECASE``. Note that ``re.VERBOSE`` will always be added " -"to the flags, so custom *idpattern*\\ s must follow conventions for verbose " -"regular expressions." -msgstr "" +msgid "*flags* -- The regular expression flags that will be applied when compiling the regular expression used for recognizing substitutions. The default value is ``re.IGNORECASE``. Note that ``re.VERBOSE`` will always be added to the flags, so custom *idpattern*\\ s must follow conventions for verbose regular expressions." +msgstr "*flags* -- Die Flags für reguläre Ausdrücke, die beim Kompilieren des regulären Ausdrucks zur Erkennung von Ersetzungen angewendet werden. Der Standardwert ist ``re.IGNORECASE``. Beachte, dass ``re.VERBOSE`` den Flags immer hinzugefügt wird, weshalb benutzerdefinierte *idpattern* den Konventionen für ausführliche reguläre Ausdrücke entsprechen müssen." -msgid "" -"Alternatively, you can provide the entire regular expression pattern by " -"overriding the class attribute *pattern*. If you do this, the value must be " -"a regular expression object with four named capturing groups. The capturing " -"groups correspond to the rules given above, along with the invalid " -"placeholder rule:" -msgstr "" +msgid "Alternatively, you can provide the entire regular expression pattern by overriding the class attribute *pattern*. If you do this, the value must be a regular expression object with four named capturing groups. The capturing groups correspond to the rules given above, along with the invalid placeholder rule:" +msgstr "Alternativ können Sie das gesamte Muster für den regulären Ausdruck bereitstellen, indem Sie das Klassenattribut *pattern* überschreiben. Wenn du dies tust, muss der Wert ein Objekt eines regulären Ausdrucks mit vier benannten Erfassungsgruppen sein. Die Erfassungsgruppen entsprechen den oben genannten Regeln sowie der Regel für ungültige Platzhalter:" -msgid "" -"*escaped* -- This group matches the escape sequence, e.g. ``$$``, in the " -"default pattern." -msgstr "" +msgid "*escaped* -- This group matches the escape sequence, e.g. ``$$``, in the default pattern." +msgstr "*escaped* -- Diese Gruppe passt auf die Escapesequenz, z.B. ``$$``, im Standardmuster." -msgid "" -"*named* -- This group matches the unbraced placeholder name; it should not " -"include the delimiter in capturing group." -msgstr "" +msgid "*named* -- This group matches the unbraced placeholder name; it should not include the delimiter in capturing group." +msgstr "*named* -- Diese Gruppe passt auf den Namen des Platzhalters ohne geschweifte Klammern; sie sollte das Trennzeichen nicht in der Erfassungsgruppe enthalten." -msgid "" -"*braced* -- This group matches the brace enclosed placeholder name; it " -"should not include either the delimiter or braces in the capturing group." -msgstr "" +msgid "*braced* -- This group matches the brace enclosed placeholder name; it should not include either the delimiter or braces in the capturing group." +msgstr "*braced* -- Diese Gruppe passt auf den in geschweifte Klammern eingeschlossenen Namen des Platzhalters; sie sollte weder das Trennzeichen noch die Klammern in der Erfassungsgruppe enthalten." -msgid "" -"*invalid* -- This group matches any other delimiter pattern (usually a " -"single delimiter), and it should appear last in the regular expression." -msgstr "" +msgid "*invalid* -- This group matches any other delimiter pattern (usually a single delimiter), and it should appear last in the regular expression." +msgstr "*invalid* -- Diese Gruppe passt auf jedes andere Trennzeichenmuster (normalerweise ein einzelnes Trennzeichen) und sollte als Letztes im regulären Ausdruck stehen." -msgid "" -"The methods on this class will raise :exc:`ValueError` if the pattern " -"matches the template without one of these named groups matching." -msgstr "" +msgid "The methods on this class will raise :exc:`ValueError` if the pattern matches the template without one of these named groups matching." +msgstr "Die Methoden dieser Klasse lösen :exc:`ValueError` aus, wenn das Muster auf die Vorlage passt, ohne dass eine dieser benannten Gruppen übereinstimmt." msgid "Helper functions" -msgstr "" +msgstr "Hilfsfunktionen" -msgid "" -"Split the argument into words using :meth:`str.split`, capitalize each word " -"using :meth:`str.capitalize`, and join the capitalized words using :meth:" -"`str.join`. If the optional second argument *sep* is absent or ``None``, " -"runs of whitespace characters are replaced by a single space and leading and " -"trailing whitespace are removed, otherwise *sep* is used to split and join " -"the words." -msgstr "" +msgid "Split the argument into words using :meth:`str.split`, capitalize each word using :meth:`str.capitalize`, and join the capitalized words using :meth:`str.join`. If the optional second argument *sep* is absent or ``None``, runs of whitespace characters are replaced by a single space and leading and trailing whitespace are removed, otherwise *sep* is used to split and join the words." +msgstr "Teilt das Argument mithilfe von :meth:`str.split` in Wörter auf, schreibt jedes Wort mithilfe von :meth:`str.capitalize` groß und fügt die großgeschriebenen Wörter mit :meth:`str.join` wieder zusammen. Wenn das optionale zweite Argument *sep* fehlt oder ``None`` ist, werden Abfolgen von Whitespace-Zeichen durch ein einzelnes Leerzeichen ersetzt und führende sowie abschließende Whitespaces entfernt; andernfalls wird *sep* zum Aufteilen und Zusammenfügen der Wörter verwendet." msgid "{} (curly brackets)" -msgstr "" +msgstr "{} (geschweifte Klammern)" msgid "in string formatting" -msgstr "" +msgstr "bei der Zeichenketten-Formatierung" msgid ". (dot)" -msgstr "" +msgstr ". (Punkt)" msgid "[] (square brackets)" -msgstr "" +msgstr "[] (eckige Klammern)" msgid "! (exclamation)" -msgstr "" +msgstr "! (Ausrufezeichen)" msgid ": (colon)" -msgstr "" +msgstr ": (Doppelpunkt)" msgid "< (less)" -msgstr "" +msgstr "< (kleiner als)" msgid "> (greater)" -msgstr "" +msgstr "> (größer als)" msgid "= (equals)" -msgstr "" +msgstr "= (Gleichheitszeichen)" msgid "^ (caret)" -msgstr "" +msgstr "^ (Zirkumflex)" msgid "+ (plus)" -msgstr "" +msgstr "+ (Plus)" msgid "- (minus)" -msgstr "" +msgstr "- (Minus)" msgid "z" -msgstr "" +msgstr "z" msgid "# (hash)" -msgstr "" +msgstr "# (Hash)" msgid ", (comma)" -msgstr "" +msgstr ", (Komma)" msgid "_ (underscore)" -msgstr "" +msgstr "_ (Unterstrich)" msgid "$ (dollar)" -msgstr "" +msgstr "$ (Dollar)" msgid "in template strings" -msgstr "" +msgstr "in Vorlage-Zeichenketten" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index d6503ac..7468dd4 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -6,14 +6,13 @@ # Translators: # python-doc bot, 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-25 14:12+0000\n" -"PO-Revision-Date: 2025-09-16 00:02+0000\n" -"Last-Translator: python-doc bot, 2025\n" +"PO-Revision-Date: 2026-08-09 00:02+0000\n" +"Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,126 +21,64 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Appendix" -msgstr "" +msgstr "Anhang" msgid "Interactive Mode" -msgstr "" +msgstr "Interaktiver Modus" -msgid "" -"There are two variants of the interactive :term:`REPL`. The classic basic " -"interpreter is supported on all platforms with minimal line control " -"capabilities." -msgstr "" +msgid "There are two variants of the interactive :term:`REPL`. The classic basic interpreter is supported on all platforms with minimal line control capabilities." +msgstr "Es gibt zwei Varianten der interaktiven :term:`REPL`. Der klassische einfache Interpreter wird auf allen Plattformen mit minimalen Möglichkeiten zur Zeilensteuerung unterstützt." -msgid "" -"On Windows, or Unix-like systems with :mod:`curses` support, a new " -"interactive shell is used by default since Python 3.13. This one supports " -"color, multiline editing, history browsing, and paste mode. To disable " -"color, see :ref:`using-on-controlling-color` for details. Function keys " -"provide some additional functionality. :kbd:`F1` enters the interactive help " -"browser :mod:`pydoc`. :kbd:`F2` allows for browsing command-line history " -"with neither output nor the :term:`>>>` and :term:`...` prompts. :kbd:`F3` " -"enters \"paste mode\", which makes pasting larger blocks of code easier. " -"Press :kbd:`F3` to return to the regular prompt." -msgstr "" +msgid "On Windows, or Unix-like systems with :mod:`curses` support, a new interactive shell is used by default since Python 3.13. This one supports color, multiline editing, history browsing, and paste mode. To disable color, see :ref:`using-on-controlling-color` for details. Function keys provide some additional functionality. :kbd:`F1` enters the interactive help browser :mod:`pydoc`. :kbd:`F2` allows for browsing command-line history with neither output nor the :term:`>>>` and :term:`...` prompts. :kbd:`F3` enters \"paste mode\", which makes pasting larger blocks of code easier. Press :kbd:`F3` to return to the regular prompt." +msgstr "Auf Windows oder Unix-ähnlichen Systemen mit Unterstützung für :mod:`curses` wird seit Python 3.13 standardmäßig eine neue interaktive Shell verwendet. Diese unterstützt Farben, mehrzeilige Bearbeitung, das Durchsuchen des Verlaufs und einen Einfügemodus. Um Farben zu deaktivieren, siehe :ref:`using-on-controlling-color` für Details. Funktionstasten bieten zusätzliche Funktionen. :kbd:`F1` öffnet den interaktiven Hilfe-Browser :mod:`pydoc`. :kbd:`F2` ermöglicht das Durchsuchen des Befehlszeilenverlaufs ohne Ausgaben und ohne die Prompts :term:`>>>` und :term:`...`. :kbd:`F3` aktiviert den \"Einfügemodus\", der das Einfügen größerer Codeblöcke erleichtert. Drücke :kbd:`F3`, um zum regulären Prompt zurückzukehren." -msgid "" -"When using the new interactive shell, exit the shell by typing :kbd:`exit` " -"or :kbd:`quit`. Adding call parentheses after those commands is not required." -msgstr "" +msgid "When using the new interactive shell, exit the shell by typing :kbd:`exit` or :kbd:`quit`. Adding call parentheses after those commands is not required." +msgstr "Bei Verwendung der neuen interaktiven Shell beendest du diese durch Eingabe von :kbd:`exit` oder :kbd:`quit`. Das Hinzufügen von Aufrufklammern nach diesen Befehlen ist nicht erforderlich." -msgid "" -"If the new interactive shell is not desired, it can be disabled via the :" -"envvar:`PYTHON_BASIC_REPL` environment variable." -msgstr "" +msgid "If the new interactive shell is not desired, it can be disabled via the :envvar:`PYTHON_BASIC_REPL` environment variable." +msgstr "Wenn die neue interaktive Shell nicht gewünscht ist, kann sie über die Umgebungsvariable :envvar:`PYTHON_BASIC_REPL` deaktiviert werden." msgid "Error Handling" -msgstr "" +msgstr "Fehlerbehandlung" -msgid "" -"When an error occurs, the interpreter prints an error message and a stack " -"trace. In interactive mode, it then returns to the primary prompt; when " -"input came from a file, it exits with a nonzero exit status after printing " -"the stack trace. (Exceptions handled by an :keyword:`except` clause in a :" -"keyword:`try` statement are not errors in this context.) Some errors are " -"unconditionally fatal and cause an exit with a nonzero exit status; this " -"applies to internal inconsistencies and some cases of running out of " -"memory. All error messages are written to the standard error stream; normal " -"output from executed commands is written to standard output." -msgstr "" +msgid "When an error occurs, the interpreter prints an error message and a stack trace. In interactive mode, it then returns to the primary prompt; when input came from a file, it exits with a nonzero exit status after printing the stack trace. (Exceptions handled by an :keyword:`except` clause in a :keyword:`try` statement are not errors in this context.) Some errors are unconditionally fatal and cause an exit with a nonzero exit status; this applies to internal inconsistencies and some cases of running out of memory. All error messages are written to the standard error stream; normal output from executed commands is written to standard output." +msgstr "Wenn ein Fehler auftritt, gibt der Interpreter eine Fehlermeldung und einen Stacktrace aus. Im interaktiven Modus kehrt er anschließend zum primären Prompt zurück; stammte die Eingabe aus einer Datei, beendet er sich nach der Ausgabe des Stacktrace mit einem Exit-Status ungleich null. (Ausnahmen, die durch eine :keyword:`except`-Klausel in einer :keyword:`try`-Anweisung behandelt werden, sind in diesem Kontext keine Fehler.) Einige Fehler sind ausnahmslos fatal und führen zu einem Beenden mit einem Exit-Status ungleich null; dies gilt für interne Inkonsistenzen und einige Fälle von Speicherbrauch.Alle Fehlermeldungen werden in den Standard-Fehlerstrom geschrieben, die normale Ausgabe der ausgeführten Befehle wird in die Standardausgabe geschrieben." -msgid "" -"Typing the interrupt character (usually :kbd:`Control-C` or :kbd:`Delete`) " -"to the primary or secondary prompt cancels the input and returns to the " -"primary prompt. [#]_ Typing an interrupt while a command is executing raises " -"the :exc:`KeyboardInterrupt` exception, which may be handled by a :keyword:" -"`try` statement." -msgstr "" +msgid "Typing the interrupt character (usually :kbd:`Control-C` or :kbd:`Delete`) to the primary or secondary prompt cancels the input and returns to the primary prompt. [#]_ Typing an interrupt while a command is executing raises the :exc:`KeyboardInterrupt` exception, which may be handled by a :keyword:`try` statement." +msgstr "Die Eingabe des Unterbrechungszeichens (normalerweise :kbd:`Strg-C` oder :kbd:`Entf`) am primären oder sekundären Prompt bricht die Eingabe ab und kehrt zum primären Prompt zurück. [#]_ Das Auslösen einer Unterbrechung, während ein Befehl ausgeführt wird, löst die Ausnahme :exc:`KeyboardInterrupt` aus, die durch eine :keyword:`try`-Anweisung behandelt werden kann." msgid "Executable Python Scripts" -msgstr "" +msgstr "Ausführbare Python-Skripte" -msgid "" -"On BSD'ish Unix systems, Python scripts can be made directly executable, " -"like shell scripts, by putting the line ::" -msgstr "" +msgid "On BSD'ish Unix systems, Python scripts can be made directly executable, like shell scripts, by putting the line ::" +msgstr "Auf BSD-ähnlichen Unix-Systemen können Python-Skripte direkt ausführbar gemacht werden, genau wie Shell-Skripte, indem man die Zeile ::" msgid "#!/usr/bin/env python3" -msgstr "" +msgstr "#!/usr/bin/env python3" -msgid "" -"(assuming that the interpreter is on the user's :envvar:`PATH`) at the " -"beginning of the script and giving the file an executable mode. The ``#!`` " -"must be the first two characters of the file. On some platforms, this first " -"line must end with a Unix-style line ending (``'\\n'``), not a Windows " -"(``'\\r\\n'``) line ending. Note that the hash, or pound, character, " -"``'#'``, is used to start a comment in Python." -msgstr "" +msgid "(assuming that the interpreter is on the user's :envvar:`PATH`) at the beginning of the script and giving the file an executable mode. The ``#!`` must be the first two characters of the file. On some platforms, this first line must end with a Unix-style line ending (``'\\n'``), not a Windows (``'\\r\\n'``) line ending. Note that the hash, or pound, character, ``'#'``, is used to start a comment in Python." +msgstr "(unter der Annahme, dass sich der Interpreter im :envvar:`PATH` des Benutzers befindet) an den Anfang des Skripts setzt und der Datei Rechte zur Ausführung gibt. Die Zeichen ``#!`` müssen die ersten beiden Zeichen der Datei sein. Auf einigen Plattformen muss diese erste Zeile mit einem Unix-Zeilenende (``'\\n'``) und nicht mit einem Windows-Zeilenende (``'\\r\\n'``) enden. Beachte, dass das Rautezeichen ``'#'`` in Python verwendet wird, um einen Kommentar zu beginnen." -msgid "" -"The script can be given an executable mode, or permission, using the :" -"program:`chmod` command." -msgstr "" +msgid "The script can be given an executable mode, or permission, using the :program:`chmod` command." +msgstr "Das Skript kann mithilfe des Befehls :program:`chmod` ausführbar gemacht werden." msgid "$ chmod +x myscript.py" -msgstr "" +msgstr "$ chmod +x myscript.py" -msgid "" -"On Windows systems, there is no notion of an \"executable mode\". The " -"Python installer automatically associates ``.py`` files with ``python.exe`` " -"so that a double-click on a Python file will run it as a script. The " -"extension can also be ``.pyw``, in that case, the console window that " -"normally appears is suppressed." -msgstr "" +msgid "On Windows systems, there is no notion of an \"executable mode\". The Python installer automatically associates ``.py`` files with ``python.exe`` so that a double-click on a Python file will run it as a script. The extension can also be ``.pyw``, in that case, the console window that normally appears is suppressed." +msgstr "Auf Windows-Systemen gibt es kein Konzept eines \"Ausführungsmodus\". Der Python-Installer verknüpft ``.py``-Dateien automatisch mit ``python.exe``, sodass ein Doppelklick auf eine Python-Datei diese als Skript ausführt. Die Dateiendung kann auch ``.pyw`` sein; in diesem Fall wird das normalerweise erscheinende Konsolenfenster unterdrückt." msgid "The Interactive Startup File" -msgstr "" +msgstr "Die interaktive Startdatei" -msgid "" -"When you use Python interactively, it is frequently handy to have some " -"standard commands executed every time the interpreter is started. You can " -"do this by setting an environment variable named :envvar:`PYTHONSTARTUP` to " -"the name of a file containing your start-up commands. This is similar to " -"the :file:`.profile` feature of the Unix shells." -msgstr "" +msgid "When you use Python interactively, it is frequently handy to have some standard commands executed every time the interpreter is started. You can do this by setting an environment variable named :envvar:`PYTHONSTARTUP` to the name of a file containing your start-up commands. This is similar to the :file:`.profile` feature of the Unix shells." +msgstr "Wenn du Python interaktiv nutzt, ist es oft praktisch, bei jedem Start des Interpreters einige Standardbefehle ausführen zu lassen. Du kannst dies erreichen, indem du eine Umgebungsvariable namens :envvar:`PYTHONSTARTUP` auf den Namen einer Datei setzt, die deine Startbefehle enthält. Dies ähnelt der :file:`.profile`-Funktion von Unix-Shells." -msgid "" -"This file is only read in interactive sessions, not when Python reads " -"commands from a script, and not when :file:`/dev/tty` is given as the " -"explicit source of commands (which otherwise behaves like an interactive " -"session). It is executed in the same namespace where interactive commands " -"are executed, so that objects that it defines or imports can be used without " -"qualification in the interactive session. You can also change the prompts " -"``sys.ps1`` and ``sys.ps2`` in this file." -msgstr "" +msgid "This file is only read in interactive sessions, not when Python reads commands from a script, and not when :file:`/dev/tty` is given as the explicit source of commands (which otherwise behaves like an interactive session). It is executed in the same namespace where interactive commands are executed, so that objects that it defines or imports can be used without qualification in the interactive session. You can also change the prompts ``sys.ps1`` and ``sys.ps2`` in this file." +msgstr "Diese Datei wird nur in interaktiven Sitzungen gelesen, nicht wenn Python Befehle aus einem Skript liest und nicht, wenn :file:`/dev/tty` als explizite Quelle für Befehle angegeben wird (was sich ansonsten wie eine interaktive Sitzung verhält). Sie wird im selben Namensraum ausgeführt, in dem interaktive Befehle ausgeführt werden, sodass darin definierte oder importierte Objekte ohne Pfadangabe in der interaktiven Sitzung verwendet werden können. Du kannst in dieser Datei auch die Prompts ``sys.ps1`` und ``sys.ps2`` ändern." -msgid "" -"If you want to read an additional start-up file from the current directory, " -"you can program this in the global start-up file using code like ``if os." -"path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())``. If you " -"want to use the startup file in a script, you must do this explicitly in the " -"script::" -msgstr "" +msgid "If you want to read an additional start-up file from the current directory, you can program this in the global start-up file using code like ``if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())``. If you want to use the startup file in a script, you must do this explicitly in the script::" +msgstr "Wenn du eine zusätzliche Startdatei aus dem aktuellen Verzeichnis lesen möchtest, kannst du dies in der globalen Startdatei mit Code wie ``if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())`` programmieren. Wenn du die Startdatei in einem Skript verwenden möchtest, musst du dies explizit im Skript tun::" msgid "" "import os\n" @@ -151,39 +88,36 @@ msgid "" " startup_file = fobj.read()\n" " exec(startup_file)" msgstr "" +"import os\n" +"filename = os.environ.get('PYTHONSTARTUP')\n" +"if filename and os.path.isfile(filename):\n" +" with open(filename) as fobj:\n" +" startup_file = fobj.read()\n" +" exec(startup_file)" msgid "The Customization Modules" -msgstr "" +msgstr "Die Anpassungsmodule" -msgid "" -"Python provides two hooks to let you customize it: :index:`sitecustomize` " -"and :index:`usercustomize`. To see how it works, you need first to find the " -"location of your user site-packages directory. Start Python and run this " -"code::" -msgstr "" +msgid "Python provides two hooks to let you customize it: :index:`sitecustomize` and :index:`usercustomize`. To see how it works, you need first to find the location of your user site-packages directory. Start Python and run this code::" +msgstr "Python bietet zwei Hooks zur Anpassung: :index:`sitecustomize` und :index:`usercustomize`. Um zu sehen, wie das funktioniert, musst du zuerst den Pfad deines benutzerbezogenen site-packages-Verzeichnisses finden. Starte Python und führe diesen Code aus::" msgid "" ">>> import site\n" ">>> site.getusersitepackages()\n" "'/home/user/.local/lib/python3.x/site-packages'" msgstr "" +">>> import site\n" +">>> site.getusersitepackages()\n" +"'/home/user/.local/lib/python3.x/site-packages'" -msgid "" -"Now you can create a file named :file:`usercustomize.py` in that directory " -"and put anything you want in it. It will affect every invocation of Python, " -"unless it is started with the :option:`-s` option to disable the automatic " -"import." -msgstr "" +msgid "Now you can create a file named :file:`usercustomize.py` in that directory and put anything you want in it. It will affect every invocation of Python, unless it is started with the :option:`-s` option to disable the automatic import." +msgstr "Jetzt kannst du in diesem Verzeichnis eine Datei namens :file:`usercustomize.py` erstellen und beliebig füllen. Sie wirkt sich auf jeden Aufruf von Python aus, es sei denn, es wird mit der Option :option:`-s` gestartet, um den automatischen Import zu deaktivieren." -msgid "" -":index:`sitecustomize` works in the same way, but is typically created by an " -"administrator of the computer in the global site-packages directory, and is " -"imported before :index:`usercustomize`. See the documentation of the :mod:" -"`site` module for more details." -msgstr "" +msgid ":index:`sitecustomize` works in the same way, but is typically created by an administrator of the computer in the global site-packages directory, and is imported before :index:`usercustomize`. See the documentation of the :mod:`site` module for more details." +msgstr ":index:`sitecustomize` funktioniert auf die gleiche Weise, wird aber typischerweise von einem Administrator des Computers im globalen site-packages-Verzeichnis erstellt und vor :index:`usercustomize` importiert. Siehe die Dokumentation des :mod:`site`-Moduls für weitere Details." msgid "Footnotes" msgstr "Fußnoten" msgid "A problem with the GNU Readline package may prevent this." -msgstr "" +msgstr "Ein Problem mit dem GNU-Readline-Paket kann dies verhindern." diff --git a/tutorial/appetite.po b/tutorial/appetite.po index 375d7f8..5c38e2c 100644 --- a/tutorial/appetite.po +++ b/tutorial/appetite.po @@ -1,15 +1,14 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. +# FIRST AUTHOR <142266608+sba72@users.noreply.github.com>, 2026. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-25 14:12+0000\n" -"PO-Revision-Date: 2025-09-16 00:02+0000\n" +"PO-Revision-Date: 2026-07-31 00:00+0000\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,7 +17,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Whetting Your Appetite" -msgstr "" +msgstr "Appetitanreger" msgid "" "If you do much work on computers, eventually you find that there's some task " @@ -27,6 +26,12 @@ msgid "" "of photo files in a complicated way. Perhaps you'd like to write a small " "custom database, or a specialized GUI application, or a simple game." msgstr "" +"Wenn du viel am Computer arbeitest, stellst du irgendwann fest, dass du " +"bestimmte Aufgaben gerne automatisieren würdest. Du möchtest beispielsweise " +"Suchen und Ersetzen in einer großen Anzahl von Textdateien durchführen " +"oder eine Reihe von Fotodateien auf komplizierte Weise umbenennen und " +"umstrukturieren. Vielleicht möchtest du eine kleine eigene Datenbank, eine " +"spezielle GUI-Anwendung oder ein einfaches Spiel schreiben." msgid "" "If you're a professional software developer, you may have to work with " @@ -36,9 +41,16 @@ msgid "" "written a program that could use an extension language, and you don't want " "to design and implement a whole new language for your application." msgstr "" +"Wenn du beruflich Software entwickelst, musst du vielleicht mit mehreren C/C++ " +"oder Java-Bibliotheken arbeiten, findest aber den üblichen Zyklus aus " +"Schreiben, Kompilieren, Testen und erneutem Kompilieren zu langsam. Vielleicht " +"schreibst du eine Testsuite für eine solche Bibliothek und empfindest das " +"Erstellen des Testcodes als mühsam. Oder du hast ein Programm geschrieben, das " +"eine Erweiterungssprache gebrauchen könnte, möchtest aber nicht eine völlig neue " +"Sprache für deine Anwendung entwerfen und umsetzen." msgid "Python is just the language for you." -msgstr "" +msgstr "Dann ist Python genau die richtige Sprache für dich." msgid "" "You could write a Unix shell script or Windows batch files for some of these " @@ -48,6 +60,14 @@ msgid "" "draft program. Python is simpler to use, available on Windows, macOS, and " "Unix operating systems, and will help you get the job done more quickly." msgstr "" +"Für manche dieser Aufgaben könntest du ein Unix-Shell-Skript oder Windows-Batch-" +"Dateien schreiben, aber Shell-Skripte eignen sich am besten zum Verschieben " +"von Dateien und Ändern von Textdaten – für GUI-Anwendungen oder Spiele sind sie " +"kaum geeignet. Du könntest ein C/C++ oder Java-Programm schreiben, aber es " +"kann viel Entwicklungszeit kosten, selbst einen ersten Entwurf fertigzustellen. " +"Python ist einfacher zu bedienen, für Windows, macOS und Unix-Betriebssysteme " +"verfügbar und hilft dir, dein Ziel schneller zu erreichen." + msgid "" "Python is simple to use, but it is a real programming language, offering " @@ -59,6 +79,15 @@ msgid "" "problem domain than Awk or even Perl, yet many things are at least as easy " "in Python as in those languages." msgstr "" +"Python ist einfach zu bedienen, aber es ist eine echte Programmiersprache, " +"die weit mehr Struktur und Unterstützung für große Programme bietet, als es " +"Shell-Skripte oder Batch-Dateien können. Auf der anderen Seite bietet Python " +"auch eine deutlich umfassendere Fehlerprüfung als C und bringt als *Höchstsprache* " +"bereits eingebaute, komplexe Datentypen wie flexible Arrays und Dictionaries " +"mit. Aufgrund dieser allgemeineren Datentypen lässt sich Python für ein weit " +"größeres Spektrum an Problemstellungen einsetzen als Awk oder sogar ogar Perl " +"und bietet für viele Aufgaben mindestens ebenso einfache Lösungen wie diese " +"Sprachen." msgid "" "Python allows you to split your program into modules that can be reused in " @@ -68,6 +97,12 @@ msgid "" "file I/O, system calls, sockets, and even interfaces to graphical user " "interface toolkits like Tk." msgstr "" +"Python ermöglicht es dir, dein Programm in Module aufzuteilen, die sich in " +"anderen Python-Programmen wiederverwenden lassen. Es bringt eine umfangreiche " +"Sammlung an Standardmodulen mit, die du als Basis für deine eigene Entwicklung " +"oder als Beispiele für den Einstieg nutzen kannst. Einige dieser Module bieten " +"Funktionen wie Datei-I/O, Systemaufrufe, Sockets und sogar Schnittstellen " +"zu Toolkits für grafische Benutzeroberflächen wie Tk." msgid "" "Python is an interpreted language, which can save you considerable time " @@ -77,25 +112,38 @@ msgid "" "functions during bottom-up program development. It is also a handy desk " "calculator." msgstr "" +"Python ist eine interpretierte Sprache. Das kann dir bei der Softwareentwicklung " +"viel Zeit sparen, da kein Kompilieren und Linken nötig ist. Du kannst den " +"Interpreter interaktiv nutzen, was das Experimentieren mit Sprachfeatures, " +"das Schreiben von Einweg-Skripten oder das Testen von Funktionen nach dem " +"Bottom-up-Prinzip sehr einfach macht. Zudem dient er als praktischer " +"Taschenrechner." msgid "" "Python enables programs to be written compactly and readably. Programs " "written in Python are typically much shorter than equivalent C, C++, or " "Java programs, for several reasons:" msgstr "" +"Python ermöglicht es, Programme kompakt und gut lesbar zu schreiben. " +"In Python verfasster Code ist aus mehreren Gründen meist deutlich kürzer " +"als vergleichbare Programme in C, C++ oder Java:" msgid "" "the high-level data types allow you to express complex operations in a " "single statement;" msgstr "" +"Die komplexen Datentypen erlauben es dir, vielschichtige Abläufe in einer " +"einzelnen Anweisung auszudrücken." msgid "" "statement grouping is done by indentation instead of beginning and ending " "brackets;" msgstr "" +"Anweisungsblöcke werden durch Einrückungen statt durch öffnende und schließende " +"Klammern strukturiert." msgid "no variable or argument declarations are necessary." -msgstr "" +msgstr "Es sind keine Variablen- oder Argumentdeklarationen erforderlich." msgid "" "Python is *extensible*: if you know how to program in C it is easy to add a " @@ -106,24 +154,43 @@ msgid "" "Python interpreter into an application written in C and use it as an " "extension or command language for that application." msgstr "" +"Python ist *erweiterbar*: Wenn du in C programmieren kannst, lässt sich der " +"Interpreter problemlos um neue integrierte Funktionen oder Module ergänzen. " +"So kannst du zeitkritische Operationen mit maximaler Geschwindigkeit " +"ausführen oder Python-Programme mit Bibliotheken verknüpfen, die nur in " +"binärer Form vorliegen (wie die Grafikbibliothek eines Drittherstellers). " +"Wenn dich das Fieber erst einmal gepackt hat, kannst du den Python-Interpreter " +"auch direkt in eine C-Anwendung einbinden und als Erweiterungs- oder " +"Befehlssprache dafür nutzen." msgid "" "By the way, the language is named after the BBC show \"Monty Python's Flying " "Circus\" and has nothing to do with reptiles. Making references to Monty " "Python skits in documentation is not only allowed, it is encouraged!" msgstr "" +"Übrigens: Die Sprache wurde nach der BBC-Show „Monty Python’s Flying Circus“ " +"benannt und hat nichts mit Reptilien zu tun. Anspielungen auf Sketches von " +"Monty Python in der Dokumentation sind daher nicht nur erlaubt, sondern " +"ausdrücklich erwünscht!" msgid "" "Now that you are all excited about Python, you'll want to examine it in some " "more detail. Since the best way to learn a language is to use it, the " "tutorial invites you to play with the Python interpreter as you read." msgstr "" +"Nachdem du nun begeistert von Python bist, möchtest du dir die Sprache sicher " +"genauer ansehen. Da man eine Sprache am besten durch Anwendung lernt, lädt " +"dich dieses Tutorial dazu ein, beim Lesen direkt mit dem Python-Interpreter " +"zu experimentieren." msgid "" "In the next chapter, the mechanics of using the interpreter are explained. " "This is rather mundane information, but essential for trying out the " "examples shown later." msgstr "" +"Im nächsten Kapitel wird die Handhabung des Interpreters erklärt. Das sind " +"zwar eher trockene Grundlagen, aber sie sind unerlässlich, um die später " +"gezeigten Beispiele auszuprobieren." msgid "" "The rest of the tutorial introduces various features of the Python language " @@ -131,3 +198,7 @@ msgid "" "and data types, through functions and modules, and finally touching upon " "advanced concepts like exceptions and user-defined classes." msgstr "" +"Der restliche Teil des Tutorials stellt verschiedene Funktionen der Sprache " +"und des Systems anhand von Beispielen vor. Das Spektrum reicht von einfachen " +"Ausdrücken, Anweisungen und Datentypen über Funktionen und Module bis hin zu " +"fortgeschrittenen Konzepten wie Exceptions und benutzerdefinierten Klassen." diff --git a/tutorial/classes.po b/tutorial/classes.po index 6b5bb17..ea9b3a6 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -1,19 +1,18 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. +# FIRST AUTHOR Swen Bachmann <142266608+sba72@users.noreply.github.com>, 2026. # # Translators: # python-doc bot, 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-25 14:12+0000\n" -"PO-Revision-Date: 2025-09-16 00:02+0000\n" -"Last-Translator: python-doc bot, 2025\n" +"PO-Revision-Date: 2026-08-10 00:02+0000\n" +"Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,7 +21,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Classes" -msgstr "" +msgstr "Klassen" msgid "" "Classes provide a means of bundling data and functionality together. " @@ -31,6 +30,12 @@ msgid "" "attributes attached to it for maintaining its state. Class instances can " "also have methods (defined by its class) for modifying its state." msgstr "" +"Klassen bieten die Möglichkeit, Daten und Funktionalitäten zusammenzufassen. " +"Das Erstellen einer neuen Klasse erzeugt einen neuen *Typ* von Objekt, was " +"es ermöglicht, neue *Instanzen* dieses Typs zu erstellen. Jede " +"Klasseninstanz kann über Attribute verfügen, um ihren Zustand zu verwalten. " +"Klasseninstanzen können auch über Methoden (definiert durch ihre Klasse) " +"verfügen, um ihren Zustand zu ändern." msgid "" "Compared with other programming languages, Python's class mechanism adds " @@ -44,6 +49,17 @@ msgid "" "nature of Python: they are created at runtime, and can be modified further " "after creation." msgstr "" +"Im Vergleich zu anderen Programmiersprachen fügt der Klassenmechanismus von " +"Python Klassen mit einem Minimum an neuer Syntax und Semantik hinzu. Er ist " +"eine Mischung aus den Klassenmechanismen von C++ und Modula-3. Python-" +"Klassen bieten alle Standardfunktionen der objektorientierten " +"Programmierung: Der Vererbungungsmechanismus erlaubt mehrere Basisklassen, " +"eine abgeleitete Klasse kann jede Methode ihrer Basisklasse(n) " +"überschreiben, und eine Methode kann die gleichnamige Methode einer " +"Basisklasse aufrufen. Objekte können beliebige Mengen und Arten von Daten " +"enthalten. Wie auch Module zeichnen sich Klassen durch die dynamische Natur " +"von Python aus: Sie werden zur Laufzeit erzeugt und können nach ihrer " +"Erstellung weiter verändert werden." msgid "" "In C++ terminology, normally class members (including the data members) are " @@ -58,6 +74,18 @@ msgid "" "(arithmetic operators, subscripting etc.) can be redefined for class " "instances." msgstr "" +"In der C++-Terminologie sind Klassenmitglieder (einschließlich der " +"Datenelemente) normalerweise *public* (Ausnahmen siehe unten :ref:`tut-" +"private`), und alle Elementfunktionen sind *virtual*. Wie in Modula-3 gibt " +"es keine Kurzschreibweisen für den Zugriff auf die Elemente eines Objekts " +"aus dessen Methoden: Die Methodenfunktion wird mit einem expliziten ersten " +"Argument deklariert, das das Objekt darstellt und beim Aufruf implizit " +"übergeben wird. Wie in Smalltalk sind Klassen selbst Objekte. Dies bietet " +"eine Semantik zum Importieren und Umbenennen. Anders als in C++ und Modula-3 " +"können eingebaute Typen als Basisklassen für Erweiterungen durch den " +"Benutzer verwendet werden. Zudem können, wie in C++, die meisten eingebauten " +"Operatoren mit spezieller Syntax (arithmetische Operatoren, Indizierung " +"usw.) für Klasseninstanzen neu definiert werden." msgid "" "(Lacking universally accepted terminology to talk about classes, I will make " @@ -65,9 +93,14 @@ msgid "" "since its object-oriented semantics are closer to those of Python than C++, " "but I expect that few readers have heard of it.)" msgstr "" +"(Da eine allgemein akzeptierte Terminologie für Klassen fehlt, werde ich " +"gelegentlich Begriffe aus Smalltalk und C++ verwenden. Ich würde Begriffe " +"aus Modula-3 verwenden, da dessen objektorientierte Semantik der von Python " +"näher kommt als die von C++, aber ich nehme an, dass nur wenige Leser davon " +"gehört haben.)" msgid "A Word About Names and Objects" -msgstr "" +msgstr "Ein Wort zu Namen und Objekten" msgid "" "Objects have individuality, and multiple names (in multiple scopes) can be " @@ -83,9 +116,23 @@ msgid "" "the caller will see the change --- this eliminates the need for two " "different argument passing mechanisms as in Pascal." msgstr "" +"Objekte besitzen eine eigene Identität, und mehrere Namen (in verschiedenen " +"Gültigkeitsbereichen) können an dasselbe Objekt gebunden sein. Dies ist in " +"anderen Sprachen als Aliasing bekannt. Auf den ersten Blick wird dies bei " +"Python meist nicht wahrgenommen und kann beim Umgang mit unveränderlichen " +"Datentypen (Zahlen, Zeichenketten, Tupel) getrost ignoriert werden. Aliasing " +"hat jedoch eine unter Umständen überraschende Wirkung auf die Semantik von " +"Python-Code, der veränderliche Objekte wie Listen, Dictionaries und die " +"meisten anderen Typen enthält. Dies wird gewöhnlich zum Vorteil des " +"Programms genutzt, da sich Aliase in mancher Hinsicht wie Zeiger verhalten. " +"Beispielsweise ist die Übergabe eines Objekts günstig, da von der " +"Implementierung nur ein Zeiger übergeben wird; und wenn eine Funktion ein " +"als Argument übergebenes Objekt verändert, sieht der Aufrufer diese Änderung " +"--- was zwei verschiedene Mechanismen zur Argumentübergabe wie in Pascal " +"überflüssig macht." msgid "Python Scopes and Namespaces" -msgstr "" +msgstr "Python-Gültigkeitsbereiche und Namensräume" msgid "" "Before introducing classes, I first have to tell you something about " @@ -94,9 +141,15 @@ msgid "" "understand what's going on. Incidentally, knowledge about this subject is " "useful for any advanced Python programmer." msgstr "" +"Bevor wir Klassen einführen, muss ich dir zuerst etwas über Pythons " +"Gültigkeitsbereiche (Scopes) erzählen. Klassendefinitionen wenden einige " +"Raffinessen bei Namensräumen an, und du musst wissen, wie " +"Gültigkeitsbereiche und Namensräume funktionieren, um vollständig zu " +"verstehen, was passiert. Nebenbei bemerkt ist das Wissen über dieses Thema " +"für jeden fortgeschrittenen Python-Programmierer nützlich." msgid "Let's begin with some definitions." -msgstr "" +msgstr "Beginnen wir mit einigen Definitionen." msgid "" "A *namespace* is a mapping from names to objects. Most namespaces are " @@ -111,6 +164,18 @@ msgid "" "may both define a function ``maximize`` without confusion --- users of the " "modules must prefix it with the module name." msgstr "" +"Ein *Namensraum* ist eine Zuordnung von Namen zu Objekten. Die meisten " +"Namensräume sind derzeit als Python-Dictionaries implementiert, was aber " +"normalerweise in keiner Weise auffällt (außer bei der Performance) und sich " +"in Zukunft ändern kann. Beispiele für Namensräume sind: die Menge der " +"eingebauten Namen (die Funktionen wie :func:`abs` und eingebaute Ausnahmen " +"enthält), die globalen Namen in einem Modul und die lokalen Namen bei einem " +"Funktionsaufruf. In gewissem Sinne bildet auch die Menge der Attribute eines " +"Objekts einen Namensraum. Das Wichtigste über Namensräume ist, dass es " +"absolut keine Beziehung zwischen Namen in verschiedenen Namensräumen gibt, " +"so können beispielsweise zwei verschiedene Module eine Funktion ``maximize`` " +"ohne Verwirrung definieren --- Benutzer der Module müssen ihr den Modulnamen " +"voranstellen." msgid "" "By the way, I use the word *attribute* for any name following a dot --- for " @@ -121,6 +186,14 @@ msgid "" "happens to be a straightforward mapping between the module's attributes and " "the global names defined in the module: they share the same namespace! [#]_" msgstr "" +"Übrigens verwende ich das Wort *Attribut* für jeden Namen, der einem Punkt " +"folgt --- im Ausdruck ``z.real`` ist beispielsweise ``real`` ein Attribut " +"des Objekts ``z``. Strenge genommen sind Referenzen auf Namen in Modulen " +"Attributreferenzen: Im Ausdruck ``modname.funcname`` ist ``modname`` ein " +"Modulobjekt und ``funcname`` ein Attribut davon. In diesem Fall gibt es " +"zufällig eine direkte Zuordnung zwischen den Attributen des Moduls und den " +"im Modul definierten globalen Namen: Sie teilen sich denselben Namensraum! " +"[#]_" msgid "" "Attributes may be read-only or writable. In the latter case, assignment to " @@ -130,6 +203,12 @@ msgid "" "remove the attribute :attr:`!the_answer` from the object named by " "``modname``." msgstr "" +"Attribute können schreibgeschützt oder beschreibbar sein. Im letzteren Fall " +"ist eine Zuweisung an Attribute möglich. Modulattribute sind beschreibbar: " +"du kannst ``modname.the_answer = 42`` schreiben. Beschreibbare Attribute " +"\"können auch mit der Anweisung :keyword:`del` gelöscht werden. Zum Beispiel " +"entfernt ``del modname.the_answer`` das Attribut :attr:`!the_answer` aus dem " +"Objekt namens ``modname``." msgid "" "Namespaces are created at different moments and have different lifetimes. " @@ -138,10 +217,21 @@ msgid "" "module is created when the module definition is read in; normally, module " "namespaces also last until the interpreter quits. The statements executed " "by the top-level invocation of the interpreter, either read from a script " -"file or interactively, are considered part of a module called :mod:" -"`__main__`, so they have their own global namespace. (The built-in names " -"actually also live in a module; this is called :mod:`builtins`.)" -msgstr "" +"file or interactively, are considered part of a module " +"called :mod:`__main__`, so they have their own global namespace. (The built-" +"in names actually also live in a module; this is called :mod:`builtins`.)" +msgstr "" +"Namensräume werden zu unterschiedlichen Zeitpunkten erstellt und haben " +"unterschiedliche Lebensdauern. Der Namensraum, der die eingebauten Namen " +"enthält, wird beim Start des Python-Interpreters erstellt und niemals " +"gelöscht. Der globale Namensraum für ein Modul wird beim Einlesen der " +"Moduldefinition erstellt, normalerweise bleiben Modulnamensräume ebenfalls " +"bestehen, bis der Interpreter beendet wird. Die Anweisungen, die auf " +"oberster Ebene des Interpreters ausgeführt werden, sei es aus einer " +"Skriptdatei oder interaktiv, gelten als Teil eines Moduls " +"namens :mod:`__main__` und haben daher ihren eigenen globalen Namensraum. " +"(Die eingebauten Namen befinden sich eigentlich ebenfalls in einem Modul; " +"dieses heißt :mod:`builtins`.)" msgid "" "The local namespace for a function is created when the function is called, " @@ -150,44 +240,74 @@ msgid "" "describe what actually happens.) Of course, recursive invocations each have " "their own local namespace." msgstr "" +"Der lokale Namensraum für eine Funktion wird beim Aufruf der Funktion " +"erstellt und gelöscht, wenn die Funktion zurückkehrt oder eine Ausnahme " +"auslöst, die nicht innerhalb der Funktion behandelt wird. (Eigentlich wäre " +"Vergessen eine bessere Beschreibung für das, was tatsächlich passiert.) " +"Selbstverständlich haben rekursive Aufrufe jeweils ihren eigenen lokalen " +"Namensraum." msgid "" "A *scope* is a textual region of a Python program where a namespace is " "directly accessible. \"Directly accessible\" here means that an unqualified " "reference to a name attempts to find the name in the namespace." msgstr "" +"Ein *Gültigkeitsbereich* (Scope) ist ein Quelltextbereich eines Python-" +"Programms, in dem ein Namensraum direkt zugänglich ist. \"Direkt " +"zugänglich\" bedeutet hier, dass eine unqualifizierte Referenz auf einen " +"Namen versucht, den Namen in diesem Namensraum zu finden." msgid "" "Although scopes are determined statically, they are used dynamically. At any " "time during execution, there are 3 or 4 nested scopes whose namespaces are " "directly accessible:" msgstr "" +"Obwohl Gültigkeitsbereiche statisch bestimmt werden, werden sie dynamisch " +"verwendet. Zu jedem Zeitpunkt der Ausführung gibt es 3 oder 4 verschachtelte " +"Gültigkeitsbereiche, deren Namensräume direkt zugänglich sind:" msgid "the innermost scope, which is searched first, contains the local names" msgstr "" +"der innerste Gültigkeitsbereich, der zuerst durchsucht wird, enthält die " +"lokalen Namen" msgid "" "the scopes of any enclosing functions, which are searched starting with the " "nearest enclosing scope, contain non-local, but also non-global names" msgstr "" +"die Gültigkeitsbereiche etwaiger umgebender Funktionen, die ausgehend vom " +"nächstgelegenen umgebenden Bereich durchsucht werden, enthalten nicht-" +"lokale, aber auch nicht-globale Namen" msgid "the next-to-last scope contains the current module's global names" msgstr "" +"der vorletzte Gültigkeitsbereich enthält die globalen Namen des aktuellen " +"Moduls" msgid "" "the outermost scope (searched last) is the namespace containing built-in " "names" msgstr "" +"der äußerste Gültigkeitsbereich (der zuletzt durchsucht wird) ist der " +"Namensraum, der die eingebauten Namen enthält" msgid "" "If a name is declared global, then all references and assignments go " "directly to the next-to-last scope containing the module's global names. To " -"rebind variables found outside of the innermost scope, the :keyword:" -"`nonlocal` statement can be used; if not declared nonlocal, those variables " -"are read-only (an attempt to write to such a variable will simply create a " -"*new* local variable in the innermost scope, leaving the identically named " -"outer variable unchanged)." -msgstr "" +"rebind variables found outside of the innermost scope, " +"the :keyword:`nonlocal` statement can be used; if not declared nonlocal, " +"those variables are read-only (an attempt to write to such a variable will " +"simply create a *new* local variable in the innermost scope, leaving the " +"identically named outer variable unchanged)." +msgstr "" +"Wird ein Name als global deklariert, gehen alle Referenzen und Zuweisungen " +"direkt an den vorletzten Gültigkeitsbereich, der die globalen Namen des " +"Moduls enthält. Um Variablen neuzuweisen, die sich außerhalb des innersten " +"Gültigkeitsbereichs befinden, kann die Anweisung :keyword:`nonlocal` " +"verwendet werden, sind sie nicht als nonlocal deklariert, sind diese " +"Variablen schreibgeschützt (ein Versuch, in eine solche Variable zu " +"schreiben, erzeugt lediglich eine *neue* lokale Variable im innersten " +"Gültigkeitsbereich und lässt die gleichnamige äußere Variable unverändert)." msgid "" "Usually, the local scope references the local names of the (textually) " @@ -195,6 +315,11 @@ msgid "" "namespace as the global scope: the module's namespace. Class definitions " "place yet another namespace in the local scope." msgstr "" +"Normally verweist der lokale Gültigkeitsbereich auf die lokalen Namen der " +"(im Quelltext) aktuellen Funktion. Außerhalb von Funktionen verweist der " +"lokale Gültigkeitsbereich auf denselben Namensraum wie der globale " +"Gültigkeitsbereich: den Namensraum des Moduls. Klassendefinitionen " +"platzieren einen weiteren Namensraum im lokalen Gültigkeitsbereich." msgid "" "It is important to realize that scopes are determined textually: the global " @@ -205,33 +330,59 @@ msgid "" "at \"compile\" time, so don't rely on dynamic name resolution! (In fact, " "local variables are already determined statically.)" msgstr "" - -msgid "" -"A special quirk of Python is that -- if no :keyword:`global` or :keyword:" -"`nonlocal` statement is in effect -- assignments to names always go into the " -"innermost scope. Assignments do not copy data --- they just bind names to " -"objects. The same is true for deletions: the statement ``del x`` removes " -"the binding of ``x`` from the namespace referenced by the local scope. In " -"fact, all operations that introduce new names use the local scope: in " -"particular, :keyword:`import` statements and function definitions bind the " -"module or function name in the local scope." -msgstr "" +"Es ist wichtig zu verstehen, dass Gültigkeitsbereiche quelltextbezogen " +"bestimmt werden: Der globale Gültigkeitsbereich einer in einem Modul " +"definierten Funktion ist der Namensraum dieses Moduls, ganz gleich, von wo " +"oder unter welchem Alias die Funktion aufgerufen wird. Andererseits erfolgt " +"die tatsächliche Suche nach Namen dynamisch zur Laufzeit --- die " +"Sprachdefinition entwickelt sich jedoch in Richtung einer statischen " +"Namensauflösung zur \"Kompilierzeit\", verlasse dich also nicht auf die " +"dynamische Namensauflösung! (Tatsächlich werden lokale Variablen bereits " +"statisch bestimmt.)" + +msgid "" +"A special quirk of Python is that -- if no :keyword:`global` " +"or :keyword:`nonlocal` statement is in effect -- assignments to names always " +"go into the innermost scope. Assignments do not copy data --- they just bind " +"names to objects. The same is true for deletions: the statement ``del x`` " +"removes the binding of ``x`` from the namespace referenced by the local " +"scope. In fact, all operations that introduce new names use the local " +"scope: in particular, :keyword:`import` statements and function definitions " +"bind the module or function name in the local scope." +msgstr "" +"Eine Besonderheit von Python ist, dass Zuweisungen an Namen – wenn " +"keine :keyword:`global`- oder :keyword:`nonlocal`-Anweisung gilt – immer in " +"den innersten Gültigkeitsbereich eingehen. Zuweisungen kopieren keine Daten " +"--- sie binden lediglich Namen an Objekte. Das Gleiche gilt für Löschungen: " +"Die Anweisung ``del x`` entfernt die Bindung von ``x`` aus dem Namensraum, " +"auf den der lokale Gültigkeitsbereich verweist. Tatsächlich nutzen alle " +"Operationen, die neue Namen einführen, den lokalen Gültigkeitsbereich: " +"Insbesondere binden :keyword:`import`-Anweisungen und Funktionsdefinitionen " +"den Modul- oder Funktionsnamen im lokalen Gültigkeitsbereich." msgid "" "The :keyword:`global` statement can be used to indicate that particular " -"variables live in the global scope and should be rebound there; the :keyword:" -"`nonlocal` statement indicates that particular variables live in an " -"enclosing scope and should be rebound there." +"variables live in the global scope and should be rebound there; " +"the :keyword:`nonlocal` statement indicates that particular variables live " +"in an enclosing scope and should be rebound there." msgstr "" +"Die Anweisung :keyword:`global` kann verwendet werden, um anzugeben, dass " +"bestimmte Variablen im globalen Gültigkeitsbereich liegen und dort neu " +"gebunden werden sollen, die Anweisung :keyword:`nonlocal` gibt an, dass " +"bestimmte Variablen in einem umgebenden Gültigkeitsbereich liegen und dort " +"neu gebunden werden sollen." msgid "Scopes and Namespaces Example" -msgstr "" +msgstr "Beispiel für Gültigkeitsbereiche und Namensräume" msgid "" "This is an example demonstrating how to reference the different scopes and " "namespaces, and how :keyword:`global` and :keyword:`nonlocal` affect " "variable binding::" msgstr "" +"Dies ist ein Beispiel, das zeigt, wie auf die verschiedenen " +"Gültigkeitsbereiche und Namensräume zugegriffen wird und wie :keyword: " +"`global` und :keyword:`nonlocal` die Variablenbindung beeinflussen::" msgid "" "def scope_test():\n" @@ -257,9 +408,31 @@ msgid "" "scope_test()\n" "print(\"In global scope:\", spam)" msgstr "" +"def scope_test():\n" +" def do_local():\n" +" spam = \"local spam\"\n" +"\n" +" def do_nonlocal():\n" +" nonlocal spam\n" +" spam = \"nonlocal spam\"\n" +"\n" +" def do_global():\n" +" global spam\"\n" +" spam = \"global spam\"\n" +"\n" +" spam = \"test spam\"\n" +" do_local()\n" +" print(\"After local assignment:\", spam)\n" +" do_nonlocal()\n" +" print(\"After nonlocal assignment:\", spam)\n" +" do_global()\n" +" print(\"After global assignment:\", spam)\n" +"\n" +"scope_test()\n" +"print(\"In global scope:\", spam)" msgid "The output of the example code is:" -msgstr "" +msgstr "Die Ausgabe des Beispielcodes lautet:" msgid "" "After local assignment: test spam\n" @@ -267,6 +440,10 @@ msgid "" "After global assignment: nonlocal spam\n" "In global scope: global spam" msgstr "" +"After local assignment: test spam\n" +"After nonlocal assignment: nonlocal spam\n" +"After global assignment: nonlocal spam\n" +"In global scope: global spam" msgid "" "Note how the *local* assignment (which is default) didn't change " @@ -274,25 +451,33 @@ msgid "" "changed *scope_test*\\'s binding of *spam*, and the :keyword:`global` " "assignment changed the module-level binding." msgstr "" +"Beachte, wie die *lokale* Zuweisung (die der Standard ist) die Bindung von " +"*spam* in *scope_test* nicht verändert hat. Die :keyword:`nonlocal`-" +"Zuweisung hat die Bindung von *spam* in *scope_test* geändert und " +"die :keyword:`global`-Zuweisung hat die Bindung auf Modulebene geändert." msgid "" -"You can also see that there was no previous binding for *spam* before the :" -"keyword:`global` assignment." +"You can also see that there was no previous binding for *spam* before " +"the :keyword:`global` assignment." msgstr "" +"Du kannst auch sehen, dass vor der :keyword:`global`-Zuweisung keine " +"vorherige Bindung für *spam* existierte." msgid "A First Look at Classes" -msgstr "" +msgstr "Ein erster Blick auf Klassen" msgid "" "Classes introduce a little bit of new syntax, three new object types, and " "some new semantics." msgstr "" +"Klassen führen ein wenig neue Syntax, drei neue Objekttypen und einige neue " +"Semantiken ein." msgid "Class Definition Syntax" -msgstr "" +msgstr "Syntax von Klassendefinitionen" msgid "The simplest form of class definition looks like this::" -msgstr "" +msgstr "Die einfachste Form einer Klassendefinition sieht so aus::" msgid "" "class ClassName:\n" @@ -302,6 +487,12 @@ msgid "" " .\n" " " msgstr "" +"class ClassName:\n" +" \n" +" .\n" +" .\n" +" .\n" +" " msgid "" "Class definitions, like function definitions (:keyword:`def` statements) " @@ -309,6 +500,10 @@ msgid "" "a class definition in a branch of an :keyword:`if` statement, or inside a " "function.)" msgstr "" +"Klassendefinitionen müssen, genau wie Funktionsdefinitionen (:keyword:`def`-" +"Anweisungen), ausgeführt werden, bevor sie eine Wirkung haben. (Man könnte " +"eine Klassendefinition denkbarer Weise in einem Zweig einer :keyword:`if`-" +"Anweisung oder innerhalb einer Funktion platzieren.)" msgid "" "In practice, the statements inside a class definition will usually be " @@ -317,6 +512,12 @@ msgid "" "normally have a peculiar form of argument list, dictated by the calling " "conventions for methods --- again, this is explained later." msgstr "" +"In der Praxis sind die Anweisungen innerhalb einer Klassendefinition " +"üblicherweise Funktionsdefinitionen, aber andere Anweisungen sind zulässig " +"und manchmal nützlich --- darauf kommen wir später zurück. Die " +"Funktionsdefinitionen innerhalb einer Klasse haben normalerweise eine " +"besondere Form von Argumentliste, die durch die Aufrufkonventionen für " +"Methoden vorgegeben ist --- auch dies wird später erklärt." msgid "" "When a class definition is entered, a new namespace is created, and used as " @@ -324,6 +525,10 @@ msgid "" "new namespace. In particular, function definitions bind the name of the new " "function here." msgstr "" +"Wird eine Klassendefinition betreten, wird ein neuer Namensraum erzeugt und " +"als lokaler Gültigkeitsbereich verwendet --- somit gehen alle Zuweisungen an " +"lokale Variablen in diesen neuen Namensraum. Insbesondere binden " +"Funktionsdefinitionen hier den Namen der neuen Funktion." msgid "" "When a class definition is left normally (via the end), a *class object* is " @@ -334,14 +539,24 @@ msgid "" "here to the class name given in the class definition header (:class:`!" "ClassName` in the example)." msgstr "" +"Wird eine Klassendefinition normal verlassen (durch das Ende), wird ein " +"*Klassenobjekt* erzeugt. Dies ist im Wesentlichen eine Hülle um den Inhalt " +"des durch die Klassendefinition erstellten Namensraums; wir werden im " +"nächsten Abschnitt mehr über Klassenobjekte lernen. Der ursprüngliche lokale " +"Gültigkeitsbereich (derjenige, der direkt vor dem Betreten der " +"Klassendefinition galt) wird wiederhergestellt und das Klassenobjekt wird " +"hier an den im Kopf der Klassendefinition angegebenen Klassennamen (:class:`!" +"ClassName` im Beispiel) gebunden." msgid "Class Objects" -msgstr "" +msgstr "Klassenobjekte" msgid "" "Class objects support two kinds of operations: attribute references and " "instantiation." msgstr "" +"Klassenobjekte unterstützen zwei Arten von Operationen: Attributreferenzen " +"und Instanziierung." msgid "" "*Attribute references* use the standard syntax used for all attribute " @@ -349,6 +564,11 @@ msgid "" "that were in the class's namespace when the class object was created. So, " "if the class definition looked like this::" msgstr "" +"*Attributreferenzen* verwenden die Standardsyntax, die für alle " +"Attributreferenzen in Python genutzt wird: ``obj.name``. Gültige " +"Attributnamen sind alle Namen, die sich im Namensraum der Klasse befanden, " +"als das Klassenobjekt erzeugt wurde. Wenn die Klassendefinition also so " +"aussah::" msgid "" "class MyClass:\n" @@ -358,6 +578,12 @@ msgid "" " def f(self):\n" " return 'hello world'" msgstr "" +"class MyClass:\n" +" \"\"\"A simple example class\"\"\"\n" +" i = 12345\n" +"\n" +" def f(self):\n" +" return 'hello world'" msgid "" "then ``MyClass.i`` and ``MyClass.f`` are valid attribute references, " @@ -366,32 +592,51 @@ msgid "" "assignment. :attr:`~type.__doc__` is also a valid attribute, returning the " "docstring belonging to the class: ``\"A simple example class\"``." msgstr "" +"dann sind ``MyClass.i`` und ``MyClass.f`` gültige Attributreferenzen, die " +"jeweils eine Ganzzahl beziehungsweise ein Funktionsobjekt zurückgeben. " +"Klassenattribute können auch zugewiesen werden, sodass man den Wert von " +"``MyClass.i`` durch eine Zuweisung ändern kann. :attr:`~type.__doc__` ist " +"ebenfalls ein gültiges Attribut, das den zur Klasse gehörenden Docstring " +"zurückgibt: ``\\\"A simple example class\\\"``." msgid "" "Class *instantiation* uses function notation. Just pretend that the class " "object is a parameterless function that returns a new instance of the class. " "For example (assuming the above class)::" msgstr "" +"Die *Instanziierung* einer Klasse verwendet Funktionsnotation. Stell dir " +"einfach vor, dass das Klassenobjekt eine parameterlose Funktion ist, die " +"eine neue Instanz der Klasse zurückgibt. Zum Beispiel (unter Annahme der " +"obigen Klasse)::" msgid "x = MyClass()" -msgstr "" +msgstr "x = MyClass()" msgid "" "creates a new *instance* of the class and assigns this object to the local " "variable ``x``." msgstr "" +"erzeugt eine neue *Instanz* der Klasse und weist dieses Objekt der lokalen " +"Variablen ``x`` zu." msgid "" "The instantiation operation (\"calling\" a class object) creates an empty " "object. Many classes like to create objects with instances customized to a " -"specific initial state. Therefore a class may define a special method named :" -"meth:`~object.__init__`, like this::" +"specific initial state. Therefore a class may define a special method " +"named :meth:`~object.__init__`, like this::" msgstr "" +"Die Instanziierungsoperation (das \\\"Aufrufen\\\" eines Klassenobjekts) " +"erzeugt ein leeres Objekt. Viele Klassen erzeugen Objekte bevorzugt mit " +"Instanzen, die auf einen bestimmten Anfangszustand angepasst sind. Daher " +"kann eine Klasse eine spezielle Methode namens :meth:`~object.__init__` " +"definieren, wie etwa so::" msgid "" "def __init__(self):\n" " self.data = []" msgstr "" +"def __init__(self):\n" +" self.data = []" msgid "" "When a class defines an :meth:`~object.__init__` method, class instantiation " @@ -399,12 +644,20 @@ msgid "" "instance. So in this example, a new, initialized instance can be obtained " "by::" msgstr "" +"Wenn eine Klasse eine :meth:`~object.__init__`-Methode definiert, ruft die " +"Klasseninstanziierung automatisch :meth:`!__init__` für die neu erzeugte " +"Klasseninstanz auf. In diesem Beispiel kann eine neue, initialisierte " +"Instanz also wie folgt erzeugt werden::" msgid "" "Of course, the :meth:`~object.__init__` method may have arguments for " "greater flexibility. In that case, arguments given to the class " "instantiation operator are passed on to :meth:`!__init__`. For example, ::" msgstr "" +"Natürlich kann die :meth:`~object.__init__`-Methode für mehr Flexibilität " +"auch Argumente besitzen. In diesem Fall werden dem " +"Klasseninstanziierungsoperator übergabene Argumente an :meth:`!__init__` " +"weitergeleitet. Zum Beispiel::" msgid "" ">>> class Complex:\n" @@ -416,15 +669,26 @@ msgid "" ">>> x.r, x.i\n" "(3.0, -4.5)" msgstr "" +">>> class Complex:\n" +"... def __init__(self, realpart, imagpart):\n" +"... self.r = realpart\n" +"... self.i = imagpart\n" +"...\n" +">>> x = Complex(3.0, -4.5)\n" +">>> x.r, x.i\n" +"(3.0, -4.5)" msgid "Instance Objects" -msgstr "" +msgstr "Instanzobjekte" msgid "" "Now what can we do with instance objects? The only operations understood by " "instance objects are attribute references. There are two kinds of valid " "attribute names: data attributes and methods." msgstr "" +"Was können wir nun mit Instanzobjekten tun? Die einzigen Operationen, die " +"von Instanzobjekten verstanden werden, sind Attributreferenzen. Es gibt zwei " +"Arten von gültigen Attributnamen: Datenattribute und Methoden." msgid "" "*Data attributes* correspond to \"instance variables\" in Smalltalk, and to " @@ -434,6 +698,12 @@ msgid "" "following piece of code will print the value ``16``, without leaving a " "trace::" msgstr "" +"*Datenattribute* entsprechen „Instanzvariablen“ in Smalltalk und " +"„Datenelementen“ in C++. Datenattribute müssen nicht deklariert werden; wie " +"lokale Variablen entstehen sie, wenn ihnen erstmals etwas zugewiesen wird. " +"Wenn ``x`` beispielsweise die oben erzeugte Instanz von :class:`!MyClass` " +"ist, gibt der folgende Codeabschnitt den Wert ``16`` aus, ohne Spuren zu " +"hinterlassen::\"" msgid "" "x.counter = 1\n" @@ -442,11 +712,18 @@ msgid "" "print(x.counter)\n" "del x.counter" msgstr "" +"x.counter = 1\n" +"while x.counter < 10:\n" +" x.counter = x.counter * 2\n" +"print(x.counter)\n" +"del x.counter" msgid "" "The other kind of instance attribute reference is a *method*. A method is a " "function that \"belongs to\" an object." msgstr "" +"Die andere Art von Instanzattributreferenz ist eine *Methode*. Eine Methode " +"ist eine Funktion, die zu einem Objekt „gehört“." msgid "" "Valid method names of an instance object depend on its class. By " @@ -456,15 +733,24 @@ msgid "" "not, since ``MyClass.i`` is not. But ``x.f`` is not the same thing as " "``MyClass.f`` --- it is a *method object*, not a function object." msgstr "" +"Gültige Methodennamen eines Instanzobjekts hängen von dessen Klasse ab. " +"Definitionsgemäß definieren alle Attribute einer Klasse, die " +"Funktionsobjekte sind, entsprechende Methoden ihrer Instanzen. In unserem " +"Beispiel ist ``x.f`` also eine gültige Methodenreferenz, da ``MyClass.f`` " +"eine Funktion ist, ``x.i`` hingege nicht, da ``MyClass.i`` keine ist. Aber " +"``x.f`` ist nicht dasselbe wie ``MyClass.f`` --- es ist ein " +"*Methodenobjekt*, kein Funktionsobjekt." msgid "Method Objects" -msgstr "" +msgstr "Methodenobjekte" msgid "Usually, a method is called right after it is bound::" msgstr "" +"Normalerweise wird eine Methode direkt aufgerufen, nachdem sie gebunden " +"wurde::" msgid "x.f()" -msgstr "" +msgstr "x.f()" msgid "" "If ``x = MyClass()``, as above, this will return the string ``'hello " @@ -472,24 +758,37 @@ msgid "" "is a method object, and can be stored away and called at a later time. For " "example::" msgstr "" +"Wenn ``x = MyClass()`` gilt (wie oben), gibt dies die Zeichenkette ``'hello " +"world'`` zurück. Es ist jedoch nicht notwendig, eine Methode sofort " +"aufzurufen: ``x.f`` ist ein Methodenobjekt und kann gespeichert und zu einem " +"späteren Zeitpunkt aufgerufen werden. Zum Beispiel::" msgid "" "xf = x.f\n" "while True:\n" " print(xf())" msgstr "" +"xf = x.f\n" +"while True:\n" +" print(xf())" msgid "will continue to print ``hello world`` until the end of time." -msgstr "" +msgstr "gibt bis ans Ende der Zeit weiterhin ``hello world`` aus." msgid "" -"What exactly happens when a method is called? You may have noticed that ``x." -"f()`` was called without an argument above, even though the function " +"What exactly happens when a method is called? You may have noticed that " +"``x.f()`` was called without an argument above, even though the function " "definition for :meth:`!f` specified an argument. What happened to the " "argument? Surely Python raises an exception when a function that requires an " "argument is called without any --- even if the argument isn't actually " "used..." msgstr "" +"Was genau passiert, wenn eine Methode aufgerufen wird? Du hast vielleicht " +"bemerkt, dass ``x.f()`` oben ohne Argument aufgerufen wurde, obwohl die " +"Funktionsdefinition für :meth:`!f` ein Argument angab. Was ist mit dem " +"Argument passiert? Python löst sicherlich eine Ausnahme aus, wenn eine " +"Funktion, die ein Argument erfordert, ohne ein solches aufgerufen wird --- " +"selbst wenn das Argument gar nicht verwendet wird..." msgid "" "Actually, you may have guessed the answer: the special thing about methods " @@ -500,6 +799,13 @@ msgid "" "that is created by inserting the method's instance object before the first " "argument." msgstr "" +"Eigentlich hast du die Antwort vielleicht schon geahnt: Das Besondere an " +"Methoden ist, dass das Instanzobjekt als erstes Argument der Funktion " +"übergeben wird. In unserem Beispiel ist der Aufruf ``x.f()`` genau " +"äquivalent zu ``MyClass.f(x)``. Im Allgemeinen entspricht der Aufruf einer " +"Methode mit einer Liste von *n* Argumenten dem Aufruf der entsprechenden " +"Funktion mit einer Argumentliste, die durch Einfügen des Instanzobjekts der " +"Methode vor dem ersten Argument erstellt wird." msgid "" "In general, methods work as follows. When a non-data attribute of an " @@ -510,15 +816,26 @@ msgid "" "argument list is constructed from the instance object and the argument list, " "and the function object is called with this new argument list." msgstr "" +"Im Allgemeinen funktionieren Methoden wie folgt: Wenn auf ein Attribut einer " +"Instanz verwiesen wird, das kein Datenattribut ist, wird die Klasse der " +"Instanz durchsucht. Bezeichnet der Name ein gültiges Klassenattribut, das " +"ein Funktionsobjekt ist, werden Referenzen auf das Instanzobjekt und das " +"Funktionsobjekt in ein Methodenobjekt gepackt. Wird das Methodenobjekt mit " +"einer Argumentliste aufgerufen, wird aus dem Instanzobjekt und der " +"Argumentliste eine neue Argumentliste erstellt und das Funktionsobjekt mit " +"dieser neuen Argumentliste aufgerufen." msgid "Class and Instance Variables" -msgstr "" +msgstr "Klassen- und Instanzvariablen" msgid "" "Generally speaking, instance variables are for data unique to each instance " "and class variables are for attributes and methods shared by all instances " "of the class::" msgstr "" +"Allgemein gesagt sind Instanzvariablen für Daten gedacht, die für jede " +"Instanz eindeutig sind, während Klassenvariablen für Attribute und Methoden " +"gedacht sind, die von allen Instanzen der Klasse geteilt werden::" msgid "" "class Dog:\n" @@ -539,6 +856,23 @@ msgid "" ">>> e.name # unique to e\n" "'Buddy'" msgstr "" +"class Dog:\n" +"\n" +" kind = 'canine' # class variable shared by all instances\n" +"\n" +" def __init__(self, name):\n" +" self.name = name # instance variable unique to each instance\n" +"\n" +">>> d = Dog('Fido')\n" +">>> e = Dog('Buddy')\n" +">>> d.kind # shared by all dogs\n" +"'canine'\n" +">>> e.kind # shared by all dogs\n" +"'canine'\n" +">>> d.name # unique to d\n" +"'Fido'\n" +">>> e.name # unique to e\n" +"'Buddy'" msgid "" "As discussed in :ref:`tut-object`, shared data can have possibly surprising " @@ -547,6 +881,11 @@ msgid "" "not be used as a class variable because just a single list would be shared " "by all *Dog* instances::" msgstr "" +"Wie in :ref:`tut-object` besprochen, können geteilte Daten in Verbindung " +"mit :term:`veränderbaren ` Objekten wie Listen und Wörterbüchern " +"überraschende Effekte haben. Die Liste *tricks* im folgenden Code sollte " +"beispielsweise nicht als Klassenvariable verwendet werden, da nur eine " +"einzige Liste von allen *Dog*-Instanzen geteilt würde::" msgid "" "class Dog:\n" @@ -566,9 +905,27 @@ msgid "" ">>> d.tricks # unexpectedly shared by all dogs\n" "['roll over', 'play dead']" msgstr "" +"class Dog:\n" +"\n" +" tricks = [] # falsche Verwendung einer Klassenvariable\n" +"\n" +" def __init__(self, name):\n" +" self.name = name\n" +"\n" +" def add_trick(self, trick):\n" +" self.tricks.append(trick)\n" +"\n" +">>> d = Dog('Fido')\n" +">>> e = Dog('Buddy')\n" +">>> d.add_trick('roll over')\n" +">>> e.add_trick('play dead')\n" +">>> d.tricks # unerwartet von allen Hunden geteilt\n" +"['roll over', 'play dead']" msgid "Correct design of the class should use an instance variable instead::" msgstr "" +"Ein korrektes Design der Klasse sollte stattdessen eine Instanzvariable " +"verwenden::" msgid "" "class Dog:\n" @@ -589,14 +946,33 @@ msgid "" ">>> e.tricks\n" "['play dead']" msgstr "" +"class Dog:\n" +"\n" +" def __init__(self, name):\n" +" self.name = name\n" +" self.tricks = [] # erzeugt eine neue leere Liste für jeden Hund\n" +"\n" +" def add_trick(self, trick):\n" +" self.tricks.append(trick)\n" +"\n" +">>> d = Dog('Fido')\n" +">>> e = Dog('Buddy')\n" +">>> d.add_trick('roll over')\n" +">>> e.add_trick('play dead')\n" +">>> d.tricks\n" +"['roll over']\n" +">>> e.tricks\n" +"['play dead']" msgid "Random Remarks" -msgstr "" +msgstr "Ergänzende Hinweise" msgid "" "If the same attribute name occurs in both an instance and in a class, then " "attribute lookup prioritizes the instance::" msgstr "" +"Tritt derselbe Attributname sowohl in einer Instanz als auch in einer Klasse " +"auf, bevorzugt die Attributsuche die Instanz::" msgid "" ">>> class Warehouse:\n" @@ -611,6 +987,17 @@ msgid "" ">>> print(w2.purpose, w2.region)\n" "storage east" msgstr "" +"\t>>> class Warehouse:\n" +"... purpose = 'storage'\n" +"... region = 'west'\n" +"...\n" +">>> w1 = Warehouse()\n" +">>> print(w1.purpose, w1.region)\n" +"storage west\n" +">>> w2 = Warehouse()\n" +">>> w2.region = 'east'\n" +">>> print(w2.purpose, w2.region)\n" +"storage east\t" msgid "" "Data attributes may be referenced by methods as well as by ordinary users " @@ -621,6 +1008,15 @@ msgid "" "implementation details and control access to an object if necessary; this " "can be used by extensions to Python written in C.)" msgstr "" +"Datenattribute können sowohl von Methoden als auch von gewöhnlichen " +"Benutzern („Clients“) eines Objekts referenziert werden. Mit anderen Worten: " +"Klassen sind nicht dazu geeignet, reine abstrakte Datentypen zu " +"implementieren. In Python gibt es tatsächlich nichts, was eine Kapselung " +"(Data Hiding) erzwingen könnte --- alles beruht auf Konventionen. " +"(Andererseits kann die in C geschriebene Python-Implementierung " +"Implementierungsdetails vollständig verbergen und den Zugriff auf ein Objekt " +"bei Bedarf steuern; dies kann von in C geschriebenen Python-Erweiterungen " +"genutzt werden.)" msgid "" "Clients should use data attributes with care --- clients may mess up " @@ -629,6 +1025,12 @@ msgid "" "without affecting the validity of the methods, as long as name conflicts are " "avoided --- again, a naming convention can save a lot of headaches here." msgstr "" +"Benutzer sollten Datenattribute mit Vorsicht verwenden --- sie können von " +"Methoden aufrechterhaltene Invarianten beschädigen, indem sie deren " +"Datenattribute überschreiben. Beachte, dass Benutzer einem Instanzobjekt " +"eigene Datenattribute hinzufügen können, ohne die Gültigkeit der Methoden zu " +"beeinträchtigen, solange Namenskonflikte vermieden werden --- auch hier kann " +"eine Namenskonvention viel Ärger ersparen." msgid "" "There is no shorthand for referencing data attributes (or other methods!) " @@ -636,6 +1038,10 @@ msgid "" "methods: there is no chance of confusing local variables and instance " "variables when glancing through a method." msgstr "" +"Es gibt keine Kurzschreibweise, um innerhalb von Methoden auf Datenattribute " +"(oder andere Methoden!) zu verweisen. Dies erhöht tatsächlich die Lesbarkeit " +"von Methoden: Beim Durchsehen einer Methode besteht keine Gefahr, lokale " +"Variablen und Instanzvariablen zu verwechseln." msgid "" "Often, the first argument of a method is called ``self``. This is nothing " @@ -645,6 +1051,12 @@ msgid "" "that a *class browser* program might be written that relies upon such a " "convention." msgstr "" +"Oft wird das erste Argument einer Methode ``self`` genannt. Dies ist nichts " +"weiter als eine Konvention: Der Name ``self`` hat für Python absolut keine " +"spezielle Bedeutung. Beachte jedoch, dass dein Code für andere Python-" +"Programmierer schwerer lesbar sein kann, wenn du dich nicht an diese " +"Konvention hältst, und es ist auch denkbar, dass ein *Class-Browser*-" +"Programm geschrieben wird, das sich auf eine solche Konvention verlässt." msgid "" "Any function object that is a class attribute defines a method for instances " @@ -652,6 +1064,11 @@ msgid "" "textually enclosed in the class definition: assigning a function object to a " "local variable in the class is also ok. For example::" msgstr "" +"Jedes Funktionsobjekt, das ein Klassenattribut ist, definiert eine Methode " +"für Instanzen dieser Klasse. Es ist nicht erforderlich, dass die " +"Funktionsdefinition textuell in die Klassendefinition eingeschlossen ist: " +"Das Zuweisen eines Funktionsobjekts zu einer lokalen Variable in der Klasse " +"ist ebenfalls in Ordnung. Zum Beispiel::" msgid "" "# Function defined outside the class\n" @@ -666,6 +1083,17 @@ msgid "" "\n" " h = g" msgstr "" +"\t# Außerhalb der Klasse definierte Funktions\n" +"def f1(self, x, y):\n" +" return min(x, x+y)\n" +"\n" +"class C:\n" +" f = f1\n" +"\n" +" def g(self):\n" +" return 'hello world'\n" +"\n" +" h = g\t" msgid "" "Now ``f``, ``g`` and ``h`` are all attributes of class :class:`!C` that " @@ -673,11 +1101,19 @@ msgid "" "instances of :class:`!C` --- ``h`` being exactly equivalent to ``g``. Note " "that this practice usually only serves to confuse the reader of a program." msgstr "" +"Nun sind ``f``, ``g`` und ``h`` alles Attribute der Klasse :class:`!C`, die " +"auf Funktionsobjekte verweisen, und folglich sind sie alle Methoden von " +"Instanzen von :class:`!C` --- wobei ``h`` genau äquivalent zu ``g`` ist. " +"Beachte, dass diese Praxis gewöhnlich nur dazu dient, den Leser eines " +"Programms zu verwirren." msgid "" "Methods may call other methods by using method attributes of the ``self`` " "argument::" msgstr "" +"Methoden können andere Methoden aufrufen, indem sie Methodenattribute des " +"\"\n" +"\"``self``-Arguments verwenden::" msgid "" "class Bag:\n" @@ -691,6 +1127,16 @@ msgid "" " self.add(x)\n" " self.add(x)" msgstr "" +"\tclass Bag:\n" +" def __init__(self):\n" +" self.data = []\n" +"\n" +" def add(self, x):\n" +" self.data.append(x)\n" +"\n" +" def addtwice(self, x):\n" +" self.add(x)\n" +" self.add(x)\t" msgid "" "Methods may reference global names in the same way as ordinary functions. " @@ -703,20 +1149,37 @@ msgid "" "itself defined in this global scope, and in the next section we'll find some " "good reasons why a method would want to reference its own class." msgstr "" +"Methoden können auf globale Namen auf dieselbe Weise verweisen wie " +"gewöhnliche Funktionen. Der mit einer Methode verknüpfte globale " +"Gültigkeitsbereich ist das Modul, das ihre Definition enthält. (Eine Klasse " +"wird nie als globaler Gültigkeitsbereich verwendet.) Während man selten " +"einen guten Grund dafür findet, globale Daten in einer Methode zu verwenden, " +"gibt es viele berechtigte Anwendungen für den globalen Gültigkeitsbereich: " +"Zum einen können in den globalen Gültigkeitsbereich importierte Funktionen " +"und Module von Methoden verwendet werden, ebenso wie darin definierte " +"Funktionen und Klassen. Üblicherweise ist die Klasse, die die Methode " +"enthält, selbst in diesem globalen Gültigkeitsbereich definiert, und im " +"nächsten Abschnitt werden wir einige gute Gründe dafür finden, warum eine " +"Methode auf ihre eigene Klasse verweisen möchte." msgid "" "Each value is an object, and therefore has a *class* (also called its " "*type*). It is stored as ``object.__class__``." msgstr "" +"Jeder Wert ist ein Objekt und hat daher eine *Klasse* (auch *Typ* genannt). " +"Diese ist als ``object.__class__`` gespeichert." msgid "Inheritance" -msgstr "" +msgstr "Vererbung" msgid "" "Of course, a language feature would not be worthy of the name \"class\" " "without supporting inheritance. The syntax for a derived class definition " "looks like this::" msgstr "" +"Natürlich wäre ein Sprachfeature des Namens „Klasse“ nicht würdig, wenn es " +"keine Vererbung unterstützen würde. Die Syntax für die Definition einer " +"abgeleiteten Klasse sieht wie folgt aus::" msgid "" "class DerivedClassName(BaseClassName):\n" @@ -726,6 +1189,12 @@ msgid "" " .\n" " " msgstr "" +"class DerivedClassName(BaseClassName):\n" +" \n" +" .\n" +" .\n" +" .\n" +" " msgid "" "The name :class:`!BaseClassName` must be defined in a namespace accessible " @@ -733,9 +1202,14 @@ msgid "" "class name, other arbitrary expressions are also allowed. This can be " "useful, for example, when the base class is defined in another module::" msgstr "" +"Der Name :class:`!BaseClassName` muss in einem Namensraum definiert sein, " +"der aus dem Gültigkeitsbereich der abgeleiteten Klassendefinition heraus " +"zugänglich ist. Anstelle eines Basisklassennamens sind auch andere beliebige " +"Ausdrücke erlaubt. Dies kann beispielsweise nützlich sein, wenn die " +"Basisklasse in einem anderen Modul definiert ist::" msgid "class DerivedClassName(modname.BaseClassName):" -msgstr "" +msgstr "class DerivedClassName(modname.BaseClassName):" msgid "" "Execution of a derived class definition proceeds the same as for a base " @@ -745,6 +1219,12 @@ msgid "" "rule is applied recursively if the base class itself is derived from some " "other class." msgstr "" +"Die Ausführung einer abgeleiteten Klassendefinition verläuft genauso wie für " +"eine Basisklasse. Wenn das Klassenobjekt erzeugt wird, wird die Basisklasse " +"gemerkt. Dies wird zur Auflösung von Attributreferenzen verwendet: Wird ein " +"angefordertes Attribut nicht in der Klasse gefunden, wird in der Basisklasse " +"weitergesucht. Diese Regel wird rekursiv angewendet, wenn die Basisklasse " +"selbst von einer anderen Klasse abgeleitet ist." msgid "" "There's nothing special about instantiation of derived classes: " @@ -753,6 +1233,12 @@ msgid "" "searched, descending down the chain of base classes if necessary, and the " "method reference is valid if this yields a function object." msgstr "" +"Die Instanziierung abgeleiteter Klassen weist keine Besonderheiten auf: " +"``DerivedClassName()`` erzeugt eine neue Instanz der Klasse. " +"Methodenreferenzen werden wie folgt aufgelöst: Das entsprechende " +"Klassenattribut wird gesucht, wobei bei Bedarf die Kette der Basisklassen " +"durchsucht wird. Die Methodenreferenz ist gültig, wenn dies ein " +"Funktionsobjekt ergibt." msgid "" "Derived classes may override methods of their base classes. Because methods " @@ -761,24 +1247,40 @@ msgid "" "class may end up calling a method of a derived class that overrides it. " "(For C++ programmers: all methods in Python are effectively ``virtual``.)" msgstr "" +"Abgeleitete Klassen können Methoden ihrer Basisklassen überschreiben. Da " +"Methoden keine besonderen Privilegien beim Aufruf anderer Methoden desselben " +"Objekts besitzen, kann das Aufrufen einer in derselben Basisklasse " +"definierten Methode letztlich dazu führen, dass eine Methode einer " +"abgeleiteten Klasse aufgerufen wird, die diese überschreibt. (Für C++ " +"Programmierer: Alle Methoden in Python sind effektiv ``virtual``.)" msgid "" "An overriding method in a derived class may in fact want to extend rather " "than simply replace the base class method of the same name. There is a " -"simple way to call the base class method directly: just call ``BaseClassName." -"methodname(self, arguments)``. This is occasionally useful to clients as " -"well. (Note that this only works if the base class is accessible as " -"``BaseClassName`` in the global scope.)" -msgstr "" +"simple way to call the base class method directly: just call " +"``BaseClassName.methodname(self, arguments)``. This is occasionally useful " +"to clients as well. (Note that this only works if the base class is " +"accessible as ``BaseClassName`` in the global scope.)" +msgstr "" +"Eine überschreibende Methode in einer abgeleiteten Klasse möchte die Methode " +"gleichen Namens der Basisklasse womöglich erweitern, anstatt sie einfach zu " +"ersetzen. Es gibt einen einfachen Weg, die Methode der Basisklasse direkt " +"aufzurufen: Man ruft einfach ``BaseClassName.methodname(self, argumente)`` " +"auf. Dies ist gelegentlich auch für Clients nützlich. (Beachte, dass dies " +"nur funktioniert, wenn die Basisklasse als ``BaseClassName`` im globalen " +"Gültigkeitsbereich zugänglich ist.)" msgid "Python has two built-in functions that work with inheritance:" -msgstr "" +msgstr "Python bietet zwei eingebaute Funktionen, die mit Vererbung arbeiten:" msgid "" "Use :func:`isinstance` to check an instance's type: ``isinstance(obj, int)`` " "will be ``True`` only if ``obj.__class__`` is :class:`int` or some class " "derived from :class:`int`." msgstr "" +"Verwende :func:`isinstance`, um den Typ einer Instanz zu überprüfen: " +"``isinstance(obj, int)`` ist nur dann ``True``, wenn ``obj.__class__`` " +"gleich :class:`int` oder einer von :class:`int` abgeleiteten Klasse ist." msgid "" "Use :func:`issubclass` to check class inheritance: ``issubclass(bool, int)`` " @@ -786,14 +1288,20 @@ msgid "" "``issubclass(float, int)`` is ``False`` since :class:`float` is not a " "subclass of :class:`int`." msgstr "" +"Verwende :func:`issubclass`, um die Klassenvererbung zu überprüfen: " +"``issubclass(bool, int)`` ist ``True``, da :class:`bool` eine Unterklasse " +"von :class:`int` ist. ``issubclass(float, int)`` ist jedoch ``False``, " +"da :class:`float` keine Unterklasse von :class:`int` ist." msgid "Multiple Inheritance" -msgstr "" +msgstr "Mehrfachvererbung" msgid "" "Python supports a form of multiple inheritance as well. A class definition " "with multiple base classes looks like this::" msgstr "" +"Python unterstützt auch eine Form der Mehrfachvererbung. Eine " +"Klassendefinition mit mehreren Basisklassen sieht wie folgt aus::" msgid "" "class DerivedClassName(Base1, Base2, Base3):\n" @@ -803,6 +1311,12 @@ msgid "" " .\n" " " msgstr "" +"class DerivedClassName(Base1, Base2, Base3):\n" +" \n" +" .\n" +" .\n" +" .\n" +" " msgid "" "For most purposes, in the simplest cases, you can think of the search for " @@ -813,6 +1327,14 @@ msgid "" "classes of :class:`!Base1`, and if it was not found there, it was searched " "for in :class:`!Base2`, and so on." msgstr "" +"Für die meisten Zwecke kann man sich die Suche nach Attributen, die von " +"einer Elternklasse geerbt wurden, in den einfachsten Fällen als Tiefensuche " +"von links nach rechts vorstellen, bei der dieselbe Klasse bei " +"Überschneidungen in der Hierarchie nicht zweimal durchsucht wird. Wenn ein " +"Attribut also nicht in :class:`!DerivedClassName` gefunden wird, wird " +"in :class:`!Base1` gesucht, dann (rekursiv) in den Basisklassen von :class:`!" +"Base1`, und falls es dort nicht gefunden wurde, wird in :class:`!Base2` " +"gesucht und so weiter." msgid "" "In fact, it is slightly more complex than that; the method resolution order " @@ -821,6 +1343,11 @@ msgid "" "method and is more powerful than the super call found in single-inheritance " "languages." msgstr "" +"Tatsächlich ist es etwas komplexer: Die Method Auflösungsreihenfolge (Method " +"Resolution Order) ändert sich dynamisch, um kooperative Aufrufe " +"von :func:`super` zu unterstützen. Dieser Ansatz ist in einigen anderen " +"Sprachen mit Mehrfachvererbung als „call-next-method“ bekannt und ist " +"mächtiger als der Super-Aufruf in Sprachen mit einfacher Vererbung." msgid "" "Dynamic ordering is necessary because all cases of multiple inheritance " @@ -836,9 +1363,23 @@ msgid "" "properties make it possible to design reliable and extensible classes with " "multiple inheritance. For more detail, see :ref:`python_2.3_mro`." msgstr "" +"Eine dynamische Reihenfolge ist erforderlich, da alle Fälle von " +"Mehrfachvererbung eine oder mehrere Diamant-Beziehungen aufweisen (bei denen " +"auf mindestens eine der Elternklassen über mehrere Pfade von der untersten " +"Klasse aus zugegriffen werden kann). So erben beispielsweise alle Klassen " +"von :class:`object`, sodass jeder Fall von Mehrfachvererbung mehr als einen " +"Pfad bietet, um :class:`object` zu erreichen. Um zu verhindern, dass auf die " +"Basisklassen mehr als einmal zugegriffen wird, linearisiert der dynamische " +"Algorithmus die Suchreihenfolge so, dass die in jeder Klasse angegebene " +"Reihenfolge von links nach rechts erhalten bleibt, jede Elternklasse nur " +"einmal aufgerufen wird und die Reihenfolge monoton ist (was bedeutet, dass " +"von einer Klasse abgeleitet werden kann, ohne die Vorrangstellung ihrer " +"Elternklassen zu beeinträchtigen). Zusammengefasst ermöglichen diese " +"Eigenschaften den Entwurf zuverlässiger und erweiterbarer Klassen mit " +"Mehrfachvererbung. Weitere Details finden Sie unter :ref:`python_2.3_mro`." msgid "Private Variables" -msgstr "" +msgstr "Private Variablen" msgid "" "\"Private\" instance variables that cannot be accessed except from inside an " @@ -848,6 +1389,14 @@ msgid "" "a function, a method or a data member). It should be considered an " "implementation detail and subject to change without notice." msgstr "" +"Private“ Instanzvariablen, auf die nur von innerhalb eines Objekts " +"zugegriffen werden kann, gibt es in Python nicht. Es gibt jedoch eine " +"Konvention, an die sich der meiste Python-Code hält: Ein Name mit einem " +"führenden Unterstrich (z. B. ``_spam``) sollte als nicht-öffentlicher Teil " +"der API behandelt werden (unabhängig davon, ob es sich um eine Funktion, " +"eine Methode oder ein Datenelement handelt). Er sollte als " +"Implementierungsdetail betrachtet werden, das sich ohne Ankündigung ändern " +"kann." msgid "" "Since there is a valid use-case for class-private members (namely to avoid " @@ -859,16 +1408,31 @@ msgid "" "stripped. This mangling is done without regard to the syntactic position of " "the identifier, as long as it occurs within the definition of a class." msgstr "" +"Da es einen berechtigten Anwendungsfall für klassenprivate Elemente gibt " +"(nämlich das Vermeiden von Namenskollisionen mit Namen, die von Unterklassen " +"definiert werden), gibt es eine begrenzte Unterstützung für einen solchen " +"Mechanismus, der als :dfn:`Name-Mangling` bezeichnet wird. Jeder Bezeichner " +"der Form ``__spam`` (mindestens zwei führende Unterstriche, höchstens ein " +"nachstehender Unterstrich) wird textuell durch ``_klassenname__spam`` " +"ersetzt, wobei ``klassenname`` der aktuelle Klassenname ohne führende " +"Unterstriche ist. Dieses Umbennenung (Mangling) erfolgt ohne Rücksicht auf " +"die syntaktische Position des Bezeichners, solange es innerhalb der " +"Definition einer Klasse auftritt." msgid "" "The :ref:`private name mangling specifications ` for " "details and special cases." msgstr "" +"Die :ref:`Spezifikationen zur Namensumbenennung privater Elemente ` für Details und Spezialfälle." msgid "" "Name mangling is helpful for letting subclasses override methods without " "breaking intraclass method calls. For example::" msgstr "" +"Die Namensumbenennung ist nützlich, um Unterklassen das Überschreiben von " +"Methoden zu ermöglichen, ohne interne Methodenaufrufe innerhalb der Klasse " +"zu beeinträchtigen. Zum Beispiel::" msgid "" "class Mapping:\n" @@ -890,6 +1454,24 @@ msgid "" " for item in zip(keys, values):\n" " self.items_list.append(item)" msgstr "" +"class Mapping:\n" +" def __init__(self, iterable):\n" +" self.items_list = []\n" +" self.__update(iterable)\n" +"\n" +" def update(self, iterable):\n" +" for item in iterable:\n" +" self.items_list.append(item)\n" +"\n" +" __update = update # private Kopie der ursprünglichen Methode update()\n" +"\n" +"class MappingSubclass(Mapping):\n" +"\n" +" def update(self, keys, values):\n" +" # provides new signature for update()\n" +" # but does not break __init__()\n" +" for item in zip(keys, values):\n" +" self.items_list.append(item)" msgid "" "The above example would work even if ``MappingSubclass`` were to introduce a " @@ -897,6 +1479,10 @@ msgid "" "the ``Mapping`` class and ``_MappingSubclass__update`` in the " "``MappingSubclass`` class respectively." msgstr "" +"Das obige Beispiel würde selbst dann funktionieren, wenn ``MappingSubclass`` " +"einen ``__update``-Bezeichner einführen würde, da dieser in der Klasse " +"``Mapping`` durch ``_Mapping__update`` bzw. in der Klasse " +"``MappingSubclass`` durch ``_MappingSubclass__update`` ersetzt wird." msgid "" "Note that the mangling rules are designed mostly to avoid accidents; it " @@ -904,6 +1490,11 @@ msgid "" "private. This can even be useful in special circumstances, such as in the " "debugger." msgstr "" +"Beachten Sie, dass die Regeln zur Namensumbenennung hauptsächlich dazu " +"dienen, unbeabsichtigte Kollisionen zu vermeiden. Es ist weiterhin möglich, " +"auf eine Variable zuzugreifen oder diese zu verändern, die als privat gilt. " +"Dies kann unter besonderen Umständen sogar nützlich sein, beispielsweise im " +"Debugger." msgid "" "Notice that code passed to ``exec()`` or ``eval()`` does not consider the " @@ -913,15 +1504,24 @@ msgid "" "applies to ``getattr()``, ``setattr()`` and ``delattr()``, as well as when " "referencing ``__dict__`` directly." msgstr "" +"Beachten Sie, dass Code, der an ``exec()`` oder ``eval()`` übergeben wird, " +"den Klassennamen der aufrufenden Klasse nicht als die aktuelle Klasse " +"ansieht. Dies ähnelt der Wirkung der ``global``-Anweisung, deren Wirkung " +"ebenfalls auf Code beschränkt ist, der zusammen byte-kompiliert wird. Die " +"gleiche Einschränkung gilt für ``getattr()``, ``setattr()`` und " +"``delattr()`` sowie für die direkte Referenzierung von ``__dict__``." msgid "Odds and Ends" -msgstr "" +msgstr "Dies und Das" msgid "" "Sometimes it is useful to have a data type similar to the Pascal \"record\" " "or C \"struct\", bundling together a few named data items. The idiomatic " "approach is to use :mod:`dataclasses` for this purpose::" msgstr "" +"Manchmal ist ein Datentyp nützlich, der dem „record“ in Pascal oder der " +"„struct“ in C ähnelt und einige benannte Datenobjekte bündelt. Der " +"idiomatische Ansatz hierfür ist die Verwendung von :mod:`dataclasses`::" msgid "" "from dataclasses import dataclass\n" @@ -932,6 +1532,13 @@ msgid "" " dept: str\n" " salary: int" msgstr "" +"from dataclasses import dataclass\n" +"\n" +"@dataclass\n" +"class Employee:\n" +" name: str\n" +" dept: str\n" +" salary: int" msgid "" ">>> john = Employee('john', 'computer lab', 1000)\n" @@ -940,6 +1547,11 @@ msgid "" ">>> john.salary\n" "1000" msgstr "" +">>> john = Employee('john', 'computer lab', 1000)\n" +">>> john.dept\n" +"'computer lab'\n" +">>> john.salary\n" +"1000" msgid "" "A piece of Python code that expects a particular abstract data type can " @@ -949,21 +1561,34 @@ msgid "" "and :meth:`~io.TextIOBase.readline` that get the data from a string buffer " "instead, and pass it as an argument." msgstr "" +"Einem Stück Python-Code, das einen bestimmten abstrakten Datentyp erwartet, " +"kann oft stattdessen eine Klasse übergeben werden, die die Methoden dieses " +"Datentyps emuliert. Wenn du beispielsweise eine Funktion hast, die Daten aus " +"einem Dateiobjekt formatiert, kannst du eine Klasse mit den " +"Methoden :meth:`~io.TextIOBase.read` und :meth:`~io.TextIOBase.readline` " +"definieren, die die Daten stattdessen aus einem String-Puffer bezieht, und " +"eine Instanz davon als Argument übergeben." msgid "" -":ref:`Instance method objects ` have attributes, too: :" -"attr:`m.__self__ ` is the instance object with the method :" -"meth:`!m`, and :attr:`m.__func__ ` is the :ref:`function " -"object ` corresponding to the method." +":ref:`Instance method objects ` have attributes, " +"too: :attr:`m.__self__ ` is the instance object with the " +"method :meth:`!m`, and :attr:`m.__func__ ` is " +"the :ref:`function object ` corresponding to the method." msgstr "" +":ref:`Instanzmethoden-Objekte ` besitzen ebenfalls " +"Attribute: :attr:`m.__self__ ` ist das Instanzobjekt mit " +"der Methode :meth:`!m`, und :attr:`m.__func__ ` ist das der " +"Methode entsprechende :ref:`Funktionsobjekt `." msgid "Iterators" -msgstr "" +msgstr "Iteratoren" msgid "" "By now you have probably noticed that most container objects can be looped " "over using a :keyword:`for` statement::" msgstr "" +"Inzwischen hast du wahrscheinlich bemerkt, dass über die meisten Container-" +"Objekte mit einer :keyword:`for`-Anweisung iteriert werden kann::" msgid "" "for element in [1, 2, 3]:\n" @@ -977,18 +1602,39 @@ msgid "" "for line in open(\"myfile.txt\"):\n" " print(line, end='')" msgstr "" +"for element in [1, 2, 3]:\n" +" print(element)\n" +"for element in (1, 2, 3):\n" +" print(element)\n" +"for key in {'one':1, 'two':2}:\n" +" print(key)\n" +"for char in \"123\":\n" +" print(char)\n" +"for line in open(\"myfile.txt\"):\n" +" print(line, end='')" msgid "" "This style of access is clear, concise, and convenient. The use of " -"iterators pervades and unifies Python. Behind the scenes, the :keyword:" -"`for` statement calls :func:`iter` on the container object. The function " -"returns an iterator object that defines the method :meth:`~iterator." -"__next__` which accesses elements in the container one at a time. When " -"there are no more elements, :meth:`~iterator.__next__` raises a :exc:" -"`StopIteration` exception which tells the :keyword:`!for` loop to " -"terminate. You can call the :meth:`~iterator.__next__` method using the :" -"func:`next` built-in function; this example shows how it all works::" -msgstr "" +"iterators pervades and unifies Python. Behind the scenes, " +"the :keyword:`for` statement calls :func:`iter` on the container object. " +"The function returns an iterator object that defines the " +"method :meth:`~iterator.__next__` which accesses elements in the container " +"one at a time. When there are no more elements, :meth:`~iterator.__next__` " +"raises a :exc:`StopIteration` exception which tells the :keyword:`!for` loop " +"to terminate. You can call the :meth:`~iterator.__next__` method using " +"the :func:`next` built-in function; this example shows how it all works::" +msgstr "" +"Diese Art des Zugriffs ist klar, prägnant und bequem. Die Verwendung von " +"Iteratoren durchzieht und vereinheitlicht Python. Hinter den Kulissen ruft " +"die :keyword:`for`-Anweisung :func:`iter` für das Container-Objekt auf. Die " +"Funktion gibt ein Iterator-Objekt zurück, das die " +"Methode :meth:`~iterator.__next__` definiert, welche nacheinander auf die " +"Elemente im Container zugreift. Wenn keine Elemente mehr vorhanden sind, " +"löst :meth:`~iterator.__next__` eine :exc:`StopIteration`-Ausnahme aus, die " +"der :keyword:`!for`-Schleife mitteilt, dass sie beendet werden soll. Du " +"kannst die Methode :meth:`~iterator.__next__` über die eingebaute " +"Funktion :func:`next` aufrufen. Dieses Beispiel zeigt, wie das Ganze " +"funktioniert::\"" msgid "" ">>> s = 'abc'\n" @@ -1007,6 +1653,21 @@ msgid "" " next(it)\n" "StopIteration" msgstr "" +">>> s = 'abc'\n" +">>> it = iter(s)\n" +">>> it\n" +"\n" +">>> next(it)\n" +"'a'\n" +">>> next(it)\n" +"'b'\n" +">>> next(it)\n" +"'c'\n" +">>> next(it)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" next(it)\n" +"StopIteration" msgid "" "Having seen the mechanics behind the iterator protocol, it is easy to add " @@ -1015,6 +1676,11 @@ msgid "" "the class defines :meth:`!__next__`, then :meth:`!__iter__` can just return " "``self``::" msgstr "" +"Nachdem du die Mechanik hinter dem Iterator-Protokoll gesehen hast, ist es " +"einfach, deinen Klassen Iterator-Verhalten hinzuzufügen. Definiere " +"eine :meth:`~container.__iter__`-Methode, die ein Objekt mit " +"einer :meth:`~iterator.__next__`-Methode zurückgibt. Wenn die Klasse :meth:`!" +"__next__` definiert, kann :meth:`!__iter__` einfach ``self`` zurückgeben::" msgid "" "class Reverse:\n" @@ -1032,6 +1698,21 @@ msgid "" " self.index = self.index - 1\n" " return self.data[self.index]" msgstr "" +"class Reverse:\n" +" \"\"\"Iterator zum Durchlaufen einer Sequenz in umgekehrter Reihenfolge." +"\"\"\"\n" +" def __init__(self, data):\n" +" self.data = data\n" +" self.index = len(data)\n" +"\n" +" def __iter__(self):\n" +" return self\n" +"\n" +" def __next__(self):\n" +" if self.index == 0:\n" +" raise StopIteration\n" +" self.index = self.index - 1\n" +" return self.data[self.index]" msgid "" ">>> rev = Reverse('spam')\n" @@ -1045,24 +1726,44 @@ msgid "" "p\n" "s" msgstr "" +">>> rev = Reverse('spam')\n" +">>> iter(rev)\n" +"<__main__.Reverse object at 0x00A1DB50>\n" +">>> for char in rev:\n" +"... print(char)\n" +"...\n" +"m\n" +"a\n" +"p\n" +"s" msgid "Generators" -msgstr "" +msgstr "Generatoren" msgid "" ":term:`Generators ` are a simple and powerful tool for creating " -"iterators. They are written like regular functions but use the :keyword:" -"`yield` statement whenever they want to return data. Each time :func:`next` " -"is called on it, the generator resumes where it left off (it remembers all " -"the data values and which statement was last executed). An example shows " -"that generators can be trivially easy to create::" +"iterators. They are written like regular functions but use " +"the :keyword:`yield` statement whenever they want to return data. Each " +"time :func:`next` is called on it, the generator resumes where it left off " +"(it remembers all the data values and which statement was last executed). " +"An example shows that generators can be trivially easy to create::" msgstr "" +":term:`Generatoren ` sind ein einfaches und mächtiges Werkzeug " +"zum Erstellen von Iteratoren. Sie werden wie gewöhnliche Funktionen " +"geschrieben, verwenden aber die :keyword:`yield`-Anweisung, wann immer sie " +"Daten zurückgeben wollen. Jedes Mal, wenn :func:`next` darauf aufgerufen " +"wird, setzt der Generator an der Stelle fort, an der er aufgehört hat (er " +"merkt sich alle Datenwerte und welche Anweisung zuletzt ausgeführt wurde). " +"Ein Beispiel zeigt, dass Generatoren denkbar einfach zu erstellen sind::" msgid "" "def reverse(data):\n" " for index in range(len(data)-1, -1, -1):\n" " yield data[index]" msgstr "" +"def reverse(data):\n" +" for index in range(len(data)-1, -1, -1):\n" +" yield data[index]" msgid "" ">>> for char in reverse('golf'):\n" @@ -1073,20 +1774,36 @@ msgid "" "o\n" "g" msgstr "" +"\t>>> for char in reverse('golf'):\n" +"... print(char)\n" +"...\n" +"f\n" +"l\n" +"o\n" +"g\t" msgid "" "Anything that can be done with generators can also be done with class-based " "iterators as described in the previous section. What makes generators so " -"compact is that the :meth:`~iterator.__iter__` and :meth:`~generator." -"__next__` methods are created automatically." +"compact is that the :meth:`~iterator.__iter__` " +"and :meth:`~generator.__next__` methods are created automatically." msgstr "" +"Alles, was mit Generatoren gemacht werden kann, lässt sich auch mit " +"klassenbasierten Iteratoren umsetzen, wie im vorherigen Abschnitt " +"beschrieben. Was Generatoren so kompakt macht, ist, dass die " +"Methoden :meth:`~iterator.__iter__` und :meth:`~generator.__next__` " +"automatisch erstellt werden." msgid "" "Another key feature is that the local variables and execution state are " "automatically saved between calls. This made the function easier to write " -"and much more clear than an approach using instance variables like ``self." -"index`` and ``self.data``." +"and much more clear than an approach using instance variables like " +"``self.index`` and ``self.data``." msgstr "" +"Ein weiteres Schlüsselelement ist, dass die lokalen Variablen und der " +"Ausführungszustand zwischen den Aufrufen automatisch gespeichert werden. " +"Dadurch war die Funktion einfacher zu schreiben und viel übersichtlicher als " +"ein Ansatz mit Instanzvariablen wie ``self.index`` und ``self.data``." msgid "" "In addition to automatic method creation and saving program state, when " @@ -1094,9 +1811,14 @@ msgid "" "combination, these features make it easy to create iterators with no more " "effort than writing a regular function." msgstr "" +"Neben der automatischen Methodenerstellung und dem Speichern des " +"Programmzustands lösen Generatoren beim Beenden " +"automatisch :exc:`StopIteration` aus. In Kombination machen es diese " +"Funktionen einfach, Iteratoren mit nicht mehr Aufwand als beim Schreiben " +"einer normalen Funktion zu erstellen." msgid "Generator Expressions" -msgstr "" +msgstr "Generator-Ausdrücke" msgid "" "Some simple generators can be coded succinctly as expressions using a syntax " @@ -1106,9 +1828,16 @@ msgid "" "compact but less versatile than full generator definitions and tend to be " "more memory friendly than equivalent list comprehensions." msgstr "" +"Einige einfache Generatoren können prägnant als Ausdrücke geschrieben " +"werden, wobei eine Syntax ähnlich der von List-Comprehensions verwendet " +"wird, jedoch mit runden statt eckigen Klammern. Diese Ausdrücke sind für " +"Situationen konzipiert, in denen der Generator direkt von einer umgebenden " +"Funktion verwendet wird. Generator-Ausdrücke sind kompakter, aber weniger " +"vielseitig als vollständige Generator-Definitionen und tendenziell " +"speicherschonender als entsprechende List-Comprehensions." msgid "Examples::" -msgstr "" +msgstr "Beispiele::" msgid "" ">>> sum(i*i for i in range(10)) # sum of squares\n" @@ -1128,6 +1857,22 @@ msgid "" ">>> list(data[i] for i in range(len(data)-1, -1, -1))\n" "['f', 'l', 'o', 'g']" msgstr "" +">>> sum(i*i for i in range(10)) # Summe der Quadrate\n" +"285\n" +"\n" +">>> xvec = [10, 20, 30]\n" +">>> yvec = [7, 5, 3]\n" +">>> sum(x*y for x,y in zip(xvec, yvec)) # Skalarprodukt\n" +"260\n" +"\n" +">>> unique_words = set(word for line in page for word in line.split())\n" +"\n" +">>> valedictorian = max((student.gpa, student.name) for student in " +"graduates)\n" +"\n" +">>> data = 'golf'\n" +">>> list(data[i] for i in range(len(data)-1, -1, -1))\n" +"['f', 'l', 'o', 'g']" msgid "Footnotes" msgstr "Fußnoten" @@ -1140,15 +1885,22 @@ msgid "" "namespace implementation, and should be restricted to things like post-" "mortem debuggers." msgstr "" +"Bis auf eine Sache. Modulobjekte haben ein geheimes schreibgeschütztes " +"Attribut namens :attr:`~object.__dict__`, welches das Dictionary zurückgibt, " +"das zur Implementierung des Namensraums des Moduls verwendet wird; der Name " +"``__dict__`` ist ein Attribut, aber kein globaler Name. Offensichtlich " +"verletzt die Verwendung dieses Attributs die Abstraktion der Namensraum-" +"Implementierung und sollte auf Dinge wie Post-Mortem-Debugger beschränkt " +"werden." msgid "object" -msgstr "" +msgstr "Objekt" msgid "method" -msgstr "" +msgstr "Methode" msgid "name" -msgstr "" +msgstr "Namen" msgid "mangling" -msgstr "" +msgstr "Umbenennung" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index c43b3dc..fdae0e1 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -1,19 +1,18 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. +# FIRST AUTHOR Swen Bachmann <142266608+sba72@users.noreply.github.com>, 2026. # # Translators: # python-doc bot, 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-25 14:12+0000\n" -"PO-Revision-Date: 2025-09-16 00:02+0000\n" -"Last-Translator: python-doc bot, 2025\n" +"PO-Revision-Date: 2026-07-31 21:01+0000\n" +"Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,20 +21,16 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "More Control Flow Tools" -msgstr "" +msgstr "Mehr Werkzeuge zur Ablaufsteuerung" -msgid "" -"As well as the :keyword:`while` statement just introduced, Python uses a few " -"more that we will encounter in this chapter." -msgstr "" +msgid "As well as the :keyword:`while` statement just introduced, Python uses a few more that we will encounter in this chapter." +msgstr "Neben der eben vorgestellten :keyword:while-Anweisung verwendet Python noch ein paar weitere, die uns in diesem Kapitel begegnen werden." msgid ":keyword:`!if` Statements" -msgstr "" +msgstr ":keyword:`!if`-Anweisungen" -msgid "" -"Perhaps the most well-known statement type is the :keyword:`if` statement. " -"For example::" -msgstr "" +msgid "Perhaps the most well-known statement type is the :keyword:`if` statement. For example::" +msgstr "Die wohl bekannteste Anweisungsart ist die :keyword:`if`-Anweisung. Zum Beispiel::" msgid "" ">>> x = int(input(\"Please enter an integer: \"))\n" @@ -52,32 +47,30 @@ msgid "" "...\n" "More" msgstr "" +"x = int(input(\"Bitte gib eine ganzzahlige Zahl ein: \"))\n" +"Bitte gib eine ganzzahlige Zahl ein: 42\n" +"if x < 0:\n" +"... x = 0\n" +"... print('Negativ in Null geändert')\n" +"... elif x == 0:\n" +"... print('Null')\n" +"... elif x == 1:\n" +"... print('Eins')\n" +"... else:\n" +"... print('Mehr')\n" +"...\n" +"Mehr" -msgid "" -"There can be zero or more :keyword:`elif` parts, and the :keyword:`else` " -"part is optional. The keyword ':keyword:`!elif`' is short for 'else if', " -"and is useful to avoid excessive indentation. An :keyword:`!if` ... :" -"keyword:`!elif` ... :keyword:`!elif` ... sequence is a substitute for the " -"``switch`` or ``case`` statements found in other languages." -msgstr "" +msgid "There can be zero or more :keyword:`elif` parts, and the :keyword:`else` part is optional. The keyword ':keyword:`!elif`' is short for 'else if', and is useful to avoid excessive indentation. An :keyword:`!if` ... :keyword:`!elif` ... :keyword:`!elif` ... sequence is a substitute for the ``switch`` or ``case`` statements found in other languages." +msgstr "Es kann kein oder mehrere :keyword:`elif`-Teile geben, und der :keyword:`else`-Teil ist optional. Das Schlüsselwort ':keyword:`!elif`' ist die Abkürzung für 'else if' und ist nützlich, um übermäßige Einrückungen zu vermeiden. Eine :keyword:`!if` ... :keyword:`!elif` ... :keyword:`!elif` ...-Sequenz ersetzt die `switch`- oder `case`-Anweisungen, die man aus anderen Sprachen kennt." -msgid "" -"If you're comparing the same value to several constants, or checking for " -"specific types or attributes, you may also find the :keyword:`!match` " -"statement useful. For more details see :ref:`tut-match`." +msgid "If you're comparing the same value to several constants, or checking for specific types or attributes, you may also find the :keyword:`!match` statement useful. For more details see :ref:`tut-match`." msgstr "" msgid ":keyword:`!for` Statements" msgstr "" -msgid "" -"The :keyword:`for` statement in Python differs a bit from what you may be " -"used to in C or Pascal. Rather than always iterating over an arithmetic " -"progression of numbers (like in Pascal), or giving the user the ability to " -"define both the iteration step and halting condition (as C), Python's :" -"keyword:`!for` statement iterates over the items of any sequence (a list or " -"a string), in the order that they appear in the sequence. For example (no " -"pun intended):" +msgid "The :keyword:`for` statement in Python differs a bit from what you may be used to in C or Pascal. Rather than always iterating over an arithmetic progression of numbers (like in Pascal), or giving the user the ability to define both the iteration step and halting condition (as C), Python's :keyword:`!for` statement iterates over the items of any sequence (a list or a string), in the order that they appear in the sequence. For example (no pun intended):" msgstr "" msgid "" @@ -91,10 +84,7 @@ msgid "" "defenestrate 12" msgstr "" -msgid "" -"Code that modifies a collection while iterating over that same collection " -"can be tricky to get right. Instead, it is usually more straight-forward to " -"loop over a copy of the collection or to create a new collection::" +msgid "Code that modifies a collection while iterating over that same collection can be tricky to get right. Instead, it is usually more straight-forward to loop over a copy of the collection or to create a new collection::" msgstr "" msgid "" @@ -116,9 +106,7 @@ msgstr "" msgid "The :func:`range` Function" msgstr "" -msgid "" -"If you do need to iterate over a sequence of numbers, the built-in function :" -"func:`range` comes in handy. It generates arithmetic progressions::" +msgid "If you do need to iterate over a sequence of numbers, the built-in function :func:`range` comes in handy. It generates arithmetic progressions::" msgstr "" msgid "" @@ -132,11 +120,7 @@ msgid "" "4" msgstr "" -msgid "" -"The given end point is never part of the generated sequence; ``range(10)`` " -"generates 10 values, the legal indices for items of a sequence of length " -"10. It is possible to let the range start at another number, or to specify " -"a different increment (even negative; sometimes this is called the 'step')::" +msgid "The given end point is never part of the generated sequence; ``range(10)`` generates 10 values, the legal indices for items of a sequence of length 10. It is possible to let the range start at another number, or to specify a different increment (even negative; sometimes this is called the 'step')::" msgstr "" msgid "" @@ -150,9 +134,7 @@ msgid "" "[-10, -40, -70]" msgstr "" -msgid "" -"To iterate over the indices of a sequence, you can combine :func:`range` " -"and :func:`len` as follows::" +msgid "To iterate over the indices of a sequence, you can combine :func:`range` and :func:`len` as follows::" msgstr "" msgid "" @@ -167,9 +149,7 @@ msgid "" "4 lamb" msgstr "" -msgid "" -"In most such cases, however, it is convenient to use the :func:`enumerate` " -"function, see :ref:`tut-loopidioms`." +msgid "In most such cases, however, it is convenient to use the :func:`enumerate` function, see :ref:`tut-loopidioms`." msgstr "" msgid "A strange thing happens if you just print a range::" @@ -180,19 +160,10 @@ msgid "" "range(0, 10)" msgstr "" -msgid "" -"In many ways the object returned by :func:`range` behaves as if it is a " -"list, but in fact it isn't. It is an object which returns the successive " -"items of the desired sequence when you iterate over it, but it doesn't " -"really make the list, thus saving space." +msgid "In many ways the object returned by :func:`range` behaves as if it is a list, but in fact it isn't. It is an object which returns the successive items of the desired sequence when you iterate over it, but it doesn't really make the list, thus saving space." msgstr "" -msgid "" -"We say such an object is :term:`iterable`, that is, suitable as a target for " -"functions and constructs that expect something from which they can obtain " -"successive items until the supply is exhausted. We have seen that the :" -"keyword:`for` statement is such a construct, while an example of a function " -"that takes an iterable is :func:`sum`::" +msgid "We say such an object is :term:`iterable`, that is, suitable as a target for functions and constructs that expect something from which they can obtain successive items until the supply is exhausted. We have seen that the :keyword:`for` statement is such a construct, while an example of a function that takes an iterable is :func:`sum`::" msgstr "" msgid "" @@ -200,18 +171,13 @@ msgid "" "6" msgstr "" -msgid "" -"Later we will see more functions that return iterables and take iterables as " -"arguments. In chapter :ref:`tut-structures`, we will discuss in more detail " -"about :func:`list`." +msgid "Later we will see more functions that return iterables and take iterables as arguments. In chapter :ref:`tut-structures`, we will discuss in more detail about :func:`list`." msgstr "" msgid ":keyword:`!break` and :keyword:`!continue` Statements" msgstr "" -msgid "" -"The :keyword:`break` statement breaks out of the innermost enclosing :" -"keyword:`for` or :keyword:`while` loop::" +msgid "The :keyword:`break` statement breaks out of the innermost enclosing :keyword:`for` or :keyword:`while` loop::" msgstr "" msgid "" @@ -227,9 +193,7 @@ msgid "" "9 equals 3 * 3" msgstr "" -msgid "" -"The :keyword:`continue` statement continues with the next iteration of the " -"loop::" +msgid "The :keyword:`continue` statement continues with the next iteration of the loop::" msgstr "" msgid "" @@ -252,33 +216,19 @@ msgstr "" msgid ":keyword:`!else` Clauses on Loops" msgstr "" -msgid "" -"In a :keyword:`!for` or :keyword:`!while` loop the :keyword:`!break` " -"statement may be paired with an :keyword:`!else` clause. If the loop " -"finishes without executing the :keyword:`!break`, the :keyword:`!else` " -"clause executes." +msgid "In a :keyword:`!for` or :keyword:`!while` loop the :keyword:`!break` statement may be paired with an :keyword:`!else` clause. If the loop finishes without executing the :keyword:`!break`, the :keyword:`!else` clause executes." msgstr "" -msgid "" -"In a :keyword:`for` loop, the :keyword:`!else` clause is executed after the " -"loop finishes its final iteration, that is, if no break occurred." +msgid "In a :keyword:`for` loop, the :keyword:`!else` clause is executed after the loop finishes its final iteration, that is, if no break occurred." msgstr "" -msgid "" -"In a :keyword:`while` loop, it's executed after the loop's condition becomes " -"false." +msgid "In a :keyword:`while` loop, it's executed after the loop's condition becomes false." msgstr "" -msgid "" -"In either kind of loop, the :keyword:`!else` clause is **not** executed if " -"the loop was terminated by a :keyword:`break`. Of course, other ways of " -"ending the loop early, such as a :keyword:`return` or a raised exception, " -"will also skip execution of the :keyword:`else` clause." +msgid "In either kind of loop, the :keyword:`!else` clause is **not** executed if the loop was terminated by a :keyword:`break`. Of course, other ways of ending the loop early, such as a :keyword:`return` or a raised exception, will also skip execution of the :keyword:`else` clause." msgstr "" -msgid "" -"This is exemplified in the following :keyword:`!for` loop, which searches " -"for prime numbers::" +msgid "This is exemplified in the following :keyword:`!for` loop, which searches for prime numbers::" msgstr "" msgid "" @@ -301,34 +251,19 @@ msgid "" "9 equals 3 * 3" msgstr "" -msgid "" -"(Yes, this is the correct code. Look closely: the ``else`` clause belongs " -"to the ``for`` loop, **not** the ``if`` statement.)" +msgid "(Yes, this is the correct code. Look closely: the ``else`` clause belongs to the ``for`` loop, **not** the ``if`` statement.)" msgstr "" -msgid "" -"One way to think of the else clause is to imagine it paired with the ``if`` " -"inside the loop. As the loop executes, it will run a sequence like if/if/if/" -"else. The ``if`` is inside the loop, encountered a number of times. If the " -"condition is ever true, a ``break`` will happen. If the condition is never " -"true, the ``else`` clause outside the loop will execute." +msgid "One way to think of the else clause is to imagine it paired with the ``if`` inside the loop. As the loop executes, it will run a sequence like if/if/if/else. The ``if`` is inside the loop, encountered a number of times. If the condition is ever true, a ``break`` will happen. If the condition is never true, the ``else`` clause outside the loop will execute." msgstr "" -msgid "" -"When used with a loop, the ``else`` clause has more in common with the " -"``else`` clause of a :keyword:`try` statement than it does with that of " -"``if`` statements: a ``try`` statement's ``else`` clause runs when no " -"exception occurs, and a loop's ``else`` clause runs when no ``break`` " -"occurs. For more on the ``try`` statement and exceptions, see :ref:`tut-" -"handling`." +msgid "When used with a loop, the ``else`` clause has more in common with the ``else`` clause of a :keyword:`try` statement than it does with that of ``if`` statements: a ``try`` statement's ``else`` clause runs when no exception occurs, and a loop's ``else`` clause runs when no ``break`` occurs. For more on the ``try`` statement and exceptions, see :ref:`tut-handling`." msgstr "" msgid ":keyword:`!pass` Statements" msgstr "" -msgid "" -"The :keyword:`pass` statement does nothing. It can be used when a statement " -"is required syntactically but the program requires no action. For example::" +msgid "The :keyword:`pass` statement does nothing. It can be used when a statement is required syntactically but the program requires no action. For example::" msgstr "" msgid "" @@ -346,11 +281,7 @@ msgid "" "..." msgstr "" -msgid "" -"Another place :keyword:`pass` can be used is as a place-holder for a " -"function or conditional body when you are working on new code, allowing you " -"to keep thinking at a more abstract level. The :keyword:`!pass` is silently " -"ignored::" +msgid "Another place :keyword:`pass` can be used is as a place-holder for a function or conditional body when you are working on new code, allowing you to keep thinking at a more abstract level. The :keyword:`!pass` is silently ignored::" msgstr "" msgid "" @@ -359,29 +290,16 @@ msgid "" "..." msgstr "" -msgid "" -"For this last case, many people use the ellipsis literal :code:`...` instead " -"of :code:`pass`. This use has no special meaning to Python, and is not part " -"of the language definition (you could use any constant expression here), " -"but :code:`...` is used conventionally as a placeholder body as well. See :" -"ref:`bltin-ellipsis-object`." +msgid "For this last case, many people use the ellipsis literal :code:`...` instead of :code:`pass`. This use has no special meaning to Python, and is not part of the language definition (you could use any constant expression here), but :code:`...` is used conventionally as a placeholder body as well. See :ref:`bltin-ellipsis-object`." msgstr "" msgid ":keyword:`!match` Statements" msgstr "" -msgid "" -"A :keyword:`match` statement takes an expression and compares its value to " -"successive patterns given as one or more case blocks. This is superficially " -"similar to a switch statement in C, Java or JavaScript (and many other " -"languages), but it's more similar to pattern matching in languages like Rust " -"or Haskell. Only the first pattern that matches gets executed and it can " -"also extract components (sequence elements or object attributes) from the " -"value into variables. If no case matches, none of the branches is executed." +msgid "A :keyword:`match` statement takes an expression and compares its value to successive patterns given as one or more case blocks. This is superficially similar to a switch statement in C, Java or JavaScript (and many other languages), but it's more similar to pattern matching in languages like Rust or Haskell. Only the first pattern that matches gets executed and it can also extract components (sequence elements or object attributes) from the value into variables. If no case matches, none of the branches is executed." msgstr "" -msgid "" -"The simplest form compares a subject value against one or more literals::" +msgid "The simplest form compares a subject value against one or more literals::" msgstr "" msgid "" @@ -397,13 +315,10 @@ msgid "" " return \"Something's wrong with the internet\"" msgstr "" -msgid "" -"Note the last block: the \"variable name\" ``_`` acts as a *wildcard* and " -"never fails to match." +msgid "Note the last block: the \"variable name\" ``_`` acts as a *wildcard* and never fails to match." msgstr "" -msgid "" -"You can combine several literals in a single pattern using ``|`` (\"or\")::" +msgid "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" msgid "" @@ -411,9 +326,7 @@ msgid "" " return \"Not allowed\"" msgstr "" -msgid "" -"Patterns can look like unpacking assignments, and can be used to bind " -"variables::" +msgid "Patterns can look like unpacking assignments, and can be used to bind variables::" msgstr "" msgid "" @@ -431,19 +344,10 @@ msgid "" " raise ValueError(\"Not a point\")" msgstr "" -msgid "" -"Study that one carefully! The first pattern has two literals, and can be " -"thought of as an extension of the literal pattern shown above. But the next " -"two patterns combine a literal and a variable, and the variable *binds* a " -"value from the subject (``point``). The fourth pattern captures two values, " -"which makes it conceptually similar to the unpacking assignment ``(x, y) = " -"point``." +msgid "Study that one carefully! The first pattern has two literals, and can be thought of as an extension of the literal pattern shown above. But the next two patterns combine a literal and a variable, and the variable *binds* a value from the subject (``point``). The fourth pattern captures two values, which makes it conceptually similar to the unpacking assignment ``(x, y) = point``." msgstr "" -msgid "" -"If you are using classes to structure your data you can use the class name " -"followed by an argument list resembling a constructor, but with the ability " -"to capture attributes into variables::" +msgid "If you are using classes to structure your data you can use the class name followed by an argument list resembling a constructor, but with the ability to capture attributes into variables::" msgstr "" msgid "" @@ -466,13 +370,7 @@ msgid "" " print(\"Not a point\")" msgstr "" -msgid "" -"You can use positional parameters with some builtin classes that provide an " -"ordering for their attributes (e.g. dataclasses). You can also define a " -"specific position for attributes in patterns by setting the " -"``__match_args__`` special attribute in your classes. If it's set to (\"x\", " -"\"y\"), the following patterns are all equivalent (and all bind the ``y`` " -"attribute to the ``var`` variable)::" +msgid "You can use positional parameters with some builtin classes that provide an ordering for their attributes (e.g. dataclasses). You can also define a specific position for attributes in patterns by setting the ``__match_args__`` special attribute in your classes. If it's set to (\"x\", \"y\"), the following patterns are all equivalent (and all bind the ``y`` attribute to the ``var`` variable)::" msgstr "" msgid "" @@ -482,19 +380,10 @@ msgid "" "Point(y=var, x=1)" msgstr "" -msgid "" -"A recommended way to read patterns is to look at them as an extended form of " -"what you would put on the left of an assignment, to understand which " -"variables would be set to what. Only the standalone names (like ``var`` " -"above) are assigned to by a match statement. Dotted names (like ``foo." -"bar``), attribute names (the ``x=`` and ``y=`` above) or class names " -"(recognized by the \"(...)\" next to them like ``Point`` above) are never " -"assigned to." +msgid "A recommended way to read patterns is to look at them as an extended form of what you would put on the left of an assignment, to understand which variables would be set to what. Only the standalone names (like ``var`` above) are assigned to by a match statement. Dotted names (like ``foo.bar``), attribute names (the ``x=`` and ``y=`` above) or class names (recognized by the \"(...)\" next to them like ``Point`` above) are never assigned to." msgstr "" -msgid "" -"Patterns can be arbitrarily nested. For example, if we have a short list of " -"Points, with ``__match_args__`` added, we could match it like this::" +msgid "Patterns can be arbitrarily nested. For example, if we have a short list of Points, with ``__match_args__`` added, we could match it like this::" msgstr "" msgid "" @@ -517,10 +406,7 @@ msgid "" " print(\"Something else\")" msgstr "" -msgid "" -"We can add an ``if`` clause to a pattern, known as a \"guard\". If the " -"guard is false, ``match`` goes on to try the next case block. Note that " -"value capture happens before the guard is evaluated::" +msgid "We can add an ``if`` clause to a pattern, known as a \"guard\". If the guard is false, ``match`` goes on to try the next case block. Note that value capture happens before the guard is evaluated::" msgstr "" msgid "" @@ -534,24 +420,13 @@ msgstr "" msgid "Several other key features of this statement:" msgstr "" -msgid "" -"Like unpacking assignments, tuple and list patterns have exactly the same " -"meaning and actually match arbitrary sequences. An important exception is " -"that they don't match iterators or strings." +msgid "Like unpacking assignments, tuple and list patterns have exactly the same meaning and actually match arbitrary sequences. An important exception is that they don't match iterators or strings." msgstr "" -msgid "" -"Sequence patterns support extended unpacking: ``[x, y, *rest]`` and ``(x, y, " -"*rest)`` work similar to unpacking assignments. The name after ``*`` may " -"also be ``_``, so ``(x, y, *_)`` matches a sequence of at least two items " -"without binding the remaining items." +msgid "Sequence patterns support extended unpacking: ``[x, y, *rest]`` and ``(x, y, *rest)`` work similar to unpacking assignments. The name after ``*`` may also be ``_``, so ``(x, y, *_)`` matches a sequence of at least two items without binding the remaining items." msgstr "" -msgid "" -"Mapping patterns: ``{\"bandwidth\": b, \"latency\": l}`` captures the " -"``\"bandwidth\"`` and ``\"latency\"`` values from a dictionary. Unlike " -"sequence patterns, extra keys are ignored. An unpacking like ``**rest`` is " -"also supported. (But ``**_`` would be redundant, so it is not allowed.)" +msgid "Mapping patterns: ``{\"bandwidth\": b, \"latency\": l}`` captures the ``\"bandwidth\"`` and ``\"latency\"`` values from a dictionary. Unlike sequence patterns, extra keys are ignored. An unpacking like ``**rest`` is also supported. (But ``**_`` would be redundant, so it is not allowed.)" msgstr "" msgid "Subpatterns may be captured using the ``as`` keyword::" @@ -560,19 +435,13 @@ msgstr "" msgid "case (Point(x1, y1), Point(x2, y2) as p2): ..." msgstr "" -msgid "" -"will capture the second element of the input as ``p2`` (as long as the input " -"is a sequence of two points)" +msgid "will capture the second element of the input as ``p2`` (as long as the input is a sequence of two points)" msgstr "" -msgid "" -"Most literals are compared by equality, however the singletons ``True``, " -"``False`` and ``None`` are compared by identity." +msgid "Most literals are compared by equality, however the singletons ``True``, ``False`` and ``None`` are compared by identity." msgstr "" -msgid "" -"Patterns may use named constants. These must be dotted names to prevent " -"them from being interpreted as capture variable::" +msgid "Patterns may use named constants. These must be dotted names to prevent them from being interpreted as capture variable::" msgstr "" msgid "" @@ -593,17 +462,13 @@ msgid "" " print(\"I'm feeling the blues :(\")" msgstr "" -msgid "" -"For a more detailed explanation and additional examples, you can look into :" -"pep:`636` which is written in a tutorial format." +msgid "For a more detailed explanation and additional examples, you can look into :pep:`636` which is written in a tutorial format." msgstr "" msgid "Defining Functions" msgstr "" -msgid "" -"We can create a function that writes the Fibonacci series to an arbitrary " -"boundary::" +msgid "We can create a function that writes the Fibonacci series to an arbitrary boundary::" msgstr "" msgid "" @@ -620,50 +485,19 @@ msgid "" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597" msgstr "" -msgid "" -"The keyword :keyword:`def` introduces a function *definition*. It must be " -"followed by the function name and the parenthesized list of formal " -"parameters. The statements that form the body of the function start at the " -"next line, and must be indented." +msgid "The keyword :keyword:`def` introduces a function *definition*. It must be followed by the function name and the parenthesized list of formal parameters. The statements that form the body of the function start at the next line, and must be indented." msgstr "" -msgid "" -"The first statement of the function body can optionally be a string literal; " -"this string literal is the function's documentation string, or :dfn:" -"`docstring`. (More about docstrings can be found in the section :ref:`tut-" -"docstrings`.) There are tools which use docstrings to automatically produce " -"online or printed documentation, or to let the user interactively browse " -"through code; it's good practice to include docstrings in code that you " -"write, so make a habit of it." +msgid "The first statement of the function body can optionally be a string literal; this string literal is the function's documentation string, or :dfn:`docstring`. (More about docstrings can be found in the section :ref:`tut-docstrings`.) There are tools which use docstrings to automatically produce online or printed documentation, or to let the user interactively browse through code; it's good practice to include docstrings in code that you write, so make a habit of it." msgstr "" -msgid "" -"The *execution* of a function introduces a new symbol table used for the " -"local variables of the function. More precisely, all variable assignments " -"in a function store the value in the local symbol table; whereas variable " -"references first look in the local symbol table, then in the local symbol " -"tables of enclosing functions, then in the global symbol table, and finally " -"in the table of built-in names. Thus, global variables and variables of " -"enclosing functions cannot be directly assigned a value within a function " -"(unless, for global variables, named in a :keyword:`global` statement, or, " -"for variables of enclosing functions, named in a :keyword:`nonlocal` " -"statement), although they may be referenced." +msgid "The *execution* of a function introduces a new symbol table used for the local variables of the function. More precisely, all variable assignments in a function store the value in the local symbol table; whereas variable references first look in the local symbol table, then in the local symbol tables of enclosing functions, then in the global symbol table, and finally in the table of built-in names. Thus, global variables and variables of enclosing functions cannot be directly assigned a value within a function (unless, for global variables, named in a :keyword:`global` statement, or, for variables of enclosing functions, named in a :keyword:`nonlocal` statement), although they may be referenced." msgstr "" -msgid "" -"The actual parameters (arguments) to a function call are introduced in the " -"local symbol table of the called function when it is called; thus, arguments " -"are passed using *call by value* (where the *value* is always an object " -"*reference*, not the value of the object). [#]_ When a function calls " -"another function, or calls itself recursively, a new local symbol table is " -"created for that call." +msgid "The actual parameters (arguments) to a function call are introduced in the local symbol table of the called function when it is called; thus, arguments are passed using *call by value* (where the *value* is always an object *reference*, not the value of the object). [#]_ When a function calls another function, or calls itself recursively, a new local symbol table is created for that call." msgstr "" -msgid "" -"A function definition associates the function name with the function object " -"in the current symbol table. The interpreter recognizes the object pointed " -"to by that name as a user-defined function. Other names can also point to " -"that same function object and can also be used to access the function::" +msgid "A function definition associates the function name with the function object in the current symbol table. The interpreter recognizes the object pointed to by that name as a user-defined function. Other names can also point to that same function object and can also be used to access the function::" msgstr "" msgid "" @@ -674,14 +508,7 @@ msgid "" "0 1 1 2 3 5 8 13 21 34 55 89" msgstr "" -msgid "" -"Coming from other languages, you might object that ``fib`` is not a function " -"but a procedure since it doesn't return a value. In fact, even functions " -"without a :keyword:`return` statement do return a value, albeit a rather " -"boring one. This value is called ``None`` (it's a built-in name). Writing " -"the value ``None`` is normally suppressed by the interpreter if it would be " -"the only value written. You can see it if you really want to using :func:" -"`print`::" +msgid "Coming from other languages, you might object that ``fib`` is not a function but a procedure since it doesn't return a value. In fact, even functions without a :keyword:`return` statement do return a value, albeit a rather boring one. This value is called ``None`` (it's a built-in name). Writing the value ``None`` is normally suppressed by the interpreter if it would be the only value written. You can see it if you really want to using :func:`print`::" msgstr "" msgid "" @@ -690,9 +517,7 @@ msgid "" "None" msgstr "" -msgid "" -"It is simple to write a function that returns a list of the numbers of the " -"Fibonacci series, instead of printing it::" +msgid "It is simple to write a function that returns a list of the numbers of the Fibonacci series, instead of printing it::" msgstr "" msgid "" @@ -713,41 +538,22 @@ msgstr "" msgid "This example, as usual, demonstrates some new Python features:" msgstr "" -msgid "" -"The :keyword:`return` statement returns with a value from a function. :" -"keyword:`!return` without an expression argument returns ``None``. Falling " -"off the end of a function also returns ``None``." +msgid "The :keyword:`return` statement returns with a value from a function. :keyword:`!return` without an expression argument returns ``None``. Falling off the end of a function also returns ``None``." msgstr "" -msgid "" -"The statement ``result.append(a)`` calls a *method* of the list object " -"``result``. A method is a function that 'belongs' to an object and is named " -"``obj.methodname``, where ``obj`` is some object (this may be an " -"expression), and ``methodname`` is the name of a method that is defined by " -"the object's type. Different types define different methods. Methods of " -"different types may have the same name without causing ambiguity. (It is " -"possible to define your own object types and methods, using *classes*, see :" -"ref:`tut-classes`) The method :meth:`~list.append` shown in the example is " -"defined for list objects; it adds a new element at the end of the list. In " -"this example it is equivalent to ``result = result + [a]``, but more " -"efficient." +msgid "The statement ``result.append(a)`` calls a *method* of the list object ``result``. A method is a function that 'belongs' to an object and is named ``obj.methodname``, where ``obj`` is some object (this may be an expression), and ``methodname`` is the name of a method that is defined by the object's type. Different types define different methods. Methods of different types may have the same name without causing ambiguity. (It is possible to define your own object types and methods, using *classes*, see :ref:`tut-classes`) The method :meth:`~list.append` shown in the example is defined for list objects; it adds a new element at the end of the list. In this example it is equivalent to ``result = result + [a]``, but more efficient." msgstr "" msgid "More on Defining Functions" msgstr "" -msgid "" -"It is also possible to define functions with a variable number of arguments. " -"There are three forms, which can be combined." +msgid "It is also possible to define functions with a variable number of arguments. There are three forms, which can be combined." msgstr "" msgid "Default Argument Values" msgstr "" -msgid "" -"The most useful form is to specify a default value for one or more " -"arguments. This creates a function that can be called with fewer arguments " -"than it is defined to allow. For example::" +msgid "The most useful form is to specify a default value for one or more arguments. This creates a function that can be called with fewer arguments than it is defined to allow. For example::" msgstr "" msgid "" @@ -767,28 +573,19 @@ msgstr "" msgid "This function can be called in several ways:" msgstr "" -msgid "" -"giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" +msgid "giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" msgstr "" -msgid "" -"giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " -"2)``" +msgid "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', 2)``" msgstr "" -msgid "" -"or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come " -"on, only yes or no!')``" +msgid "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come on, only yes or no!')``" msgstr "" -msgid "" -"This example also introduces the :keyword:`in` keyword. This tests whether " -"or not a sequence contains a certain value." +msgid "This example also introduces the :keyword:`in` keyword. This tests whether or not a sequence contains a certain value." msgstr "" -msgid "" -"The default values are evaluated at the point of function definition in the " -"*defining* scope, so that ::" +msgid "The default values are evaluated at the point of function definition in the *defining* scope, so that ::" msgstr "" msgid "" @@ -804,11 +601,7 @@ msgstr "" msgid "will print ``5``." msgstr "" -msgid "" -"**Important warning:** The default value is evaluated only once. This makes " -"a difference when the default is a mutable object such as a list, " -"dictionary, or instances of most classes. For example, the following " -"function accumulates the arguments passed to it on subsequent calls::" +msgid "**Important warning:** The default value is evaluated only once. This makes a difference when the default is a mutable object such as a list, dictionary, or instances of most classes. For example, the following function accumulates the arguments passed to it on subsequent calls::" msgstr "" msgid "" @@ -830,9 +623,7 @@ msgid "" "[1, 2, 3]" msgstr "" -msgid "" -"If you don't want the default to be shared between subsequent calls, you can " -"write the function like this instead::" +msgid "If you don't want the default to be shared between subsequent calls, you can write the function like this instead::" msgstr "" msgid "" @@ -846,10 +637,7 @@ msgstr "" msgid "Keyword Arguments" msgstr "" -msgid "" -"Functions can also be called using :term:`keyword arguments ` of the form ``kwarg=value``. For instance, the following " -"function::" +msgid "Functions can also be called using :term:`keyword arguments ` of the form ``kwarg=value``. For instance, the following function::" msgstr "" msgid "" @@ -860,22 +648,16 @@ msgid "" " print(\"-- It's\", state, \"!\")" msgstr "" -msgid "" -"accepts one required argument (``voltage``) and three optional arguments " -"(``state``, ``action``, and ``type``). This function can be called in any " -"of the following ways::" +msgid "accepts one required argument (``voltage``) and three optional arguments (``state``, ``action``, and ``type``). This function can be called in any of the following ways::" msgstr "" msgid "" -"parrot(1000) # 1 positional " -"argument\n" +"parrot(1000) # 1 positional argument\n" "parrot(voltage=1000) # 1 keyword argument\n" "parrot(voltage=1000000, action='VOOOOOM') # 2 keyword arguments\n" "parrot(action='VOOOOOM', voltage=1000000) # 2 keyword arguments\n" -"parrot('a million', 'bereft of life', 'jump') # 3 positional " -"arguments\n" -"parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 " -"keyword" +"parrot('a million', 'bereft of life', 'jump') # 3 positional arguments\n" +"parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 keyword" msgstr "" msgid "but all the following calls would be invalid::" @@ -883,20 +665,12 @@ msgstr "" msgid "" "parrot() # required argument missing\n" -"parrot(voltage=5.0, 'dead') # non-keyword argument after a keyword " -"argument\n" +"parrot(voltage=5.0, 'dead') # non-keyword argument after a keyword argument\n" "parrot(110, voltage=220) # duplicate value for the same argument\n" "parrot(actor='John Cleese') # unknown keyword argument" msgstr "" -msgid "" -"In a function call, keyword arguments must follow positional arguments. All " -"the keyword arguments passed must match one of the arguments accepted by the " -"function (e.g. ``actor`` is not a valid argument for the ``parrot`` " -"function), and their order is not important. This also includes non-" -"optional arguments (e.g. ``parrot(voltage=1000)`` is valid too). No argument " -"may receive a value more than once. Here's an example that fails due to this " -"restriction::" +msgid "In a function call, keyword arguments must follow positional arguments. All the keyword arguments passed must match one of the arguments accepted by the function (e.g. ``actor`` is not a valid argument for the ``parrot`` function), and their order is not important. This also includes non-optional arguments (e.g. ``parrot(voltage=1000)`` is valid too). No argument may receive a value more than once. Here's an example that fails due to this restriction::" msgstr "" msgid "" @@ -909,14 +683,7 @@ msgid "" "TypeError: function() got multiple values for argument 'a'" msgstr "" -msgid "" -"When a final formal parameter of the form ``**name`` is present, it receives " -"a dictionary (see :ref:`typesmapping`) containing all keyword arguments " -"except for those corresponding to a formal parameter. This may be combined " -"with a formal parameter of the form ``*name`` (described in the next " -"subsection) which receives a :ref:`tuple ` containing the " -"positional arguments beyond the formal parameter list. (``*name`` must " -"occur before ``**name``.) For example, if we define a function like this::" +msgid "When a final formal parameter of the form ``**name`` is present, it receives a dictionary (see :ref:`typesmapping`) containing all keyword arguments except for those corresponding to a formal parameter. This may be combined with a formal parameter of the form ``*name`` (described in the next subsection) which receives a :ref:`tuple ` containing the positional arguments beyond the formal parameter list. (``*name`` must occur before ``**name``.) For example, if we define a function like this::" msgstr "" msgid "" @@ -955,20 +722,13 @@ msgid "" "sketch : Cheese Shop Sketch" msgstr "" -msgid "" -"Note that the order in which the keyword arguments are printed is guaranteed " -"to match the order in which they were provided in the function call." +msgid "Note that the order in which the keyword arguments are printed is guaranteed to match the order in which they were provided in the function call." msgstr "" msgid "Special parameters" msgstr "" -msgid "" -"By default, arguments may be passed to a Python function either by position " -"or explicitly by keyword. For readability and performance, it makes sense to " -"restrict the way arguments can be passed so that a developer need only look " -"at the function definition to determine if items are passed by position, by " -"position or keyword, or by keyword." +msgid "By default, arguments may be passed to a Python function either by position or explicitly by keyword. For readability and performance, it makes sense to restrict the way arguments can be passed so that a developer need only look at the function definition to determine if items are passed by position, by position or keyword, or by keyword." msgstr "" msgid "A function definition may look like:" @@ -983,54 +743,34 @@ msgid "" " -- Positional only" msgstr "" -msgid "" -"where ``/`` and ``*`` are optional. If used, these symbols indicate the kind " -"of parameter by how the arguments may be passed to the function: positional-" -"only, positional-or-keyword, and keyword-only. Keyword parameters are also " -"referred to as named parameters." +msgid "where ``/`` and ``*`` are optional. If used, these symbols indicate the kind of parameter by how the arguments may be passed to the function: positional-only, positional-or-keyword, and keyword-only. Keyword parameters are also referred to as named parameters." msgstr "" msgid "Positional-or-Keyword Arguments" msgstr "" -msgid "" -"If ``/`` and ``*`` are not present in the function definition, arguments may " -"be passed to a function by position or by keyword." +msgid "If ``/`` and ``*`` are not present in the function definition, arguments may be passed to a function by position or by keyword." msgstr "" msgid "Positional-Only Parameters" msgstr "" -msgid "" -"Looking at this in a bit more detail, it is possible to mark certain " -"parameters as *positional-only*. If *positional-only*, the parameters' order " -"matters, and the parameters cannot be passed by keyword. Positional-only " -"parameters are placed before a ``/`` (forward-slash). The ``/`` is used to " -"logically separate the positional-only parameters from the rest of the " -"parameters. If there is no ``/`` in the function definition, there are no " -"positional-only parameters." +msgid "Looking at this in a bit more detail, it is possible to mark certain parameters as *positional-only*. If *positional-only*, the parameters' order matters, and the parameters cannot be passed by keyword. Positional-only parameters are placed before a ``/`` (forward-slash). The ``/`` is used to logically separate the positional-only parameters from the rest of the parameters. If there is no ``/`` in the function definition, there are no positional-only parameters." msgstr "" -msgid "" -"Parameters following the ``/`` may be *positional-or-keyword* or *keyword-" -"only*." +msgid "Parameters following the ``/`` may be *positional-or-keyword* or *keyword-only*." msgstr "" msgid "Keyword-Only Arguments" msgstr "" -msgid "" -"To mark parameters as *keyword-only*, indicating the parameters must be " -"passed by keyword argument, place an ``*`` in the arguments list just before " -"the first *keyword-only* parameter." +msgid "To mark parameters as *keyword-only*, indicating the parameters must be passed by keyword argument, place an ``*`` in the arguments list just before the first *keyword-only* parameter." msgstr "" msgid "Function Examples" msgstr "" -msgid "" -"Consider the following example function definitions paying close attention " -"to the markers ``/`` and ``*``::" +msgid "Consider the following example function definitions paying close attention to the markers ``/`` and ``*``::" msgstr "" msgid "" @@ -1047,10 +787,7 @@ msgid "" "... print(pos_only, standard, kwd_only)" msgstr "" -msgid "" -"The first function definition, ``standard_arg``, the most familiar form, " -"places no restrictions on the calling convention and arguments may be passed " -"by position or keyword::" +msgid "The first function definition, ``standard_arg``, the most familiar form, places no restrictions on the calling convention and arguments may be passed by position or keyword::" msgstr "" msgid "" @@ -1061,9 +798,7 @@ msgid "" "2" msgstr "" -msgid "" -"The second function ``pos_only_arg`` is restricted to only use positional " -"parameters as there is a ``/`` in the function definition::" +msgid "The second function ``pos_only_arg`` is restricted to only use positional parameters as there is a ``/`` in the function definition::" msgstr "" msgid "" @@ -1073,13 +808,10 @@ msgid "" ">>> pos_only_arg(arg=1)\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" -"TypeError: pos_only_arg() got some positional-only arguments passed as " -"keyword arguments: 'arg'" +"TypeError: pos_only_arg() got some positional-only arguments passed as keyword arguments: 'arg'" msgstr "" -msgid "" -"The third function ``kwd_only_arg`` only allows keyword arguments as " -"indicated by a ``*`` in the function definition::" +msgid "The third function ``kwd_only_arg`` only allows keyword arguments as indicated by a ``*`` in the function definition::" msgstr "" msgid "" @@ -1092,9 +824,7 @@ msgid "" "3" msgstr "" -msgid "" -"And the last uses all three calling conventions in the same function " -"definition::" +msgid "And the last uses all three calling conventions in the same function definition::" msgstr "" msgid "" @@ -1112,14 +842,10 @@ msgid "" ">>> combined_example(pos_only=1, standard=2, kwd_only=3)\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" -"TypeError: combined_example() got some positional-only arguments passed as " -"keyword arguments: 'pos_only'" +"TypeError: combined_example() got some positional-only arguments passed as keyword arguments: 'pos_only'" msgstr "" -msgid "" -"Finally, consider this function definition which has a potential collision " -"between the positional argument ``name`` and ``**kwds`` which has ``name`` " -"as a key::" +msgid "Finally, consider this function definition which has a potential collision between the positional argument ``name`` and ``**kwds`` which has ``name`` as a key::" msgstr "" msgid "" @@ -1127,9 +853,7 @@ msgid "" " return 'name' in kwds" msgstr "" -msgid "" -"There is no possible call that will make it return ``True`` as the keyword " -"``'name'`` will always bind to the first parameter. For example::" +msgid "There is no possible call that will make it return ``True`` as the keyword ``'name'`` will always bind to the first parameter. For example::" msgstr "" msgid "" @@ -1140,10 +864,7 @@ msgid "" ">>>" msgstr "" -msgid "" -"But using ``/`` (positional only arguments), it is possible since it allows " -"``name`` as a positional argument and ``'name'`` as a key in the keyword " -"arguments::" +msgid "But using ``/`` (positional only arguments), it is possible since it allows ``name`` as a positional argument and ``'name'`` as a key in the keyword arguments::" msgstr "" msgid "" @@ -1154,17 +875,13 @@ msgid "" "True" msgstr "" -msgid "" -"In other words, the names of positional-only parameters can be used in " -"``**kwds`` without ambiguity." +msgid "In other words, the names of positional-only parameters can be used in ``**kwds`` without ambiguity." msgstr "" msgid "Recap" msgstr "" -msgid "" -"The use case will determine which parameters to use in the function " -"definition::" +msgid "The use case will determine which parameters to use in the function definition::" msgstr "" msgid "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" @@ -1173,33 +890,19 @@ msgstr "" msgid "As guidance:" msgstr "" -msgid "" -"Use positional-only if you want the name of the parameters to not be " -"available to the user. This is useful when parameter names have no real " -"meaning, if you want to enforce the order of the arguments when the function " -"is called or if you need to take some positional parameters and arbitrary " -"keywords." +msgid "Use positional-only if you want the name of the parameters to not be available to the user. This is useful when parameter names have no real meaning, if you want to enforce the order of the arguments when the function is called or if you need to take some positional parameters and arbitrary keywords." msgstr "" -msgid "" -"Use keyword-only when names have meaning and the function definition is more " -"understandable by being explicit with names or you want to prevent users " -"relying on the position of the argument being passed." +msgid "Use keyword-only when names have meaning and the function definition is more understandable by being explicit with names or you want to prevent users relying on the position of the argument being passed." msgstr "" -msgid "" -"For an API, use positional-only to prevent breaking API changes if the " -"parameter's name is modified in the future." +msgid "For an API, use positional-only to prevent breaking API changes if the parameter's name is modified in the future." msgstr "" msgid "Arbitrary Argument Lists" msgstr "" -msgid "" -"Finally, the least frequently used option is to specify that a function can " -"be called with an arbitrary number of arguments. These arguments will be " -"wrapped up in a tuple (see :ref:`tut-tuples`). Before the variable number " -"of arguments, zero or more normal arguments may occur. ::" +msgid "Finally, the least frequently used option is to specify that a function can be called with an arbitrary number of arguments. These arguments will be wrapped up in a tuple (see :ref:`tut-tuples`). Before the variable number of arguments, zero or more normal arguments may occur. ::" msgstr "" msgid "" @@ -1207,12 +910,7 @@ msgid "" " file.write(separator.join(args))" msgstr "" -msgid "" -"Normally, these *variadic* arguments will be last in the list of formal " -"parameters, because they scoop up all remaining input arguments that are " -"passed to the function. Any formal parameters which occur after the " -"``*args`` parameter are 'keyword-only' arguments, meaning that they can only " -"be used as keywords rather than positional arguments. ::" +msgid "Normally, these *variadic* arguments will be last in the list of formal parameters, because they scoop up all remaining input arguments that are passed to the function. Any formal parameters which occur after the ``*args`` parameter are 'keyword-only' arguments, meaning that they can only be used as keywords rather than positional arguments. ::" msgstr "" msgid "" @@ -1228,27 +926,18 @@ msgstr "" msgid "Unpacking Argument Lists" msgstr "" -msgid "" -"The reverse situation occurs when the arguments are already in a list or " -"tuple but need to be unpacked for a function call requiring separate " -"positional arguments. For instance, the built-in :func:`range` function " -"expects separate *start* and *stop* arguments. If they are not available " -"separately, write the function call with the ``*``\\ -operator to unpack " -"the arguments out of a list or tuple::" +msgid "The reverse situation occurs when the arguments are already in a list or tuple but need to be unpacked for a function call requiring separate positional arguments. For instance, the built-in :func:`range` function expects separate *start* and *stop* arguments. If they are not available separately, write the function call with the ``*``\\ -operator to unpack the arguments out of a list or tuple::" msgstr "" msgid "" ">>> list(range(3, 6)) # normal call with separate arguments\n" "[3, 4, 5]\n" ">>> args = [3, 6]\n" -">>> list(range(*args)) # call with arguments unpacked from a " -"list\n" +">>> list(range(*args)) # call with arguments unpacked from a list\n" "[3, 4, 5]" msgstr "" -msgid "" -"In the same fashion, dictionaries can deliver keyword arguments with the " -"``**``\\ -operator::" +msgid "In the same fashion, dictionaries can deliver keyword arguments with the ``**``\\ -operator::" msgstr "" msgid "" @@ -1257,24 +946,15 @@ msgid "" "... print(\"if you put\", voltage, \"volts through it.\", end=' ')\n" "... print(\"E's\", state, \"!\")\n" "...\n" -">>> d = {\"voltage\": \"four million\", \"state\": \"bleedin' demised\", " -"\"action\": \"VOOM\"}\n" +">>> d = {\"voltage\": \"four million\", \"state\": \"bleedin' demised\", \"action\": \"VOOM\"}\n" ">>> parrot(**d)\n" -"-- This parrot wouldn't VOOM if you put four million volts through it. E's " -"bleedin' demised !" +"-- This parrot wouldn't VOOM if you put four million volts through it. E's bleedin' demised !" msgstr "" msgid "Lambda Expressions" msgstr "" -msgid "" -"Small anonymous functions can be created with the :keyword:`lambda` keyword. " -"This function returns the sum of its two arguments: ``lambda a, b: a+b``. " -"Lambda functions can be used wherever function objects are required. They " -"are syntactically restricted to a single expression. Semantically, they are " -"just syntactic sugar for a normal function definition. Like nested function " -"definitions, lambda functions can reference variables from the containing " -"scope::" +msgid "Small anonymous functions can be created with the :keyword:`lambda` keyword. This function returns the sum of its two arguments: ``lambda a, b: a+b``. Lambda functions can be used wherever function objects are required. They are syntactically restricted to a single expression. Semantically, they are just syntactic sugar for a normal function definition. Like nested function definitions, lambda functions can reference variables from the containing scope::" msgstr "" msgid "" @@ -1288,10 +968,7 @@ msgid "" "43" msgstr "" -msgid "" -"The above example uses a lambda expression to return a function. Another " -"use is to pass a small function as an argument. For instance, :meth:`list." -"sort` takes a sorting key function *key* which can be a lambda function::" +msgid "The above example uses a lambda expression to return a function. Another use is to pass a small function as an argument. For instance, :meth:`list.sort` takes a sorting key function *key* which can be a lambda function::" msgstr "" msgid "" @@ -1304,38 +981,16 @@ msgstr "" msgid "Documentation Strings" msgstr "" -msgid "" -"Here are some conventions about the content and formatting of documentation " -"strings." +msgid "Here are some conventions about the content and formatting of documentation strings." msgstr "" -msgid "" -"The first line should always be a short, concise summary of the object's " -"purpose. For brevity, it should not explicitly state the object's name or " -"type, since these are available by other means (except if the name happens " -"to be a verb describing a function's operation). This line should begin " -"with a capital letter and end with a period." +msgid "The first line should always be a short, concise summary of the object's purpose. For brevity, it should not explicitly state the object's name or type, since these are available by other means (except if the name happens to be a verb describing a function's operation). This line should begin with a capital letter and end with a period." msgstr "" -msgid "" -"If there are more lines in the documentation string, the second line should " -"be blank, visually separating the summary from the rest of the description. " -"The following lines should be one or more paragraphs describing the object's " -"calling conventions, its side effects, etc." +msgid "If there are more lines in the documentation string, the second line should be blank, visually separating the summary from the rest of the description. The following lines should be one or more paragraphs describing the object's calling conventions, its side effects, etc." msgstr "" -msgid "" -"The Python parser does not strip indentation from multi-line string literals " -"in Python, so tools that process documentation have to strip indentation if " -"desired. This is done using the following convention. The first non-blank " -"line *after* the first line of the string determines the amount of " -"indentation for the entire documentation string. (We can't use the first " -"line since it is generally adjacent to the string's opening quotes so its " -"indentation is not apparent in the string literal.) Whitespace " -"\"equivalent\" to this indentation is then stripped from the start of all " -"lines of the string. Lines that are indented less should not occur, but if " -"they occur all their leading whitespace should be stripped. Equivalence of " -"whitespace should be tested after expansion of tabs (to 8 spaces, normally)." +msgid "The Python parser does not strip indentation from multi-line string literals in Python, so tools that process documentation have to strip indentation if desired. This is done using the following convention. The first non-blank line *after* the first line of the string determines the amount of indentation for the entire documentation string. (We can't use the first line since it is generally adjacent to the string's opening quotes so its indentation is not apparent in the string literal.) Whitespace \"equivalent\" to this indentation is then stripped from the start of all lines of the string. Lines that are indented less should not occur, but if they occur all their leading whitespace should be stripped. Equivalence of whitespace should be tested after expansion of tabs (to 8 spaces, normally)." msgstr "" msgid "Here is an example of a multi-line docstring::" @@ -1358,21 +1013,10 @@ msgstr "" msgid "Function Annotations" msgstr "" -msgid "" -":ref:`Function annotations ` are completely optional metadata " -"information about the types used by user-defined functions (see :pep:`3107` " -"and :pep:`484` for more information)." +msgid ":ref:`Function annotations ` are completely optional metadata information about the types used by user-defined functions (see :pep:`3107` and :pep:`484` for more information)." msgstr "" -msgid "" -":term:`Annotations ` are stored in the :attr:`~object." -"__annotations__` attribute of the function as a dictionary and have no " -"effect on any other part of the function. Parameter annotations are defined " -"by a colon after the parameter name, followed by an expression evaluating to " -"the value of the annotation. Return annotations are defined by a literal ``-" -">``, followed by an expression, between the parameter list and the colon " -"denoting the end of the :keyword:`def` statement. The following example has " -"a required argument, an optional argument, and the return value annotated::" +msgid ":term:`Annotations ` are stored in the :attr:`~object.__annotations__` attribute of the function as a dictionary and have no effect on any other part of the function. Parameter annotations are defined by a colon after the parameter name, followed by an expression evaluating to the value of the annotation. Return annotations are defined by a literal ``->``, followed by an expression, between the parameter list and the colon denoting the end of the :keyword:`def` statement. The following example has a required argument, an optional argument, and the return value annotated::" msgstr "" msgid "" @@ -1382,8 +1026,7 @@ msgid "" "... return ham + ' and ' + eggs\n" "...\n" ">>> f('spam')\n" -"Annotations: {'ham': , 'return': , 'eggs': }\n" +"Annotations: {'ham': , 'return': , 'eggs': }\n" "Arguments: spam eggs\n" "'spam and eggs'" msgstr "" @@ -1391,41 +1034,25 @@ msgstr "" msgid "Intermezzo: Coding Style" msgstr "" -msgid "" -"Now that you are about to write longer, more complex pieces of Python, it is " -"a good time to talk about *coding style*. Most languages can be written (or " -"more concise, *formatted*) in different styles; some are more readable than " -"others. Making it easy for others to read your code is always a good idea, " -"and adopting a nice coding style helps tremendously for that." +msgid "Now that you are about to write longer, more complex pieces of Python, it is a good time to talk about *coding style*. Most languages can be written (or more concise, *formatted*) in different styles; some are more readable than others. Making it easy for others to read your code is always a good idea, and adopting a nice coding style helps tremendously for that." msgstr "" -msgid "" -"For Python, :pep:`8` has emerged as the style guide that most projects " -"adhere to; it promotes a very readable and eye-pleasing coding style. Every " -"Python developer should read it at some point; here are the most important " -"points extracted for you:" +msgid "For Python, :pep:`8` has emerged as the style guide that most projects adhere to; it promotes a very readable and eye-pleasing coding style. Every Python developer should read it at some point; here are the most important points extracted for you:" msgstr "" msgid "Use 4-space indentation, and no tabs." msgstr "" -msgid "" -"4 spaces are a good compromise between small indentation (allows greater " -"nesting depth) and large indentation (easier to read). Tabs introduce " -"confusion, and are best left out." +msgid "4 spaces are a good compromise between small indentation (allows greater nesting depth) and large indentation (easier to read). Tabs introduce confusion, and are best left out." msgstr "" msgid "Wrap lines so that they don't exceed 79 characters." msgstr "" -msgid "" -"This helps users with small displays and makes it possible to have several " -"code files side-by-side on larger displays." +msgid "This helps users with small displays and makes it possible to have several code files side-by-side on larger displays." msgstr "" -msgid "" -"Use blank lines to separate functions and classes, and larger blocks of code " -"inside functions." +msgid "Use blank lines to separate functions and classes, and larger blocks of code inside functions." msgstr "" msgid "When possible, put comments on a line of their own." @@ -1434,37 +1061,22 @@ msgstr "" msgid "Use docstrings." msgstr "" -msgid "" -"Use spaces around operators and after commas, but not directly inside " -"bracketing constructs: ``a = f(1, 2) + g(3, 4)``." +msgid "Use spaces around operators and after commas, but not directly inside bracketing constructs: ``a = f(1, 2) + g(3, 4)``." msgstr "" -msgid "" -"Name your classes and functions consistently; the convention is to use " -"``UpperCamelCase`` for classes and ``lowercase_with_underscores`` for " -"functions and methods. Always use ``self`` as the name for the first method " -"argument (see :ref:`tut-firstclasses` for more on classes and methods)." +msgid "Name your classes and functions consistently; the convention is to use ``UpperCamelCase`` for classes and ``lowercase_with_underscores`` for functions and methods. Always use ``self`` as the name for the first method argument (see :ref:`tut-firstclasses` for more on classes and methods)." msgstr "" -msgid "" -"Don't use fancy encodings if your code is meant to be used in international " -"environments. Python's default, UTF-8, or even plain ASCII work best in any " -"case." +msgid "Don't use fancy encodings if your code is meant to be used in international environments. Python's default, UTF-8, or even plain ASCII work best in any case." msgstr "" -msgid "" -"Likewise, don't use non-ASCII characters in identifiers if there is only the " -"slightest chance people speaking a different language will read or maintain " -"the code." +msgid "Likewise, don't use non-ASCII characters in identifiers if there is only the slightest chance people speaking a different language will read or maintain the code." msgstr "" msgid "Footnotes" msgstr "Fußnoten" -msgid "" -"Actually, *call by object reference* would be a better description, since if " -"a mutable object is passed, the caller will see any changes the callee makes " -"to it (items inserted into a list)." +msgid "Actually, *call by object reference* would be a better description, since if a mutable object is passed, the caller will see any changes the callee makes to it (items inserted into a list)." msgstr "" msgid "statement" diff --git a/tutorial/errors.po b/tutorial/errors.po index 51dc91f..1c134e3 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -51,6 +51,11 @@ msgid "" " ^^^^^\n" "SyntaxError: invalid syntax" msgstr "" +">>> while True print('Hello world')\n" +" Datei \"\“, Zeile 1\n" +" while True print('Hello world')\n" +" ^^^^^\n" +"SyntaxError: ungültige Syntax" msgid "" "The parser repeats the offending line and displays little arrows pointing at " @@ -58,11 +63,19 @@ msgid "" "place that needs to be fixed. In the example, the error is detected at the " "function :func:`print`, since a colon (``':'``) is missing just before it." msgstr "" +"Der Parser wiederholt die fehlerhafte Zeile und zeigt kleine Pfeile an, die " +"auf die Stelle verweisen, an der der Fehler erkannt wurde. Beachte, " +"dass dies nicht immer die Stelle ist, die korrigiert werden muss. Im " +"Beispiel wird der Fehler bei der Funktions :func:`print` erkannt, da " +"unmittelbar davor ein Doppelpunkt (``':'``) fehlt." msgid "" "The file name (```` in our example) and line number are printed so " "you know where to look in case the input came from a file." msgstr "" +"Der Dateiname (in unserem Beispiel ```` ) und die Zeilennummer " +"werden angezeigt, damit Sie wissen, wo Sie nachsehen müssen, falls die " +"Eingabe aus einer Datei stammt." msgid "Exceptions" msgstr "Ausnahmen" @@ -102,6 +115,24 @@ msgid "" " ~~~~^~~\n" "TypeError: can only concatenate str (not \"int\") to str" msgstr "" +">>> 10 * (1/0)\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 1, in \n" +" 10 * (1/0)\n" +" ~^~\n" +"ZeroDivisionError: Division durch Null\n" +">>> 4 + spam*3\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 1, in \n" +" 4 + spam*3\n" +" ^^^^\n" +"NameError: Der Name 'spam' ist nicht definiert\n" +">>> '2' + 2\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 1, in \n" +" '2' + 2\n" +" ~~~~^~~\n" +"TypeError: Es können nur Zeichenketten (nicht \"int\“) mit Zeichenketten verkettet werden" msgid "" "The last line of the error message indicates what happened. Exceptions come " @@ -162,7 +193,7 @@ msgstr "" "Schauen Sie sich das folgende Beispiel an, das den Benutzer zur Eingabe " "auffordert, bis ein gültiger Integer eingegeben wurde, dem Benutzer aber " "erlaubt, das Programm zu unterbrechen (mit :kbd:`Control-C` oder was auch " -"immer das Betriebssystem unterstützt); beachten Sie, dass eine vom Benutzer " +"immer das Betriebssystem unterstützt); beachte, dass eine vom Benutzer " "erzeugte Unterbrechung durch das Auslösen der Ausnahme :exc:" "`KeyboardInterrupt` signalisiert wird. ::" @@ -175,6 +206,13 @@ msgid "" "... print(\"Oops! That was no valid number. Try again...\")\n" "..." msgstr "" +">>> while True:\n" +"... try:\n" +"... x = int(input(\"Bitte gib eine Zahl ein: \"))\n" +"... break\n" +"... except ValueError:\n" +"... print(\"Hoppla! Das war keine gültige Zahl. Versuche es noch einmal...\")\n" +"..." msgid "The :keyword:`try` statement works as follows." msgstr "Die :keyword:`try` Anweisung funktioniert wie folgt." @@ -236,6 +274,8 @@ msgid "" "... except (RuntimeError, TypeError, NameError):\n" "... pass" msgstr "" +"... except (RuntimeError, TypeError, NameError):\n" +"... pass" msgid "" "A class in an :keyword:`except` clause matches exceptions which are " @@ -244,6 +284,12 @@ msgid "" "match instances of its base classes). For example, the following code will " "print B, C, D in that order::" msgstr "" +"Eine Klasse in einer :keyword:`except` -Klausel deckt Ausnahmen ab, bei " +"denen es sich um Instanzen dieser Klasse selbst oder einer ihrer " +"abgeleiteten Klassen handelt (jedoch nicht umgekehrt – eine " +"*except“-Klausel*, in der eine abgeleitete Klasse aufgeführt ist, deckt " +"keine Instanzen ihrer Basisklassen ab). Der folgende Code gibt " +"beispielsweise B, C und D in dieser Reihenfolge aus:" msgid "" "class B(Exception):\n" @@ -265,13 +311,31 @@ msgid "" " except B:\n" " print(\"B\")" msgstr "" +"class B(Exception):\n" +" pass\n" +"\n" +"class C(B):\n" +" pass\n" +"\n" +"class D(C):\n" +" pass\n" +"\n" +"for cls in [B, C, D]:\n" +" try:\n" +" raise cls()\n" +" except D:\n" +" print(\"D\")\n" +" except C:\n" +" print(\"C\")\n" +" except B:\n" +" print(\"B\")" msgid "" "Note that if the *except clauses* were reversed (with ``except B`` first), " "it would have printed B, B, B --- the first matching *except clause* is " "triggered." msgstr "" -"Beachten Sie, dass, wenn die *Exception-Klauseln* umgekehrt wären (mit " +"Beachte, dass, wenn die *Exception-Klauseln* umgekehrt wären (mit " "``except B`` zuerst), B, B, B ausgegeben worden wäre --- die erste passende " "*Exception-Klausel* wird ausgelöst." @@ -377,6 +441,19 @@ msgid "" " print(f\"Unexpected {err=}, {type(err)=}\")\n" " raise" msgstr "" +"import sys\n" +"\n" +"try:\n" +" f = open('myfile.txt')\n" +" s = f.readline()\n" +" i = int(s.strip())\n" +"except OSError as err:\n" +" print(\"OS-Fehler:\", err)\n" +"except ValueError:\n" +" print(\"Daten konnten nicht in eine Ganzzahl konvertiert werden.\")\n" +"except Exception as err:\n" +" print(f\"Unerwarteter {err=}, {type(err)=}\")\n" +" raise" msgid "" "The :keyword:`try` ... :keyword:`except` statement has an optional *else " @@ -399,6 +476,14 @@ msgid "" " print(arg, 'has', len(f.readlines()), 'lines')\n" " f.close()" msgstr "" +"for arg in sys.argv[1:]:\n" +" try:\n" +" f = open(arg, 'r')\n" +" except OSError:\n" +" print('kann nicht geöffnet werden', arg)\n" +" else:\n" +" print(arg, 'hat', len(f.readlines()), 'Zeilen')\n" +" f.close()" msgid "" "The use of the :keyword:`!else` clause is better than adding additional code " @@ -433,6 +518,15 @@ msgid "" "...\n" "Handling run-time error: division by zero" msgstr "" +">>> def this_fails():\n" +"... x = 1/0\n" +"...\n" +">>> try:\n" +"... this_fails()\n" +"... except ZeroDivisionError as err:\n" +"... print('Behandlung eines Laufzeitfehlers:', err)\n" +"...\n" +"Behandlung eines Laufzeitfehlers: Division durch Null" msgid "Raising Exceptions" msgstr "Auslösen von Ausnahmen" @@ -451,6 +545,11 @@ msgid "" " raise NameError('HiThere')\n" "NameError: HiThere" msgstr "" +">>> raise NameError('HiThere')\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 1, in \n" +" raise NameError('HiThere')\n" +"NameError: HiThere" msgid "" "The sole argument to :keyword:`raise` indicates the exception to be raised. " @@ -467,7 +566,7 @@ msgstr "" "ihr Konstruktor ohne Argumente aufgerufen wird::" msgid "raise ValueError # shorthand for 'raise ValueError()'" -msgstr "" +msgstr "raise ValueError # Kurzform für 'raise ValueError()'" msgid "" "If you need to determine whether an exception was raised but don't intend to " @@ -491,9 +590,20 @@ msgid "" " raise NameError('HiThere')\n" "NameError: HiThere" msgstr "" +">>> try:\n" +"... raise NameError('HiThere')\n" +"... except NameError:\n" +"... print('Eine Ausnahme ist aufgetreten!')\n" +"... raise\n" +"...\n" +"Eine Ausnahme ist aufgetreten!\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 2, in \n" +" raise NameError('HiThere')\n" +"NameError: HiThere" msgid "Exception Chaining" -msgstr "Verkettung von Ausnah" +msgstr "Verkettung von Ausnahmen" msgid "" "If an unhandled exception occurs inside an :keyword:`except` section, it " @@ -523,6 +633,23 @@ msgid "" " raise RuntimeError(\"unable to handle error\")\n" "RuntimeError: unable to handle error" msgstr "" +">>> try:\n" +"... open(\"database.sqlite\")\n" +"... except OSError:\n" +"... raise RuntimeError(\"Fehler kann nicht behandelt werden\")\n" +"...\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, line 2, in \n" +" open(\"database.sqlite\")\n" +" ~~~~^^^^^^^^^^^^^^^^^^^\n" +"FileNotFoundError: [Errno 2] Keine solche Datei oder kein solches Verzeichnis: 'database.sqlite'\n" +"\n" +"Bei der Behandlung der oben genannten Ausnahme ist eine weitere Ausnahme aufgetreten:\n" +"\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 4, in \n" +" raise RuntimeError(\"Fehler kann nicht behandelt werden\“)\n" +"RuntimeError: Fehler kann nicht behandelt werden" msgid "" "To indicate that an exception is a direct consequence of another, the :" @@ -536,6 +663,8 @@ msgid "" "# exc must be exception instance or None.\n" "raise RuntimeError from exc" msgstr "" +"# exc muss eine Ausnahminstanz oder None sein.\n" +"raise RuntimeError from exc" msgid "This can be useful when you are transforming exceptions. For example::" msgstr "" @@ -564,6 +693,28 @@ msgid "" " raise RuntimeError('Failed to open database') from exc\n" "RuntimeError: Failed to open database" msgstr "" +msgstr "" +">>> def func():\n" +"... raise ConnectionError\n" +"...\n" +">>> try:\n" +"... func()\n" +"... except ConnectionError as exc:\n" +"... raise RuntimeError('Datenbank konnte nicht geöffnet werden') from exc\n" +"...\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 2, in \n" +" func()\n" +" ~~~~^^\n" +" Datei \"\“, Zeile 2, in func\n" +"ConnectionError\n" +"\n" +"Die oben genannte Ausnahme war die direkte Ursache für die folgende Ausnahme:\n" +"\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 4, in \n" +" raise RuntimeError('Datenbank konnte nicht geöffnet werden') from exc\n" +"RuntimeError: Datenbank konnte nicht geöffnet werden" msgid "" "It also allows disabling automatic exception chaining using the ``from " @@ -583,11 +734,20 @@ msgid "" " raise RuntimeError from None\n" "RuntimeError" msgstr "" +">>> try:\n" +"... open('database.sqlite')\n" +"... except OSError:\n" +"... raise RuntimeError from None\n" +"...\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 4, in \n" +" raise RuntimeError from None\n" +"RuntimeError" msgid "" "For more information about chaining mechanics, see :ref:`bltin-exceptions`." msgstr "" -"eitere Informationen zur Verkettungsmechanik finden Sie unter :ref:`bltin-" +"Weitere Informationen zur Verkettungsmechanik finden Sie unter :ref:`bltin-" "exceptions`." msgid "User-defined Exceptions" @@ -653,6 +813,16 @@ msgid "" " raise KeyboardInterrupt\n" "KeyboardInterrupt" msgstr "" +">>> try:\n" +"... raise KeyboardInterrupt\n" +"... finally:\n" +"... print('Auf Wiedersehen, Welt!')\n" +"...\n" +"Auf Wiedersehen, Welt!\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 2, in \n" +" raise KeyboardInterrupt\n" +"KeyboardInterrupt" msgid "" "If a :keyword:`finally` clause is present, the :keyword:`!finally` clause " @@ -695,6 +865,11 @@ msgid "" "This can be confusing and is therefore discouraged. From version 3.14 the " "compiler emits a :exc:`SyntaxWarning` for it (see :pep:`765`)." msgstr "" +"Wenn die Klausel :keyword:`!finally` eine Anweisung vom Typ " +":keyword:`break` , :keyword:`continue` oder :keyword:`return` " +"ausführt, werden Ausnahmen nicht erneut ausgelöst. Dies kann verwirrend sein" +" und wird daher nicht empfohlen. Ab Version 3.14 gibt der Compiler hierfür " +"die Fehlermeldung :exc:`SyntaxWarning` aus (siehe :pep:`765`)." msgid "" "If the :keyword:`!try` statement reaches a :keyword:`break`, :keyword:" @@ -715,6 +890,13 @@ msgid "" "therefore discouraged. From version 3.14 the compiler emits a :exc:" "`SyntaxWarning` for it (see :pep:`765`)." msgstr "" +"Wenn eine :keyword:`!finally` -Klausel eine :keyword:`!return` " +"-Anweisung enthält, ist der zurückgegebene Wert derjenige aus der " +":keyword:`!return` -Anweisung der :keyword:`!finally` -Klausel und nicht" +" der Wert aus der :keyword:`!return` -Anweisung der :keyword:`!try` " +"-Klausel. Dies kann verwirrend sein und wird daher nicht empfohlen. Ab " +"Version 3.14 gibt der Compiler hierfür eine :exc:`SyntaxWarning` -Meldung" +" aus (siehe :pep:`765`)." msgid "For example::" msgstr "Zum Beispiel::" @@ -729,6 +911,14 @@ msgid "" ">>> bool_return()\n" "False" msgstr "" +">>> def bool_return():\n" +"... try:\n" +"... return True\n" +"... finally:\n" +"... return False\n" +"...\n" +">>> bool_return()\n" +"False" msgid "A more complicated example::" msgstr "Ein komplizierteres Beispiel::" @@ -761,6 +951,32 @@ msgid "" " ~~^~~\n" "TypeError: unsupported operand type(s) for /: 'str' and 'str'" msgstr "" +">>> def divide(x, y):\n" +"... try:\n" +"... result = x / y\n" +"... except ZeroDivisionError:\n" +"... print(\"Division durch Null!\")\n" +"... else:\n" +"... print(\"Ergebnis ist\", result)\n" +"... finally:\n" +"... print(\"Ausführung der finally-Klausel\")\n" +"...\n" +">>> divide(2, 1)\n" +"Ergebnis ist 2.0\n" +"Ausführung der finally-Klausel\n" +">>> divide(2, 0)\n" +"Division durch Null!\n" +"Ausführung der finally-Klausel\n" +">>> divide(\"2\", \"1\")\n" +"Ausführung der finally-Klausel\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 1, in \n" +" divide(\"2\", \"1\")\n" +" ~~~~~~^^^^^^^^^^\n" +" Datei \"\“, Zeile 3, in divide\n" +" result = x / y\n" +" ~~^~~\n" +"TypeError: Nicht unterstützte Operandentypen für /: 'str' und 'str'" msgid "" "As you can see, the :keyword:`finally` clause is executed in any event. " @@ -801,6 +1017,8 @@ msgid "" "for line in open(\"myfile.txt\"):\n" " print(line, end=\"\")" msgstr "" +"for line in open(\"myfile.txt\"):\n" +" print(line, end=\"\")" msgid "" "The problem with this code is that it leaves the file open for an " @@ -822,6 +1040,9 @@ msgid "" " for line in f:\n" " print(line, end=\"\")" msgstr "" +"with open(\"myfile.txt\") as f:\n" +" for line in f:\n" +" print(line, end=\"\")" msgid "" "After the statement is executed, the file *f* is always closed, even if a " @@ -887,6 +1108,29 @@ msgid "" "caught : e\n" ">>>" msgstr "" +">>> def f():\n" +"... excs = [OSError('Fehler 1'), SystemError('Fehler 2')]\n" +"... raise ExceptionGroup('Es sind Probleme aufgetreten', excs)\n" +"...\n" +">>> f()\n" +" + Traceback der Ausnahmegruppe (letzter Aufruf zuletzt):\n" +" | Datei \"\“, Zeile 1, in \n" +" | f()\n" +" | ~^^\n" +" | Datei \"\“, Zeile 3, in f\n" +" | raise ExceptionGroup('es gab Probleme', excs)\n" +" | ExceptionGroup: es gab Probleme (2 Unterausnahmen)\n" +" +-+---------------- 1 ----------------\n" +" | OSError: Fehler 1\n" +" +---------------- 2 ----------------\n" +" | SystemError: Fehler 2\n" +" +------------------------------------\n" +">>> try:\n" +"... f()\n" +"... except Exception as e:\n" +"... print(f'{type(e)} abgefangen: {e}')\n" +"... abgefangen: Es gab Probleme (2 Unterausnahmen)\n" +">>>" msgid "" "By using ``except*`` instead of ``except``, we can selectively handle only " @@ -944,6 +1188,46 @@ msgid "" " +------------------------------------\n" ">>>" msgstr "" +">>> def f():\n" +"... raise ExceptionGroup(\n" +"... \"group1\",\n" +"... [\n" +"... OSError(1),\n" +"... SystemError(2),\n" +"... ExceptionGroup(\n" +"... group2,\n" +"... [\n" +"... OSError(3),\n" +"... RecursionError(4)\n" +"... ]\n" +"... )\n" +"... ]\n" +"... )\n" +"...\n" +">>> try:\n" +"... f()\n" +"... except* OSError as e:\n" +"... print(\"Es gab OSErrors\")\n" +"... except* SystemError as e:\n" +"... print(\"Es gab SystemErrors\")\n" +"...\n" +"Es sind OSErrors aufgetreten\n" +"Es sind SystemErrors aufgetreten\n" +" + Traceback der Ausnahmegruppe (letzter Aufruf zuletzt):\n" +" | Datei \"\“, Zeile 2, in \n" +" | f()\n" +" | ~^^\n" +" | Datei \"\“, Zeile 2, in f\n" +" | raise ExceptionGroup(\n" +" | ...<12 lines>...\n" +" | )\n" +" | ExceptionGroup: group1 (1 Unterausnahme)\n" +" +-+---------------- 1 ----------------\n" +" | ExceptionGroup: group2 (1 Unterausnahme)\n" +" +-+---------------- 1 ----------------\n" +" | RecursionError: 4\n" +" +------------------------------------\n" +">>>" msgid "" "Note that the exceptions nested in an exception group must be instances, not " @@ -951,7 +1235,7 @@ msgid "" "that have already been raised and caught by the program, along the following " "pattern::" msgstr "" -"Beachten Sie, dass die in einer Ausnahmegruppe verschachtelten Ausnahmen " +"Beachte, dass die in einer Ausnahmegruppe verschachtelten Ausnahmen " "Instanzen und keine Typen sein müssen. Dies liegt daran, dass es sich in der " "Praxis typischerweise um Ausnahmen handelt, die bereits vom Programm " "ausgelöst und abgefangen wurden, und zwar nach dem folgenden Muster:" @@ -968,6 +1252,16 @@ msgid "" "... raise ExceptionGroup(\"Test Failures\", excs)\n" "..." msgstr "" +">>> excs = []\n" +"... for test in tests:\n" +"... try:\n" +"... test.run()\n" +"... except Exception as e:\n" +"... excs.append(e)\n" +"...\n" +">>> if excs:\n" +"... raise ExceptionGroup(\"Testfehler\", excs)\n" +"..." msgid "Enriching Exceptions with Notes" msgstr "Anreicherung von Ausnahmen mit Notizen" @@ -1006,6 +1300,21 @@ msgid "" "Add some more information\n" ">>>" msgstr "" +msgstr "" +">>> try:\n" +"... raise TypeError('falscher Typ')\n" +"... except Exception as e:\n" +"... e.add_note('Einige Informationen hinzufügen')\n" +"... e.add_note('Weitere Informationen hinzufügen')\n" +"... raise\n" +"...\n" +"Traceback (letzter Aufruf zuletzt):\n" +" Datei \"\“, Zeile 2, in \n" +" raise TypeError('falscher Typ')\n" +"TypeError: falscher Typ\n" +"Füge einige Informationen hinzu\n" +"Füge noch mehr Informationen hinzu\n" +">>>" msgid "" "For example, when collecting exceptions into an exception group, we may want " @@ -1064,3 +1373,48 @@ msgid "" " +------------------------------------\n" ">>>" msgstr "" +">>> def f():\n" +"... raise OSError('Vorgang fehlgeschlagen')\n" +"...\n" +">>> excs = []\n" +">>> for i in range(3):\n" +"... try:\n" +"... f()\n" +"... except Exception as e:\n" +"... e.add_note(f'Aufgetreten in Iteration {i+1}')\n" +"... excs.append(e)\n" +"...\n" +">>> raise ExceptionGroup('Es sind einige Probleme aufgetreten', excs)\n" +" + Traceback der Ausnahmegruppe (letzter Aufruf zuletzt):\n" +" | Datei \"\“, Zeile 1, in \n" +" | raise ExceptionGroup('Wir haben einige Probleme', excs)\n" +" | ExceptionGroup: Wir haben einige Probleme (3 Unterausnahmen)\n" +" +-+---------------- 1 ----------------\n" +" | Traceback (letzter Aufruf zuletzt):\n" +" | Datei \"\“, Zeile 3, in \n" +" | f()\n" +" | ~^^\n" +" | Datei \"\“, Zeile 2, in f\n" +" | raise OSError('operation failed')\n" +" | OSError: operation failed\n" +" | Aufgetreten in Iteration 1\n" +" +---------------- 2 ----------------\n" +" | Traceback (letzter Aufruf zuletzt):\n" +" | Datei \"\“, Zeile 3, in \n" +" | f()\n" +" | ~^^\n" +" | Datei \"\“, Zeile 2, in f\n" +" | raise OSError('operation failed')\n" +" | OSError: operation failed\n" +" | Aufgetreten in Iteration 2\n" +" +---------------- 3 ----------------\n" +" | Traceback (letzter Aufruf zuletzt):\n" +" | Datei \"\“, Zeile 3, in \n" +" | f()\n" +" | ~^^\n" +" | Datei \"\“, Zeile 2, in f\n" +" | raise OSError('operation failed')\n" +" | OSError: operation failed\n" +" | Aufgetreten in Iteration 3\n" +" +------------------------------------\n" +">>>" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index 96a0d27..986fae2 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -17,8 +17,9 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" + msgid "Floating-Point Arithmetic: Issues and Limitations" -msgstr "" +msgstr "Gleitkommaarithmetik: Probleme und Einschränkungen" msgid "" "Floating-point numbers are represented in computer hardware as base 2 " @@ -28,6 +29,13 @@ msgid "" "values, the only real difference being that the first is written in base 10 " "fractional notation, and the second in base 2." msgstr "" +"Gleitkommazahlen werden in der Computerhardware als Brüche zur Basis 2 " +"(binär) dargestellt. Beispielsweise hat der **dezimale** Bruch ``0.625`` " +"den Wert 6/10 + 2/100 + 5/1000, und ebenso hat der **binäre** Bruch " +"``0.101`` den Wert 1/2 + 0/4 + 1/8. Diese beiden Brüche haben identische " +"Werte; der einzige wirkliche Unterschied besteht darin, dass der erste in " +"der Bruchschreibweise zur Basis 10 und der zweite in der zur Basis 2 " +"geschrieben ist." msgid "" "Unfortunately, most decimal fractions cannot be represented exactly as " @@ -35,47 +43,68 @@ msgid "" "point numbers you enter are only approximated by the binary floating-point " "numbers actually stored in the machine." msgstr "" +"Leider lassen sich die meisten Dezimalbrüche nicht exakt als Binärbrüche " +"darstellen. Dies hat zur Folge, dass die von Ihnen eingegebenen Dezimal-" +"Gleitkommazahlen im Allgemeinen nur annähernd durch die tatsächlich im " +"Rechner gespeicherten Binär-Gleitkommazahlen wiedergegeben werden." msgid "" "The problem is easier to understand at first in base 10. Consider the " "fraction 1/3. You can approximate that as a base 10 fraction::" msgstr "" +"Das Problem lässt sich zunächst im Dezimalsystem leichter verstehen. " +"Betrachten wir den Bruch 1/3. Man kann ihn als Bruch im Dezimalsystem " +"näherungsweise darstellen:" msgid "0.3" -msgstr "" +msgstr "0.3" msgid "or, better, ::" -msgstr "" +msgstr "oder besser noch: ::" msgid "0.33" -msgstr "" +msgstr "0.33" msgid "0.333" -msgstr "" +msgstr "0.333" msgid "" "and so on. No matter how many digits you're willing to write down, the " "result will never be exactly 1/3, but will be an increasingly better " "approximation of 1/3." msgstr "" +"und so weiter. Ganz gleich, wie viele Stellen man notieren möchte, das " +"Ergebnis wird niemals genau 1/3 sein, sondern eine immer bessere Annäherung " +"an 1/3 darstellen." msgid "" -"In the same way, no matter how many base 2 digits you're willing to use, the " -"decimal value 0.1 cannot be represented exactly as a base 2 fraction. In " +"In the same way, no matter how many base 2 digits you're willing to use, the" +" decimal value 0.1 cannot be represented exactly as a base 2 fraction. In " "base 2, 1/10 is the infinitely repeating fraction ::" msgstr "" +"Ebenso lässt sich der Dezimalwert 0,1 – ganz gleich, wie viele Ziffern im " +"Zweier-System man verwenden möchte – nicht exakt als Bruch im Zweier-System " +"darstellen. Im Zweier-System ist 1/10 der sich unendlich wiederholende Bruch" +" ::" msgid "0.0001100110011001100110011001100110011001100110011..." -msgstr "" +msgstr "0.0001100110011001100110011001100110011001100110011..." msgid "" "Stop at any finite number of bits, and you get an approximation. On most " "machines today, floats are approximated using a binary fraction with the " -"numerator using the first 53 bits starting with the most significant bit and " -"with the denominator as a power of two. In the case of 1/10, the binary " -"fraction is ``3602879701896397 / 2 ** 55`` which is close to but not exactly " -"equal to the true value of 1/10." +"numerator using the first 53 bits starting with the most significant bit and" +" with the denominator as a power of two. In the case of 1/10, the binary " +"fraction is ``3602879701896397 / 2 ** 55`` which is close to but not exactly" +" equal to the true value of 1/10." msgstr "" +"Hält man bei einer beliebigen endlichen Anzahl von Bits an, erhält man eine " +"Näherung. Auf den meisten heutigen Rechnern werden Gleitkommazahlen mithilfe" +" eines binären Bruchs approximiert, wobei der Zähler aus den ersten 53 Bits " +"(beginnend mit dem höchstwertigen Bit) besteht und der Nenner eine " +"Zweierpotenz ist. Im Fall von 1/10 lautet der Binärbruch ``3602879701896397" +" / 2 ** 55``, was nahe am tatsächlichen Wert von 1/10 liegt, diesem aber " +"nicht exakt entspricht." msgid "" "Many users are not aware of the approximation because of the way values are " @@ -84,26 +113,42 @@ msgid "" "if Python were to print the true decimal value of the binary approximation " "stored for 0.1, it would have to display::" msgstr "" +"Vielen Benutzern ist diese Annäherung aufgrund der Art und Weise, wie Werte " +"angezeigt werden, nicht bewusst. Python gibt lediglich eine dezimale " +"Annäherung an den tatsächlichen Dezimalwert der vom Rechner gespeicherten " +"binären Annäherung aus. Würde Python auf den meisten Rechnern den " +"tatsächlichen Dezimalwert der für 0,1 gespeicherten binären Annäherung " +"ausgeben, müsste es Folgendes anzeigen::" msgid "" ">>> 0.1\n" "0.1000000000000000055511151231257827021181583404541015625" msgstr "" +">>> 0.1\n" +"0.1000000000000000055511151231257827021181583404541015625" msgid "" -"That is more digits than most people find useful, so Python keeps the number " -"of digits manageable by displaying a rounded value instead:" +"That is more digits than most people find useful, so Python keeps the number" +" of digits manageable by displaying a rounded value instead:" msgstr "" +"Das sind mehr Stellen, als die meisten Menschen für sinnvoll halten. Deshalb" +" sorgt Python dafür, dass die Anzahl der Stellen überschaubar bleibt, indem " +"stattdessen ein gerundeter Wert angezeigt wird:" msgid "" ">>> 1 / 10\n" "0.1" msgstr "" +">>> 1 / 10\n" +"0.1" msgid "" "Just remember, even though the printed result looks like the exact value of " "1/10, the actual stored value is the nearest representable binary fraction." msgstr "" +"Denken Sie daran: Auch wenn das ausgegebene Ergebnis genau wie der Wert 1/10" +" aussieht, ist der tatsächlich gespeicherte Wert der nächstgelegene " +"darstellbare Binärbruch." msgid "" "Interestingly, there are many different decimal numbers that share the same " @@ -114,26 +159,47 @@ msgid "" "values share the same approximation, any one of them could be displayed " "while still preserving the invariant ``eval(repr(x)) == x``." msgstr "" +"Interessanterweise gibt es viele verschiedene Dezimalzahlen, die denselben " +"nächstliegenden binären Näherungsbruch haben. Beispielsweise werden die " +"Zahlen ``0.1``, ``0.10000000000000001`` und " +"``0.1000000000000000055511151231257827021181583404541015625`` alle durch " +"``3602879701896397 / 2 ** 55`` approximiert. Da alle diese Dezimalwerte " +"dieselbe Approximation haben, könnte jeder einzelne von ihnen angezeigt " +"werden, ohne dass die Invariante ``eval(repr(x)) == x`` verloren geht." msgid "" "Historically, the Python prompt and built-in :func:`repr` function would " "choose the one with 17 significant digits, ``0.10000000000000001``. " -"Starting with Python 3.1, Python (on most systems) is now able to choose the " -"shortest of these and simply display ``0.1``." +"Starting with Python 3.1, Python (on most systems) is now able to choose the" +" shortest of these and simply display ``0.1``." msgstr "" +"Früher wählten die Python-Eingabeaufforderung und die integrierte Funktion " +" :func:`repr` die Zahl mit 17 signifikanten Stellen aus: " +"``0.10000000000000001``. Ab Python 3.1 ist Python (auf den meisten Systemen)" +" nun in der Lage, die kürzeste dieser Zahlen auszuwählen und einfach ``0.1``" +" anzuzeigen." msgid "" -"Note that this is in the very nature of binary floating point: this is not a " -"bug in Python, and it is not a bug in your code either. You'll see the same " -"kind of thing in all languages that support your hardware's floating-point " -"arithmetic (although some languages may not *display* the difference by " -"default, or in all output modes)." +"Note that this is in the very nature of binary floating point: this is not a" +" bug in Python, and it is not a bug in your code either. You'll see the " +"same kind of thing in all languages that support your hardware's floating-" +"point arithmetic (although some languages may not *display* the difference " +"by default, or in all output modes)." msgstr "" +"Beachte, dass dies in der Natur der binären Gleitkommazahlen liegt: Es " +"handelt sich weder um einen Fehler in Python noch um einen Fehler in Ihrem " +"Code. Das gleiche Phänomen tritt in allen Sprachen auf, die die " +"Gleitkommaarithmetik Ihrer Hardware unterstützen (auch wenn manche Sprachen " +"den Unterschied standardmäßig oder in nicht allen Ausgabemodi möglicherweise" +" nicht *anzeigen*)." msgid "" -"For more pleasant output, you may wish to use string formatting to produce a " -"limited number of significant digits:" +"For more pleasant output, you may wish to use string formatting to produce a" +" limited number of significant digits:" msgstr "" +"Um die Ausgabe übersichtlicher zu gestalten, können Sie die " +"Zeichenfolgenformatierung verwenden, um eine begrenzte Anzahl signifikanter " +"Stellen auszugeben:" msgid "" ">>> format(math.pi, '.12g') # give 12 significant digits\n" @@ -145,63 +211,102 @@ msgid "" ">>> repr(math.pi)\n" "'3.141592653589793'" msgstr "" +">>> format(math.pi, '.12g') # gibt 12 signifikante Stellen an\n" +"'3.14159265359'\n" +"\n" +">>> format(math.pi, '.2f') # gibt 2 Stellen nach dem Komma an\n" +"'3.14'\n" +"\n" +">>> repr(math.pi)\n" +"'3.141592653589793'" msgid "" -"It's important to realize that this is, in a real sense, an illusion: you're " -"simply rounding the *display* of the true machine value." +"It's important to realize that this is, in a real sense, an illusion: you're" +" simply rounding the *display* of the true machine value." msgstr "" +"Man muss sich bewusst machen, dass es sich hierbei im wahrsten Sinne des " +"Wortes um eine Illusion handelt: Man rundet lediglich die *Anzeige* des " +"tatsächlichen Maschinenwerts." msgid "" -"One illusion may beget another. For example, since 0.1 is not exactly 1/10, " -"summing three values of 0.1 may not yield exactly 0.3, either:" +"One illusion may beget another. For example, since 0.1 is not exactly 1/10," +" summing three values of 0.1 may not yield exactly 0.3, either:" msgstr "" +"Eine Täuschung kann eine weitere nach sich ziehen. Da beispielsweise 0.1 " +"nicht genau 1/10 ist, ergibt die Summe von drei Werten von 0.1 " +"möglicherweise auch nicht genau 0.3:" msgid "" ">>> 0.1 + 0.1 + 0.1 == 0.3\n" "False" msgstr "" +">>> 0.1 + 0.1 + 0.1 == 0.3\n" +"Falsch" msgid "" -"Also, since the 0.1 cannot get any closer to the exact value of 1/10 and 0.3 " -"cannot get any closer to the exact value of 3/10, then pre-rounding with :" -"func:`round` function cannot help:" +"Also, since the 0.1 cannot get any closer to the exact value of 1/10 and 0.3" +" cannot get any closer to the exact value of 3/10, then pre-rounding with " +":func:`round` function cannot help:" msgstr "" +"Da sich die Zahl 0.1 dem exakten Wert von 1/10 nicht weiter annähern kann " +"und 0.3 sich dem exakten Wert von 3/10 nicht weiter annähern kann, hilft " +"auch eine Vorrundung mit der Funktion :func:`round` nicht weiter:" msgid "" ">>> round(0.1, 1) + round(0.1, 1) + round(0.1, 1) == round(0.3, 1)\n" "False" msgstr "" +">>> round(0.1, 1) + round(0.1, 1) + round(0.1, 1) == round(0.3, 1)\n" +"False" msgid "" -"Though the numbers cannot be made closer to their intended exact values, " -"the :func:`math.isclose` function can be useful for comparing inexact values:" +"Though the numbers cannot be made closer to their intended exact values, the" +" :func:`math.isclose` function can be useful for comparing inexact values:" msgstr "" +"Auch wenn die Zahlen nicht näher an ihre beabsichtigten exakten Werte " +"herangeführt werden können, kann die Funktion :func:`math.isclose` beim " +"Vergleich ungenauer Werte nützlich sein:" msgid "" ">>> math.isclose(0.1 + 0.1 + 0.1, 0.3)\n" "True" msgstr "" +">>> math.isclose(0.1 + 0.1 + 0.1, 0.3)\n" +"True" msgid "" "Alternatively, the :func:`round` function can be used to compare rough " "approximations:" msgstr "" +"Alternativ kann die Funktion :func:`round` verwendet werden, um grobe " +"Näherungswerte zu vergleichen:" msgid "" ">>> round(math.pi, ndigits=2) == round(22 / 7, ndigits=2)\n" "True" msgstr "" +">>> round(math.pi, ndigits=2) == round(22 / 7, ndigits=2)\n" +"True" msgid "" "Binary floating-point arithmetic holds many surprises like this. The " "problem with \"0.1\" is explained in precise detail below, in the " "\"Representation Error\" section. See `Examples of Floating Point Problems " -"`_ for " -"a pleasant summary of how binary floating point works and the kinds of " -"problems commonly encountered in practice. Also see `The Perils of Floating " -"Point `_ for a more complete " +"`_ for" +" a pleasant summary of how binary floating point works and the kinds of " +"problems commonly encountered in practice. Also see `The Perils of Floating" +" Point `_ for a more complete " "account of other common surprises." msgstr "" +"Die binäre Gleitkommaarithmetik birgt viele solcher Überraschungen. Das " +"Problem mit \"0,1\“ wird weiter unten im Abschnitt \"Darstellungsfehler\“ " +"ausführlich erläutert. Unter `Beispiele für Gleitkomma-Probleme " +"`_ " +"finden Sie eine anschauliche Zusammenfassung der Funktionsweise der binären " +"Gleitkommaarithmetik und der Arten von Problemen, die in der Praxis häufig " +"auftreten. Siehe auch `Die Tücken der Gleitkommazahlen " +"`_ für eine umfassendere " +"Darstellung weiterer häufiger Überraschungen." msgid "" "As that says near the end, \"there are no easy answers.\" Still, don't be " @@ -212,75 +317,121 @@ msgid "" "decimal arithmetic and that every float operation can suffer a new rounding " "error." msgstr "" +"Wie es gegen Ende heißt: \"Es gibt keine einfachen Antworten.\“ Dennoch " +"sollten Sie gegenüber Gleitkommazahlen nicht übermäßig misstrauisch sein! " +"Die Fehler bei Gleitkommaoperationen in Python stammen von der Gleitkomma-" +"Hardware und liegen auf den meisten Rechnern bei höchstens 1 Teil pro " +"2\\*\\*53 pro Operation. Das ist für die meisten Aufgaben mehr als " +"ausreichend, aber man muss bedenken, dass es sich nicht um Dezimalrechnen " +"handelt und dass bei jeder Gleitkommaoperation ein neuer Rundungsfehler " +"auftreten kann." msgid "" "While pathological cases do exist, for most casual use of floating-point " "arithmetic you'll see the result you expect in the end if you simply round " "the display of your final results to the number of decimal digits you " -"expect. :func:`str` usually suffices, and for finer control see the :meth:" -"`str.format` method's format specifiers in :ref:`formatstrings`." +"expect. :func:`str` usually suffices, and for finer control see the " +":meth:`str.format` method's format specifiers in :ref:`formatstrings`." msgstr "" +"Es gibt zwar Ausnahmefälle, doch bei den meisten alltäglichen " +"Anwendungen der Gleitkommaarithmetik erhalten Sie letztendlich das erwartete" +" Ergebnis, wenn Sie die Anzeige Ihrer Endergebnisse einfach auf die " +"gewünschte Anzahl von Dezimalstellen runden. :func:`str` reicht in der " +"Regel aus; für eine feinere Steuerung finden Sie die Formatbezeichner der " +"Methode :meth:`str.format` unter :ref:`formatstrings`." msgid "" -"For use cases which require exact decimal representation, try using the :mod:" -"`decimal` module which implements decimal arithmetic suitable for accounting " -"applications and high-precision applications." +"For use cases which require exact decimal representation, try using the " +":mod:`decimal` module which implements decimal arithmetic suitable for " +"accounting applications and high-precision applications." msgstr "" +"Für Anwendungsfälle, die eine exakte Dezimaldarstellung erfordern, sollten " +"Sie das Modul :mod:`decimal` verwenden, das eine Dezimalarithmetik " +"implementiert, die für Buchhaltungsanwendungen und Anwendungen mit hoher " +"Genauigkeit geeignet ist." msgid "" -"Another form of exact arithmetic is supported by the :mod:`fractions` module " -"which implements arithmetic based on rational numbers (so the numbers like " +"Another form of exact arithmetic is supported by the :mod:`fractions` module" +" which implements arithmetic based on rational numbers (so the numbers like " "1/3 can be represented exactly)." msgstr "" +"Eine weitere Form der exakten Arithmetik wird vom Modul :mod:`fractions` " +" unterstützt, das eine auf rationalen Zahlen basierende Arithmetik " +"implementiert (sodass Zahlen wie 1/3 exakt dargestellt werden können)." msgid "" "If you are a heavy user of floating-point operations you should take a look " "at the NumPy package and many other packages for mathematical and " -"statistical operations supplied by the SciPy project. See ." +"statistical operations supplied by the SciPy project. See " +"." msgstr "" +"Wenn Sie häufig mit Gleitkommaoperationen arbeiten, sollten Sie sich das " +"NumPy-Paket sowie viele andere Pakete für mathematische und statistische " +"Operationen ansehen, die vom SciPy-Projekt bereitgestellt werden. Siehe " +"." msgid "" "Python provides tools that may help on those rare occasions when you really " -"*do* want to know the exact value of a float. The :meth:`float." -"as_integer_ratio` method expresses the value of a float as a fraction:" +"*do* want to know the exact value of a float. The " +":meth:`float.as_integer_ratio` method expresses the value of a float as a " +"fraction:" msgstr "" +"Python bietet Werkzeuge, die in den seltenen Fällen hilfreich sein können, " +"in denen man den genauen Wert einer Gleitkommazahl wirklich *wissen* möchte." +" Die Methode :meth:`float.as_integer_ratio` gibt den Wert einer " +"Gleitkommazahl als Bruch an:" msgid "" ">>> x = 3.14159\n" ">>> x.as_integer_ratio()\n" "(3537115888337719, 1125899906842624)" msgstr "" +">>> x = 3.14159\n" +">>> x.as_integer_ratio()\n" +"(3537115888337719, 1125899906842624)" msgid "" -"Since the ratio is exact, it can be used to losslessly recreate the original " -"value:" +"Since the ratio is exact, it can be used to losslessly recreate the original" +" value:" msgstr "" +"Da das Verhältnis exakt ist, lässt sich damit der ursprüngliche Wert " +"verlustfrei wiederherstellen:" msgid "" ">>> x == 3537115888337719 / 1125899906842624\n" "True" msgstr "" +">>> x == 3537115888337719 / 1125899906842624\n" +"True" msgid "" "The :meth:`float.hex` method expresses a float in hexadecimal (base 16), " "again giving the exact value stored by your computer:" msgstr "" +"Die Methode :meth:`float.hex` gibt einen Float-Wert im Hexadezimalformat" +" (Basis 16) aus und liefert wiederum den exakten Wert, der auf Ihrem " +"Computer gespeichert ist:" msgid "" ">>> x.hex()\n" "'0x1.921f9f01b866ep+1'" msgstr "" +">>> x.hex()\n" +"'0x1.921f9f01b866ep+1'" msgid "" -"This precise hexadecimal representation can be used to reconstruct the float " -"value exactly:" +"This precise hexadecimal representation can be used to reconstruct the float" +" value exactly:" msgstr "" +"Anhand dieser exakten Hexadezimal-Darstellung lässt sich der Float-Wert " +"exakt rekonstruieren:" msgid "" ">>> x == float.fromhex('0x1.921f9f01b866ep+1')\n" "True" msgstr "" +">>> x == float.fromhex('0x1.921f9f01b866ep+1')\n" +"True" msgid "" "Since the representation is exact, it is useful for reliably porting values " @@ -288,6 +439,10 @@ msgid "" "data with other languages that support the same format (such as Java and " "C99)." msgstr "" +"Da die Darstellung exakt ist, eignet sie sich gut für die zuverlässige " +"Übertragung von Werten zwischen verschiedenen Python-Versionen " +"(Plattformunabhängigkeit) und den Datenaustausch mit anderen Sprachen, die " +"dasselbe Format unterstützen (wie beispielsweise Java und C99)." msgid "" "Another helpful tool is the :func:`sum` function which helps mitigate loss-" @@ -296,6 +451,12 @@ msgid "" "difference in overall accuracy so that the errors do not accumulate to the " "point where they affect the final total:" msgstr "" +"Ein weiteres nützliches Werkzeug ist die Funktion :func:`sum` , die dazu " +"beiträgt, Präzisionsverluste bei der Summierung zu minimieren. Sie nutzt " +"erweiterte Präzision für die Zwischenrunden, während Werte zur laufenden " +"Summe hinzugefügt werden. Dies kann sich auf die Gesamtgenauigkeit " +"auswirken, sodass sich die Fehler nicht so weit summieren, dass sie das " +"Endergebnis beeinflussen:" msgid "" ">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" @@ -303,6 +464,10 @@ msgid "" ">>> sum([0.1] * 10) == 1.0\n" "True" msgstr "" +">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" +"False\n" +">>> sum([0.1] * 10) == 1.0\n" +"True" msgid "" "The :func:`math.fsum` goes further and tracks all of the \"lost digits\" as " @@ -311,6 +476,12 @@ msgid "" "uncommon cases where large magnitude inputs mostly cancel each other out " "leaving a final sum near zero:" msgstr "" +"Die :func:`math.fsum` geht noch einen Schritt weiter und verfolgt alle " +"\"verlorenen Ziffern\“, während Werte zu einer laufenden Summe addiert werden," +" sodass das Ergebnis nur einmal gerundet wird. Dies ist langsamer als " +":func:`sum` , liefert jedoch in seltenen Fällen, in denen sich Eingaben " +"großer Größenordnungen weitgehend gegenseitig aufheben und eine Endsumme " +"nahe Null ergibt, genauere Ergebnisse:" msgid "" ">>> arr = [-0.10430216751806065, -266310978.67179024, 143401161448607.16,\n" @@ -319,27 +490,41 @@ msgid "" "8.042173697819788e-13\n" ">>> math.fsum(arr) # Single rounding\n" "8.042173697819788e-13\n" -">>> sum(arr) # Multiple roundings in extended " -"precision\n" +">>> sum(arr) # Multiple roundings in extended precision\n" "8.042178034628478e-13\n" ">>> total = 0.0\n" ">>> for x in arr:\n" -"... total += x # Multiple roundings in standard " -"precision\n" +"... total += x # Multiple roundings in standard precision\n" "...\n" -">>> total # Straight addition has no correct " -"digits!\n" +">>> total # Straight addition has no correct digits!\n" "-0.0051575902860057365" msgstr "" +">>> arr = [-0.10430216751806065, -266310978.67179024, 143401161448607.16,\n" +"... -143401161400469.7, 266262841.31058735, -0.003244936839808227]\n" +">>> float(sum(map(Fraction, arr))) # Exakte Summierung mit einmaliger Rundung\n" +"8.042173697819788e-13\n" +">>> math.fsum(arr) # Einmalige Rundung\n" +"8.042173697819788e-13\n" +">>> sum(arr) # Mehrfache Rundungen bei erweiterter Genauigkeit\n" +"8.0421778034628478e-13\n" +">>> total = 0.0\n" +">>> for x in arr:\n" +"... total += x # Mehrfache Rundungen in Standardgenauigkeit\n" +"...\n" +">>> total # Die einfache Addition liefert keine korrekten Ziffern!\n" +"-0.0051575902860057365" msgid "Representation Error" -msgstr "" +msgstr "Darstellungsfehler" msgid "" "This section explains the \"0.1\" example in detail, and shows how you can " "perform an exact analysis of cases like this yourself. Basic familiarity " "with binary floating-point representation is assumed." msgstr "" +"In diesem Abschnitt wird das Beispiel \"0.1\“ ausführlich erläutert und " +"gezeigt, wie Sie Fälle wie diesen selbst genau analysieren können. " +"Grundkenntnisse über die binäre Gleitkommadarstellung werden vorausgesetzt." msgid "" ":dfn:`Representation error` refers to the fact that some (most, actually) " @@ -348,113 +533,166 @@ msgid "" "Fortran, and many others) often won't display the exact decimal number you " "expect." msgstr "" +":dfn:`Darstellungsfehler` bezieht sich auf die Tatsache, dass " +"einige (eigentlich die meisten) Dezimalbrüche nicht exakt als Binärbrüche " +"(Basis 2) dargestellt werden können. Dies ist der Hauptgrund dafür, dass " +"Python (oder Perl, C, C++, Java, Fortran und viele andere) oft nicht genau " +"die Dezimalzahl anzeigen, die man erwartet." msgid "" -"Why is that? 1/10 is not exactly representable as a binary fraction. Since " -"at least 2000, almost all machines use IEEE 754 binary floating-point " +"Why is that? 1/10 is not exactly representable as a binary fraction. Since" +" at least 2000, almost all machines use IEEE 754 binary floating-point " "arithmetic, and almost all platforms map Python floats to IEEE 754 binary64 " "\"double precision\" values. IEEE 754 binary64 values contain 53 bits of " "precision, so on input the computer strives to convert 0.1 to the closest " -"fraction it can of the form *J*/2**\\ *N* where *J* is an integer containing " -"exactly 53 bits. Rewriting ::" -msgstr "" +"fraction it can of the form *J*/2**\\ *N* where *J* is an integer containing" +" exactly 53 bits. Rewriting ::" +msgstr "" +"Warum ist das so? 1/10 lässt sich nicht exakt als binärer Bruch darstellen." +" Seit mindestens dem Jahr 2000 verwenden fast alle Rechner die binäre " +"IEEE-754-Gleitkommaarithmetik, und fast alle Plattformen ordnen Python-" +"Float-Werte den IEEE-754-binary64-Werten mit \"doppelter Genauigkeit\“ zu. " +"IEEE-754-binary64-Werte enthalten 53 Bits an Genauigkeit, daher versucht der" +" Computer bei der Eingabe, 0,1 in den nächstgelegenen Bruch der Form " +"*J*/2**\\ *N* umzuwandeln, wobei *J* eine Ganzzahl mit genau 53 Bits ist. " +"Umformulierung ::" msgid "1 / 10 ~= J / (2**N)" -msgstr "" +msgstr "1 / 10 ~= J / (2**N)" msgid "as ::" -msgstr "" +msgstr "als ::" msgid "J ~= 2**N / 10" -msgstr "" +msgstr "J ~= 2**N / 10" msgid "" "and recalling that *J* has exactly 53 bits (is ``>= 2**52`` but ``< " "2**53``), the best value for *N* is 56:" msgstr "" +"und unter Berücksichtigung, dass J genau 53 Bits hat (d. h. >= 2**52, " +"aber < 2**53), ist der beste Wert für N gleich 56:" msgid "" ">>> 2**52 <= 2**56 // 10 < 2**53\n" "True" msgstr "" +">>> 2**52 <= 2**56 // 10 < 2**53\n" +"True" msgid "" -"That is, 56 is the only value for *N* that leaves *J* with exactly 53 bits. " -"The best possible value for *J* is then that quotient rounded:" +"That is, 56 is the only value for *N* that leaves *J* with exactly 53 bits." +" The best possible value for *J* is then that quotient rounded:" msgstr "" +"Das heißt, 56 ist der einzige Wert für *N*, bei dem *J* genau 53 Bits hat. " +"Der bestmögliche Wert für *J* ist dann dieser Quotient, gerundet:" msgid "" ">>> q, r = divmod(2**56, 10)\n" ">>> r\n" "6" msgstr "" +">>> q, r = divmod(2**56, 10)\n" +">>> r\n" +"6" msgid "" "Since the remainder is more than half of 10, the best approximation is " "obtained by rounding up:" msgstr "" +"Da der Rest mehr als die Hälfte von 10 beträgt, erhält man die beste " +"Annäherung durch Aufrunden:" msgid "" ">>> q+1\n" "7205759403792794" msgstr "" +">>> q+1\n" +"7205759403792794" msgid "" "Therefore the best possible approximation to 1/10 in IEEE 754 double " "precision is::" msgstr "" +"Daher lautet die bestmögliche Annäherung an 1/10 in IEEE " +"754-Doppelnauigkeit:" msgid "7205759403792794 / 2 ** 56" -msgstr "" +msgstr "7205759403792794 / 2 ** 56" msgid "" "Dividing both the numerator and denominator by two reduces the fraction to::" msgstr "" +"Durch Division von Zähler und Nenner durch zwei lässt sich der Bruch wie " +"folgt vereinfachen:" msgid "3602879701896397 / 2 ** 55" -msgstr "" +msgstr "3602879701896397 / 2 ** 55" msgid "" "Note that since we rounded up, this is actually a little bit larger than " "1/10; if we had not rounded up, the quotient would have been a little bit " "smaller than 1/10. But in no case can it be *exactly* 1/10!" msgstr "" +"Beachte, dass dieser Wert, da wir aufgerundet haben, tatsächlich etwas " +"größer als 1/10 ist; hätten wir nicht aufgerundet, wäre der Quotient etwas " +"kleiner als 1/10 gewesen. Aber auf keinen Fall kann er *genau* 1/10 " +"betragen!" msgid "" "So the computer never \"sees\" 1/10: what it sees is the exact fraction " "given above, the best IEEE 754 double approximation it can get:" msgstr "" +"Der Computer \"sieht\“ also niemals 1/10: Was er sieht, ist genau der oben " +"angegebene Bruch, die bestmögliche IEEE-754-Doppelgenauigkeits-Annäherung, " +"die er erzielen kann:" msgid "" ">>> 0.1 * 2 ** 55\n" "3602879701896397.0" msgstr "" +">>> 0.1 * 2 ** 55\n" +"3602879701896397.0" msgid "" "If we multiply that fraction by 10\\*\\*55, we can see the value out to 55 " "decimal digits:" msgstr "" +"Wenn wir diesen Bruch mit 10\\*\\*55 multiplizieren, erhalten wir den Wert " +"mit 55 Dezimalstellen:" msgid "" ">>> 3602879701896397 * 10 ** 55 // 2 ** 55\n" "1000000000000000055511151231257827021181583404541015625" msgstr "" +">>> 3602879701896397 * 10 ** 55 // 2 ** 55\n" +"1000000000000000055511151231257827021181583404541015625" msgid "" -"meaning that the exact number stored in the computer is equal to the decimal " -"value 0.1000000000000000055511151231257827021181583404541015625. Instead of " -"displaying the full decimal value, many languages (including older versions " -"of Python), round the result to 17 significant digits:" +"meaning that the exact number stored in the computer is equal to the decimal" +" value 0.1000000000000000055511151231257827021181583404541015625. Instead of" +" displaying the full decimal value, many languages (including older versions" +" of Python), round the result to 17 significant digits:" msgstr "" +"Das bedeutet, dass die im Computer gespeicherte exakte Zahl dem Dezimalwert " +"0,1000000000000000055511151231257827021181583404541015625 entspricht. " +"Anstatt den vollständigen Dezimalwert anzuzeigen, runden viele Sprachen " +"(einschließlich älterer Python-Versionen) das Ergebnis auf 17 signifikante " +"Stellen:" msgid "" ">>> format(0.1, '.17f')\n" "'0.10000000000000001'" msgstr "" +">>> format(0.1, '.17f')\n" +"'0.10000000000000001'" msgid "" -"The :mod:`fractions` and :mod:`decimal` modules make these calculations easy:" +"The :mod:`fractions` and :mod:`decimal` modules make these calculations " +"easy:" msgstr "" +"Die Module :mod:`fractions` und :mod:`decimal` erleichtern diese " +"Berechnungen:" msgid "" ">>> from decimal import Decimal\n" @@ -472,3 +710,18 @@ msgid "" ">>> format(Decimal.from_float(0.1), '.17')\n" "'0.10000000000000001'" msgstr "" +">>> from decimal import Decimal\n" +">>> from fractions import Fraction\n" +"\n" +">>> Fraction.from_float(0.1)\n" +"Fraction(3602879701896397, 36028797018963968)\n" +"\n" +">>> (0.1).as_integer_ratio()\n" +"(3602879701896397, 36028797018963968)\n" +"\n" +">>> Decimal.from_float(0.1)\n" +"Decimal('0,1000000000000000055511151231257827021181583404541015625')\n" +"\n" +">>> format(Decimal.from_float(0.1), '.17')\n" +"'0.10000000000000001'" + diff --git a/tutorial/index.po b/tutorial/index.po index 1cddf9f..2d39d7e 100644 --- a/tutorial/index.po +++ b/tutorial/index.po @@ -1,75 +1,46 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. +# FIRST AUTHOR Swen Bachmann <142266608+sba72@users.noreply.github.com>, 2026. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-25 14:12+0000\n" -"PO-Revision-Date: 2025-09-16 00:02+0000\n" +"PO-Revision-Date: 2026-07-31 21:31+0000\n" +"Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" msgid "The Python Tutorial" -msgstr "" +msgstr "Das Python-Tutorial" -msgid "" -"This tutorial is designed for *programmers* that are new to the Python " -"language, **not** *beginners* who are new to programming." -msgstr "" +msgid "This tutorial is designed for *programmers* that are new to the Python language, **not** *beginners* who are new to programming." +msgstr "Dieses Tutorial richtet sich an *Programmierer*, die neu bei der Sprache Python sind, **nicht** an *Anfänger*, die neu beim Programmieren sind." -msgid "" -"Python is an easy to learn, powerful programming language. It has efficient " -"high-level data structures and a simple but effective approach to object-" -"oriented programming. Python's elegant syntax and dynamic typing, together " -"with its interpreted nature, make it an ideal language for scripting and " -"rapid application development in many areas on most platforms." -msgstr "" +msgid "Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python's elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms." +msgstr "Python ist eine leicht zu erlernende, mächtige Programmiersprache. Sie bietet effiziente objektorientierte Datenstrukturen und einen einfachen, aber effektiven Ansatz zur objektorientierten Programmierung. Pythons elegante Syntax und dynamische Typisierung machen es zusammen mit seiner Eigenschaft als Interpretationssprache zu einer idealen Sprache für Skripte und schnelle Anwendungsentwicklung in vielen Bereichen auf den meisten Plattformen." -msgid "" -"The Python interpreter and the extensive standard library are freely " -"available in source or binary form for all major platforms from the Python " -"web site, https://www.python.org/, and may be freely distributed. The same " -"site also contains distributions of and pointers to many free third party " -"Python modules, programs and tools, and additional documentation." -msgstr "" +msgid "The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python web site, https://www.python.org/, and may be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation." +msgstr "Der Python-Interpreter und die umfangreiche Standardbibliothek sind im Quellcode oder als Binärdateien für alle gängigen Plattformen auf der Python-Website https://www.python.org/ frei verfügbar und dürfen frei verteilt werden. Dieselbe Website enthält auch Distributionen von und Verweise auf viele kostenlose Python-Module, Programme und Werkzeuge von Drittanbietern sowie zusätzliche Dokumentation." -msgid "" -"The Python interpreter is easily extended with new functions and data types " -"implemented in C or C++ (or other languages callable from C). Python is also " -"suitable as an extension language for customizable applications." -msgstr "" +msgid "The Python interpreter is easily extended with new functions and data types implemented in C or C++ (or other languages callable from C). Python is also suitable as an extension language for customizable applications." +msgstr "Der Python-Interpreter lässt sich leicht um neue Funktionen und Datentypen erweitern, die in C oder C++ (oder anderen aus C aufrufbaren Sprachen) implementiert sind. Python eignet sich auch als Erweiterungssprache für anpassbare Anwendungen." -msgid "" -"This tutorial introduces the reader informally to the basic concepts and " -"features of the Python language and system. Be aware that it expects you to " -"have a basic understanding of programming in general. It helps to have a " -"Python interpreter handy for hands-on experience, but all examples are self-" -"contained, so the tutorial can be read off-line as well." -msgstr "" +msgid "This tutorial introduces the reader informally to the basic concepts and features of the Python language and system. Be aware that it expects you to have a basic understanding of programming in general. It helps to have a Python interpreter handy for hands-on experience, but all examples are self-contained, so the tutorial can be read off-line as well." +msgstr "Dieses Tutorial führt den Leser informell in die grundlegenden Konzepte und Funktionen der Sprache Python und ihres Systems ein. Bitte beachte, dass ein grundlegendes Verständnis der Programmierung im Allgemeinen vorausgesetzt wird. Es ist hilfreich, für praktische Erfahrungen einen Python-Interpreter zur Hand zu haben; alle Beispiele sind jedoch eigenständig, sodass das Tutorial auch offline gelesen werden kann." -msgid "" -"For a description of standard objects and modules, see :ref:`library-" -"index`. :ref:`reference-index` gives a more formal definition of the " -"language. To write extensions in C or C++, read :ref:`extending-index` and :" -"ref:`c-api-index`. There are also several books covering Python in depth." -msgstr "" +msgid "For a description of standard objects and modules, see :ref:`library-index`. :ref:`reference-index` gives a more formal definition of the language. To write extensions in C or C++, read :ref:`extending-index` and :ref:`c-api-index`. There are also several books covering Python in depth." +msgstr "Eine Beschreibung der Standardobjekte und -module findest du unter :ref:`library-index`. :ref:`reference-index` bietet eine formellere Definition der Sprache. Um Erweiterungen in C oder C++ zu schreiben, lies :ref:`extending-index` und :ref:`c-api-index`. Es gibt außerdem mehrere Bücher, die sich eingehend mit Python befassen." -msgid "" -"This tutorial does not attempt to be comprehensive and cover every single " -"feature, or even every commonly used feature. Instead, it introduces many of " -"Python's most noteworthy features, and will give you a good idea of the " -"language's flavor and style. After reading it, you will be able to read and " -"write Python modules and programs, and you will be ready to learn more about " -"the various Python library modules described in :ref:`library-index`." -msgstr "" +msgid "This tutorial does not attempt to be comprehensive and cover every single feature, or even every commonly used feature. Instead, it introduces many of Python's most noteworthy features, and will give you a good idea of the language's flavor and style. After reading it, you will be able to read and write Python modules and programs, and you will be ready to learn more about the various Python library modules described in :ref:`library-index`." +msgstr "Dieses Tutorial erhebt keinen Anspruch darauf, vollständig zu sein und jedes einzelne oder auch nur jedes häufig genutzte Feature abzudecken. Stattdessen führt es in viele der bemerkenswertesten Features von Python ein und vermittelt dir einen guten Eindruck vom Stil und der Philosophie der Sprache. Nach dem Lesen wirst du in der Lage sein, Python-Module und -Programme zu lesen und zu schreiben, und du wirst bereit sein, mehr über die verschiedenen im :ref:`library-index` beschriebenen Python-Bibliotheksmodule zu lernen." msgid "The :ref:`glossary` is also worth going through." -msgstr "" +msgstr "Auch das :ref:glossary ist einen Blick wert." diff --git a/tutorial/interactive.po b/tutorial/interactive.po index b2952c6..e6572f5 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -16,51 +16,25 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" msgid "Interactive Input Editing and History Substitution" -msgstr "" +msgstr "Interaktive Eingabebearbeitung und Historienersetzung" -msgid "" -"Some versions of the Python interpreter support editing of the current input " -"line and history substitution, similar to facilities found in the Korn shell " -"and the GNU Bash shell. This is implemented using the `GNU Readline`_ " -"library, which supports various styles of editing. This library has its own " -"documentation which we won't duplicate here." -msgstr "" +msgid "Some versions of the Python interpreter support editing of the current input line and history substitution, similar to facilities found in the Korn shell and the GNU Bash shell. This is implemented using the `GNU Readline`_ library, which supports various styles of editing. This library has its own documentation which we won't duplicate here." +msgstr "Einige Versionen des Python-Interpreters unterstützen das Bearbeiten der aktuellen Eingabezeile und die Historienersetzung, ähnlich den Funktionen der Korn-Shell und der GNU-Bash-Shell. Dies wird mithilfe der Bibliothek `GNU Readline`_ umgesetzt, die verschiedene Bearbeitungsstile unterstützt. Diese Bibliothek besitzt eine eigene Dokumentation, die hier nicht dupliziert wird." msgid "Tab Completion and History Editing" -msgstr "" +msgstr "Tab-Vervollständigung und Historienbearbeitung" -msgid "" -"Completion of variable and module names is :ref:`automatically enabled " -"` at interpreter startup so that the :kbd:`Tab` key " -"invokes the completion function; it looks at Python statement names, the " -"current local variables, and the available module names. For dotted " -"expressions such as ``string.a``, it will evaluate the expression up to the " -"final ``'.'`` and then suggest completions from the attributes of the " -"resulting object. Note that this may execute application-defined code if an " -"object with a :meth:`~object.__getattr__` method is part of the expression. " -"The default configuration also saves your history into a file named :file:`." -"python_history` in your user directory. The history will be available again " -"during the next interactive interpreter session." -msgstr "" +msgid "Completion of variable and module names is :ref:`automatically enabled ` at interpreter startup so that the :kbd:`Tab` key invokes the completion function; it looks at Python statement names, the current local variables, and the available module names. For dotted expressions such as ``string.a``, it will evaluate the expression up to the final ``'.'`` and then suggest completions from the attributes of the resulting object. Note that this may execute application-defined code if an object with a :meth:`~object.__getattr__` method is part of the expression. The default configuration also saves your history into a file named :file:`.python_history` in your user directory. The history will be available again during the next interactive interpreter session." +msgstr "Die Vervollständigung von Variablen- und Modulnamen ist beim Start des Interpreters :ref:`automatisch aktiviert `, sodass die :kbd:`Tab`-Taste die Vervollständigungsfunktion aufruft; diese prüft Python-Anweisungsnamen, die aktuellen lokalen Variablen und die verfügbaren Modulnamen. Bei Ausdrücken mit Punkt wie ``string.a`` wird der Ausdruck bis zum letzten ``'.'`` ausgewertet und anschließend werden Vervollständigungen aus den Attributen des resultierenden Objekts vorgeschlagen. Beachte, dass dies anwendungsspezifischen Code ausführen kann, wenn ein Objekt mit einer :meth:`~object.__getattr__`-Methode Teil des Ausdrucks ist. Die Standardkonfiguration speichert deine Chronik außerdem in einer Datei namens :file:`.python_history` in deinem Benutzerverzeichnis. Die Chronik steht bei der nächsten interaktiven Interpreter-Sitzung wieder zur Verfügung." msgid "Alternatives to the Interactive Interpreter" -msgstr "" +msgstr "Alternativen zum interaktiven Interpreter" -msgid "" -"This facility is an enormous step forward compared to earlier versions of " -"the interpreter; however, some wishes are left: It would be nice if the " -"proper indentation were suggested on continuation lines (the parser knows if " -"an :data:`~token.INDENT` token is required next). The completion mechanism " -"might use the interpreter's symbol table. A command to check (or even " -"suggest) matching parentheses, quotes, etc., would also be useful." -msgstr "" +msgid "This facility is an enormous step forward compared to earlier versions of the interpreter; however, some wishes are left: It would be nice if the proper indentation were suggested on continuation lines (the parser knows if an :data:`~token.INDENT` token is required next). The completion mechanism might use the interpreter's symbol table. A command to check (or even suggest) matching parentheses, quotes, etc., would also be useful." +msgstr "Diese Funktion ist ein gewaltiger Schritt nach vorn im Vergleich zu früheren Versionen des Interpreters. Dennoch bleiben einige Wünsche offen: Es wäre schön, wenn bei Fortsetzungszeilen die passende Einrückung vorgeschlagen würde (der Parser weiß, ob als Nächstes ein :data:`~token.INDENT`-Token erforderlich ist). Der Vervollständigungsmechanismus könnte die Symboltabelle des Interpreters nutzen. Ein Befehl zum Prüfen (oder sogar Vorschlagen) passender Klammern, Anführungszeichen usw. wäre ebenfalls nützlich." -msgid "" -"One alternative enhanced interactive interpreter that has been around for " -"quite some time is IPython_, which features tab completion, object " -"exploration and advanced history management. It can also be thoroughly " -"customized and embedded into other applications. Another similar enhanced " -"interactive environment is bpython_." -msgstr "" +msgid "One alternative enhanced interactive interpreter that has been around for quite some time is IPython_, which features tab completion, object exploration and advanced history management. It can also be thoroughly customized and embedded into other applications. Another similar enhanced interactive environment is bpython_." +msgstr "Ein alternativer erweiterter interaktiver Interpreter, den es schon seit geraumer Zeit gibt, ist IPython_. Dieser bietet Tab-Vervollständigung, Objekt-Inspektion und erweitertes Historienmanagement. Er lässt sich zudem umfassend anpassen und in andere Anwendungen einbetten. Eine weitere ähnliche erweiterte interaktive Umgebung ist bpython_." diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index 61b477d..90c11cc 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -1,19 +1,18 @@ -# SOME DESCRIPTIVE TITLE. +# German translation for Python documentation. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. +# FIRST AUTHOR Swen Bachmann <142266608+sba72@users.noreply.github.com>, 2026. # # Translators: # python-doc bot, 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-25 14:12+0000\n" -"PO-Revision-Date: 2025-09-16 00:02+0000\n" -"Last-Translator: python-doc bot, 2025\n" +"PO-Revision-Date: 2026-07-31 00:02+0000\n" +"Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,10 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Using the Python Interpreter" -msgstr "" +msgstr "Verwendung des Python-Interpreters" msgid "Invoking the Interpreter" -msgstr "" +msgstr "Aufrufen des Interpreters" msgid "" "The Python interpreter is usually installed as |" @@ -33,9 +32,13 @@ msgid "" "available; putting :file:`/usr/local/bin` in your Unix shell's search path " "makes it possible to start it by typing the command:" msgstr "" +"Auf Rechnern, auf denen der Python-Interpreter verfügbar ist, ist er " +"üblicherweise unter |usr_local_bin_python_x_dot_y_literal| installiert. Wenn " +"Sie :file:`/usr/local/bin` in den Suchpfad Ihrer Unix-Shell aufnehmen, " +"können Sie ihn durch Eingabe des Befehls" msgid "python3.14" -msgstr "" +msgstr "python3.14" msgid "" "to the shell. [#]_ Since the choice of the directory where the interpreter " @@ -43,6 +46,10 @@ msgid "" "local Python guru or system administrator. (E.g., :file:`/usr/local/python` " "is a popular alternative location.)" msgstr "" +"in der Shell starten. [#]_ Da der Ort, an dem der Interpreter liegt, eine " +"Installationsoption ist, sind auch andere Pfade möglich; fragen Sie Ihren " +"lokalen Python-Guru oder Systemadministrator. (Ein beliebter alternativer " +"Ort ist z. B. :file:`/usr/local/python`.)" msgid "" "On Windows machines where you have installed Python from the :ref:`Microsoft " @@ -51,6 +58,12 @@ msgid "" "can use the :file:`py` command. See :ref:`setting-envvars` for other ways to " "launch Python." msgstr "" +"Auf Windows-Rechnern, auf denen Sie Python aus dem :ref:`Microsoft Store " +"` installiert haben, ist der Befehl " +"|python_x_dot_y_literal| vorhanden. Wenn Sie den :ref:`py.exe Launcher " +"` installiert haben, können Sie den Befehl :file:`py` nutzen. " +"Siehe :ref:`setting-envvars` für weitere Möglichkeiten, Python zu starten." + msgid "" "Typing an end-of-file character (:kbd:`Control-D` on Unix, :kbd:`Control-Z` " @@ -58,6 +71,10 @@ msgid "" "exit status. If that doesn't work, you can exit the interpreter by typing " "the following command: ``quit()``." msgstr "" +"Wenn Sie an der primären Eingabeaufforderung das Dateiende-Zeichen " +"(:kbd:`Control-D` unter Unix, :kbd:`Control-Z` unter Windows) eingeben, " +"beendet sich der Interpreter mit dem Statuscode 0. Falls das nicht " +"funktioniert, können Sie den Interpreter mit dem Befehl ``quit()`` beenden." msgid "" "The interpreter's line-editing features include interactive editing, history " @@ -70,6 +87,17 @@ msgid "" "echoed, command line editing isn't available; you'll only be able to use " "backspace to remove characters from the current line." msgstr "" +"Zu den Funktionen des Interpreters für die Kommandozeilenbearbeitung gehören " +"interaktives Bearbeiten, Befehlshistorie und Code-Vervollständigung auf " +"Systemen, die die Bibliothek `GNU Readline `_ unterstützen. Um schnell zu prüfen, ob die " +"Kommandozeilenbearbeitung unterstützt wird, drücke am ersten " +"Python-Prompt :kbd:`Control-P`. Wenn ein Signalton ertönt, ist die " +"Kommandozeilenbearbeitung verfügbar. Anhang :ref:`tut-interacting` " +"bietet eine Einführung in die Tastenbelegung. Wenn scheinbar nichts passiert " +"oder wird ``^P`` ausgegeben, ist Kommandozeilenbearbeitung nicht verfügbar " +"und du kannst dann nur die Rückschritttaste nutzen, um Zeichen aus der " +"aktuellen Zeile zu löschen." msgid "" "The interpreter operates somewhat like the Unix shell: when called with " @@ -77,6 +105,11 @@ msgid "" "interactively; when called with a file name argument or with a file as " "standard input, it reads and executes a *script* from that file." msgstr "" +"Der Interpreter funktioniert ähnlich wie die Unix-Shell: Ist die " +"Standardeingabe mit einem TTY-Gerät (Terminal) verbunden, liest und führt " +"er Befehle interaktiv aus. Wird er hingegen mit einem Dateinamen als " +"Argument oder einer Datei als Standardeingabe aufgerufen, liest und führt er " +"ein *Skript* aus dieser Datei aus." msgid "" "A second way of starting the interpreter is ``python -c command [arg] ...``, " @@ -85,24 +118,36 @@ msgid "" "characters that are special to the shell, it is usually advised to quote " "*command* in its entirety." msgstr "" +"Eine zweite Möglichkeit, den Interpreter zu starten, ist ``python -c " +"Befehl [arg] ...``. Dies führt die Anweisung(en) in *Befehl* aus, analog " +"zur Option :-option:`-c` der Shell. Da Python-Anweisungen häufig " +"Leerzeichen oder andere Sonderzeichen der Shell enthalten, empfiehlt es " +"sich in der Regel, *Befehl* vollständig in Anführungszeichen zu setzen." msgid "" "Some Python modules are also useful as scripts. These can be invoked using " "``python -m module [arg] ...``, which executes the source file for *module* " "as if you had spelled out its full name on the command line." msgstr "" +"Manche Python-Module sind auch als Skripte nützlich. Diese können über " +"``python -m Modul [arg] ...`` aufgerufen werden, was die Quelldatei für " +"*Modul* so ausführt, als hättest du ihren vollständigen Namen auf der " +"Kommandozeile angegeben." msgid "" "When a script file is used, it is sometimes useful to be able to run the " "script and enter interactive mode afterwards. This can be done by passing :" "option:`-i` before the script." msgstr "" +"Wenn eine Skriptdatei verwendet wird, ist es manchmal nützlich, das Skript " +"auszuführen und danach in den interaktiven Modus zu wechseln. Dazu kannst " +"du :option:`-i` vor dem Skript übergeben." msgid "All command line options are described in :ref:`using-on-general`." -msgstr "" +msgstr "Alle Kommandozeilen-Optionen sind in :ref:`using-on-general` beschrieben." msgid "Argument Passing" -msgstr "" +msgstr "Argumentübergabe" msgid "" "When known to the interpreter, the script name and additional arguments " @@ -118,9 +163,22 @@ msgid "" "interpreter's option processing but left in ``sys.argv`` for the command or " "module to handle." msgstr "" +"Sind dem Interpreter der Skriptname und die nachfolgenden Argumente bekannt, " +"werden sie in eine Liste von Zeichenketten umgewandelt und der Variablen " +"``argv`` im Modul ``sys`` zugewiesen. Du kannst auf diese Liste zugreifen, " +"indem du ``import sys`` ausführst. Die Länge der Liste beträgt mindestens " +"eins. Werden weder ein Skript noch Argumente angegeben, ist ``sys.argv[0]`` " +"eine leere Zeichenkette. Wird der Skriptname als ``'-'`` angegeben (was " +"Standardeingabe bedeutet), wird ``sys.argv[0]`` auf ``'-'`` gesetzt. Wird :" +"option:`-c` *Befehl* verwendet, wird ``sys.argv[0]`` auf ``'-c'`` gesetzt. " +"Wird :option:`-m` *Modul* verwendet, wird ``sys.argv[0]`` auf den " +"vollständigen Namen des gefundenen Moduls gesetzt. Optionen nach :option:`-c` " +"*Befehl* oder :option:`-m` *Modul* werden nicht von der Optionenverarbeitung " +"des Python-Interpreters verbraucht, sondern in ``sys.argv`` belassen, damit " +"der Befehl oder das Modul sie verarbeiten kann." msgid "Interactive Mode" -msgstr "" +msgstr "Interaktiver Modus" msgid "" "When commands are read from a tty, the interpreter is said to be in " @@ -130,6 +188,13 @@ msgid "" "dots (``...``). The interpreter prints a welcome message stating its version " "number and a copyright notice before printing the first prompt:" msgstr "" +"Werden Befehle über ein TTY-Gerät (Terminal) gelesen, befindet sich der " +"Interpreter im *interaktiven Modus*. In diesem Modus fordert er mit dem " +"*primären Prompt* zur Eingabe des nächsten Befehls auf, gewöhnlich drei " +"Größer-als-Zeichen (``>>>``). Für Fortsetzungszeilen fordert er mit dem " +"*sekundären Prompt* auf, standardmäßig drei Punkte (``...``). Der " +"Interpreter gibt eine Begrüßungsmeldung mit seiner Versionsnummer und " +"einem Urheberrechtshinweis aus, bevor er den ersten Prompt anzeigt:" msgid "" "$ python3.14\n" @@ -139,11 +204,19 @@ msgid "" "information.\n" ">>>" msgstr "" +"$ python3.14\n" +"Python 3.14 (default, April 4 2024, 09:25:04)\n" +"[GCC 10.2.0] on linux\n" +"Type \"help\", \"copyright\", \"credits\" or \"license\" for more " +"information.\n" +">>>" msgid "" "Continuation lines are needed when entering a multi-line construct. As an " "example, take a look at this :keyword:`if` statement::" msgstr "" +"Fortsetzungszeilen sind erforderlich, wenn du eine mehrzeilige Anweisung " +"eingibst. Sieh dir als Beispiel diese :keyword:`if`-Anweisung an::" msgid "" ">>> the_world_is_flat = True\n" @@ -152,15 +225,23 @@ msgid "" "...\n" "Be careful not to fall off!" msgstr "" +">>> the_world_is_flat = True\n" +">>> if the_world_is_flat:\n" +"... print(\"Be careful not to fall off!\")\n" +"...\n" +"Be careful not to fall off!" msgid "For more on interactive mode, see :ref:`tut-interac`." msgstr "" +"Weitere Informationen zum interaktiven Modus findest du unter " +":ref:`tut-interac`." + msgid "The Interpreter and Its Environment" -msgstr "" +msgstr "Der Interpreter und seine Umgebung" msgid "Source Code Encoding" -msgstr "" +msgstr "Quelltext-Codierung" msgid "" "By default, Python source files are treated as encoded in UTF-8. In that " @@ -171,36 +252,57 @@ msgid "" "properly, your editor must recognize that the file is UTF-8, and it must use " "a font that supports all the characters in the file." msgstr "" +"Standardmäßig werden Python-Quelldateien als UTF-8-codiert behandelt. In dieser " +"Codierung können Zeichen der meisten Sprachen der Welt gleichzeitig in " +"String-Literalen, Bezeichnern und Kommentaren verwendet werden. Die " +"Standardbibliothek nutzt allerdings nur ASCII-Zeichen für Bezeichner, eine " +"Konvention, der jeder übertragbare Code folgen sollte. Um all diese Zeichen " +"korrekt anzuzeigen, muss dein Editor erkennen, dass die Datei in UTF-8 " +"vorliegt, und eine Schriftart verwenden, die alle Zeichen in der Datei " +"unterstützt." msgid "" "To declare an encoding other than the default one, a special comment line " "should be added as the *first* line of the file. The syntax is as follows::" msgstr "" +"Um eine andere als die Standardcodierung anzugeben, sollte eine spezielle " +"Kommentarzeile als *erste* Zeile der Datei eingefügt werden. Die Syntax sieht " +"wie folgt aus::" msgid "# -*- coding: encoding -*-" -msgstr "" +msgstr "# -*- coding: encoding -*-" msgid "where *encoding* is one of the valid :mod:`codecs` supported by Python." msgstr "" +"wobei *encoding* eine der gültigen, von Python unterstützten " +":mod:`codecs` ist." msgid "" "For example, to declare that Windows-1252 encoding is to be used, the first " "line of your source code file should be::" msgstr "" +"Um beispielsweise anzugeben, dass die Windows-1252-Codierung verwendet " +"wird, sollte die erste Zeile deiner Quelltext-Datei wie folgt aussehen::" msgid "# -*- coding: cp1252 -*-" -msgstr "" +msgstr "# -*- coding: cp1252 -*-" msgid "" "One exception to the *first line* rule is when the source code starts with " "a :ref:`UNIX \"shebang\" line `. In this case, the encoding " "declaration should be added as the second line of the file. For example::" msgstr "" +"Eine Ausnahme von der Regel für die *erste Zeile* gilt, wenn der Quelltext mit " +"einer :ref:`UNIX-\"Shebang\"-Zeile ` beginnt. In diesem Fall " +"sollte die Codierungsdeklaration als zweite Zeile der Datei eingefügt werden. " +"Zum Beispiel::" msgid "" "#!/usr/bin/env python3\n" "# -*- coding: cp1252 -*-" msgstr "" +"#!/usr/bin/env python3\n" +"# -*- coding: cp1252 -*-" msgid "Footnotes" msgstr "Fußnoten" @@ -210,3 +312,6 @@ msgid "" "executable named ``python``, so that it does not conflict with a " "simultaneously installed Python 2.x executable." msgstr "" +"Unter Unix wird der Python-3.x-Interpreter standardmäßig nicht unter dem " +"Namen ``python`` installiert, damit er nicht mit einer gleichzeitig " +"installierten Python-2.x-Datei kollidiert." diff --git a/tutorial/introduction.po b/tutorial/introduction.po index bbd9155..e25db95 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -1,19 +1,18 @@ -# SOME DESCRIPTIVE TITLE. +# German translation for Python documentation. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. +# FIRST AUTHOR Swen Bachmann <142266608+sba72@users.noreply.github.com>, 2026. # # Translators: # python-doc bot, 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-25 14:12+0000\n" -"PO-Revision-Date: 2025-09-16 00:02+0000\n" -"Last-Translator: python-doc bot, 2025\n" +"PO-Revision-Date: 2026-07-31 00:02+0000\n" +"Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,7 +21,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "An Informal Introduction to Python" -msgstr "" +msgstr "Eine informelle Einführung in Python" msgid "" "In the following examples, input and output are distinguished by the " @@ -32,12 +31,23 @@ msgid "" "that a secondary prompt on a line by itself in an example means you must " "type a blank line; this is used to end a multi-line command." msgstr "" +"In den folgenden Beispielen werden Eingabe und Ausgabe durch das Vorhandensein " +"oder Fehlen von Prompts (:term:`>>>` und :term:`...`) unterschieden: Um das " +"Beispiel nachzuvollziehen, musst du alles eingeben, was nach dem Prompt steht, " +"sobald dieser erscheint. Zeilen, die nicht mit einem Prompt beginnen, sind " +"Ausgaben des Interpreters. Beachte, dass ein zweiter Prompt in einer eigenen " +"Zeile bedeutet, dass du eine Leerzeile eingeben musst; dies dient dazu, einen " +"mehrzeiligen Befehl zu beenden." msgid "" "You can use the \"Copy\" button (it appears in the upper-right corner when " "hovering over or tapping a code example), which strips prompts and omits " "output, to copy and paste the input lines into your interpreter." msgstr "" +"Du kannst die Schaltfläche „Copy“ nutzen (sie erscheint in der oberen " +"rechten Ecke, wenn du mit der Maus über ein Codebeispiel fährst oder darauf " +"tippst), die Prompts entfernt und Ausgaben auslässt, um die Eingabezeilen " +"in deinen Interpreter zu kopieren und einzufügen." msgid "" "Many of the examples in this manual, even those entered at the interactive " @@ -48,9 +58,17 @@ msgid "" "Since comments are to clarify code and are not interpreted by Python, they " "may be omitted when typing in examples." msgstr "" +"Viele der Beispiele in diesem Handbuch enthalten Kommentare, selbst wenn sie " +"an der interaktiven Eingabeaufforderung eingegeben werden. Kommentare beginnen " +"in Python mit dem Raute-Zeichen ``#`` und erstrecken sich bis zum Ende der " +"physischen Zeile. Ein Kommentar kann am Anfang einer Zeile oder nach " +"Leerzeichen oder Code stehen, jedoch nicht innerhalb eines String-Literals. " +"Ein Raute-Zeichen innerhalb eines String-Literals ist einfach nur ein Raute-" +"Zeichen. Da Kommentare der Erklärung von Code dienen und nicht von Python " +"interpretiert werden, können sie beim Abtippen der Beispiele weggelassen werden." msgid "Some examples::" -msgstr "" +msgstr "Einige Beispiele::" msgid "" "# this is the first comment\n" @@ -58,17 +76,23 @@ msgid "" " # ... and now a third!\n" "text = \"# This is not a comment because it's inside quotes.\"" msgstr "" +"# Dies ist der erste Kommentar\n" +"spam = 1 # und dies ist der zweite Kommentar\n" +" # ... und nun ein dritter!\n" +"text = \"# Dies ist kein Kommentar, da es in Anführungszeichen steht.\"" msgid "Using Python as a Calculator" -msgstr "" +msgstr "Python als Taschenrechner verwenden" msgid "" "Let's try some simple Python commands. Start the interpreter and wait for " "the primary prompt, ``>>>``. (It shouldn't take long.)" msgstr "" +"Probieren wir einige einfache Python-Befehle aus. Starte den Interpreter und " +"warte auf den primären Prompt, ``>>>``. (Es sollte nicht lange dauern.)" msgid "Numbers" -msgstr "" +msgstr "Zahlen" msgid "" "The interpreter acts as a simple calculator: you can type an expression at " @@ -76,6 +100,11 @@ msgid "" "operators ``+``, ``-``, ``*`` and ``/`` can be used to perform arithmetic; " "parentheses (``()``) can be used for grouping. For example::" msgstr "" +"Der Interpreter funktioniert wie ein einfacher Taschenrechner: Du kannst einen " +"Ausdruck eingeben und er gibt den Wert aus. Die Syntax für Ausdrücke ist " +"einfach und intuitiv: Die Operatoren ``+``, ``-``, ``*`` und ``/`` können für " +"arithmetische Berechnungen verwendet werden; Klammern (``()``) dienen der " +"Gruppierung. Zum Beispiel::" msgid "" ">>> 2 + 2\n" @@ -87,18 +116,33 @@ msgid "" ">>> 8 / 5 # division always returns a floating-point number\n" "1.6" msgstr "" +">>> 2 + 2\n" +"4\n" +">>> 50 - 5*6\n" +"20\n" +">>> (50 - 5*6) / 4\n" +"5.0\n" +">>> 8 / 5 # division always returns a floating-point number\n" +"1.6" msgid "" "The integer numbers (e.g. ``2``, ``4``, ``20``) have type :class:`int`, the " "ones with a fractional part (e.g. ``5.0``, ``1.6``) have type :class:" "`float`. We will see more about numeric types later in the tutorial." msgstr "" +"Ganzzahlen (z. B. ``2``, ``4``, ``20``) haben den Typ :class:`int`, " +"Zahlen mit Nachkommastellen (z. B. ``5.0``, ``1.6``) den Typ :class:" +"`float`. Mehr zu numerischen Typen erfährst du später in diesem Tutorial." msgid "" "Division (``/``) always returns a float. To do :term:`floor division` and " "get an integer result you can use the ``//`` operator; to calculate the " "remainder you can use ``%``::" msgstr "" +"Eine Division (``/``) liefert immer eine Gleitkommazahl zurück. Um eine " +":term:`Ganzzahldivision ` durchzuführen und ein ganzzahliges " +"Ergebnis zu erhalten, kannst du den Operator ``//`` verwenden; zur Berechnung " +"des Restes nutzt du ``%``::" msgid "" ">>> 17 / 3 # classic division returns a float\n" @@ -111,11 +155,22 @@ msgid "" ">>> 5 * 3 + 2 # floored quotient * divisor + remainder\n" "17" msgstr "" +">>> 17 / 3 # Klassische Division liefert eine Gleitkommazahl zurück\n" +"5.666666666666667\n" +">>>\n" +">>> 17 // 3 # Ganzzahldivision schneidet den Nachkommateil ab\n" +"5\n" +">>> 17 % 3 # Der %-Operator liefert den Rest der Division zurück\n" +"2\n" +">>> 5 * 3 + 2 # Abgerundeter Quotient * Divisor + Rest\n" +"17" msgid "" "With Python, it is possible to use the ``**`` operator to calculate powers " "[#]_::" msgstr "" +"In Python kann der Operator ``**`` verwendet werden, um Potenzen zu berechnen " +"[#]_::" msgid "" ">>> 5 ** 2 # 5 squared\n" @@ -123,11 +178,18 @@ msgid "" ">>> 2 ** 7 # 2 to the power of 7\n" "128" msgstr "" +">>> 5 ** 2 # 5 zum Quadrat\n" +"25\n" +">>> 2 ** 7 # 2 hoch 7\n" +"128" msgid "" "The equal sign (``=``) is used to assign a value to a variable. Afterwards, " "no result is displayed before the next interactive prompt::" msgstr "" +"Das Gleichheitszeichen (``=``) wird verwendet, um einer Variablen einen " +"Wert zuzuweisen. Dabei wird vor dem nächsten interaktiven Prompt kein " +"Ergebnis angezeigt::" msgid "" ">>> width = 20\n" @@ -135,11 +197,17 @@ msgid "" ">>> width * height\n" "900" msgstr "" +">>> width = 20\n" +">>> height = 5 * 9\n" +">>> width * height\n" +"900" msgid "" "If a variable is not \"defined\" (assigned a value), trying to use it will " "give you an error::" msgstr "" +"Wenn eine Variable nicht „definiert“ ist (ihr kein Wert zugewiesen wurde), " +"führt der Versuch, diese zu verwenden, zu einem Fehler::" msgid "" ">>> n # try to access an undefined variable\n" @@ -147,22 +215,33 @@ msgid "" " File \"\", line 1, in \n" "NameError: name 'n' is not defined" msgstr "" +">>> n # Versuch, auf eine undefinierte Variable zuzugreifen\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"NameError: name 'n' is not defined" msgid "" "There is full support for floating point; operators with mixed type operands " "convert the integer operand to floating point::" msgstr "" +"Gleitkommazahlen werden vollständig unterstützt; Operatoren mit gemischten " +"Operandentypen wandeln den Ganzzahl-Operanden in eine Gleitkommazahl um::" msgid "" ">>> 4 * 3.75 - 1\n" "14.0" msgstr "" +">>> 4 * 3.75 - 1\n" +"14.0" msgid "" "In interactive mode, the last printed expression is assigned to the variable " "``_``. This means that when you are using Python as a desk calculator, it " "is somewhat easier to continue calculations, for example::" msgstr "" +"Im interaktiven Modus wird der letzte ausgegebene Ausdruck einer Variablen " +"``_`` zugewiesen. Wenn du Python als Taschenrechner nutzt, erleichtert dies " +"das Weiterrechnen, zum Beispiel::" msgid "" ">>> tax = 12.5 / 100\n" @@ -174,12 +253,24 @@ msgid "" ">>> round(_, 2)\n" "113.06" msgstr "" +">>> tax = 12.5 / 100\n" +">>> price = 100.50\n" +">>> price * tax\n" +"12.5625\n" +">>> price + _\n" +"113.0625\n" +">>> round(_, 2)\n" +"113.06" msgid "" "This variable should be treated as read-only by the user. Don't explicitly " "assign a value to it --- you would create an independent local variable with " "the same name masking the built-in variable with its magic behavior." msgstr "" +"Diese Variable sollte vom Benutzer als schreibgeschützt behandelt werden. " +"Weise ihr nicht explizit einen Wert zu --- du würdest eine unabhängige " +"lokale Variable desselben Namens erzeugen, die die integrierte Variable " +"mit ihrem magischen Verhalten verdeckt." msgid "" "In addition to :class:`int` and :class:`float`, Python supports other types " @@ -188,9 +279,14 @@ msgid "" "`, and uses the ``j`` or ``J`` suffix to indicate the " "imaginary part (e.g. ``3+5j``)." msgstr "" +"Neben :class:`int` und :class:`float` unterstützt Python weitere Typen " +"von Zahlen, wie :class:`~decimal.Decimal` und :class:`~fractions." +"Fraction`. Python bietet auch integrierte Unterstützung für :ref:`komplexe " +"Zahlen ` und verwendet das Suffix ``j`` oder ``J``, um den " +"Imaginärteil anzugeben (z. B. ``3+5j``)." msgid "Text" -msgstr "" +msgstr "Text" msgid "" "Python can manipulate text (represented by type :class:`str`, so-called " @@ -199,6 +295,12 @@ msgid "" "\"``Yay! :)``\". They can be enclosed in single quotes (``'...'``) or double " "quotes (``\"...\"``) with the same result [#]_." msgstr "" +"Neben Zahlen kann Python auch Text verarbeiten (dargestellt durch den Typ " +":class:`str`, sogenannte \"Strings\" oder Zeichenketten). Dazu gehören Zeichen " +"\"``!``\", Wörter \"``rabbit``\", Namen \"``Paris``\", Sätze \"``Got your back.``\" " +"usw. \"``Yay! :)``\". Sie können in einfache Anführungszeichen (``'...'``) oder " +"doppelte Anführungszeichen (``\"...\"``) eingeschlossen werden, mit dem " +"gleichen Ergebnis [#]_." msgid "" ">>> 'spam eggs' # single quotes\n" @@ -208,11 +310,20 @@ msgid "" ">>> '1975' # digits and numerals enclosed in quotes are also strings\n" "'1975'" msgstr "" +">>> 'spam eggs' # einfache Anführungszeichen\n" +"'spam eggs'\n" +">>> \"Paris rabbit got your back :)! Yay!\" # doppelte Anführungszeichen\n" +"'Paris rabbit got your back :)! Yay!'\n" +">>> '1975' # in Anführungszeichen eingeschlossene Ziffern und Zahlen sind ebenfalls Strings\n" +"'1975'" msgid "" "To quote a quote, we need to \"escape\" it, by preceding it with ``\\``. " "Alternatively, we can use the other type of quotation marks::" msgstr "" +"Um ein Anführungszeichen innerhalb eines Strings zu verwenden, müssen wir " +"es \"maskieren\", indem ein ``\\`` vorangestellt wird. Alternativ können " +"wir die andere Art von Anführungszeichen verwenden::" msgid "" ">>> 'doesn\\'t' # use \\' to escape the single quote...\n" @@ -226,6 +337,16 @@ msgid "" ">>> '\"Isn\\'t,\" they said.'\n" "'\"Isn\\'t,\" they said.'" msgstr "" +">>> 'doesn\\'t' # vergleiche \\' zum Maskieren des einfachen Anführungszeichens...\n" +"\"doesn't\"\n" +">>> \"doesn't\" # ...oder verwende stattdessen doppelte Anführungszeichen\n" +"\"doesn't\"\n" +">>> '\"Yes,\" they said.'\n" +"'\"Yes,\" they said.'\n" +">>> \"\\\"Yes,\\\" they said.\"\n" +"'\"Yes,\" they said.'\n" +">>> '\"Isn\\'t,\" they said.'\n" +"'\"Isn\\'t,\" they said.'" msgid "" "In the Python shell, the string definition and output string can look " @@ -233,6 +354,10 @@ msgid "" "omitting the enclosing quotes and by printing escaped and special " "characters::" msgstr "" +"In der Python-Shell können die String-Definition und die String-Ausgabe " +"unterschiedlich aussehen. Die Funktion :func:`print` erzeugt eine lesbarere " +"Ausgabe, indem sie die umschließenden Anführungszeichen weglässt und " +"maskierte sowie Sonderzeichen ausgibt::" msgid "" ">>> s = 'First line.\\nSecond line.' # \\n means newline\n" @@ -243,12 +368,22 @@ msgid "" "First line.\n" "Second line." msgstr "" +">>> s = 'First line.\\nSecond line.' # \\n steht für Zeilenumbruch\n" +">>> s # ohne print() sind Sonderzeichen im String enthalten\n" +"'First line.\\nSecond line.'\n" +">>> print(s) # mit print() werden Sonderzeichen interpretiert, sodass \\n " +"einen Zeilenumbruch erzeugt\n" +"First line.\n" +"Second line." msgid "" "If you don't want characters prefaced by ``\\`` to be interpreted as special " "characters, you can use *raw strings* by adding an ``r`` before the first " "quote::" msgstr "" +"Wenn du nicht möchtest, dass Zeichen mit vorangestelltem ``\\`` als " +"Sonderzeichen interpretiert werden, kannst du *Raw-Strings* verwenden, " +"indem du ein ``r`` vor das erste Anführungszeichen setzt::" msgid "" ">>> print('C:\\some\\name') # here \\n means newline!\n" @@ -257,12 +392,21 @@ msgid "" ">>> print(r'C:\\some\\name') # note the r before the quote\n" "C:\\some\\name" msgstr "" +">>> print('C:\\some\\name') # hier steht \\n für Zeilenumbruch!\n" +"C:\\some\n" +"ame\n" +">>> print(r'C:\\some\\name') # beachte das r vor dem Anführungszeichen\n" +"C:\\some\\name" msgid "" "There is one subtle aspect to raw strings: a raw string may not end in an " "odd number of ``\\`` characters; see :ref:`the FAQ entry ` for more information and workarounds." msgstr "" +"Es gibt einen subtilen Aspekt bei Raw-Strings: Ein Raw-String darf nicht auf " +"eine ungerade Anzahl von ``\\``-Zeichen enden; siehe :ref:`den FAQ-Eintrag " +"` für weitere Informationen und " +"Workarounds." msgid "" "String literals can span multiple lines. One way is using triple-quotes: " @@ -271,6 +415,12 @@ msgid "" "adding a ``\\`` at the end of the line. In the following example, the " "initial newline is not included::" msgstr "" +"String-Literale können sich über mehrere Zeilen erstrecken. Eine Möglichkeit " +"ist die Verwendung von dreifachen Anführungszeichen: ``\"\"\"...\"\"\"`` " +"oder ``'''...'''``. Zeilenendzeichen werden automatisch in den String " +"eingeschlossen, aber es ist möglich, dies zu verhindern, indem ein ``\\`` " +"am Ende der Zeile angefügt wird. Im folgenden Beispiel ist der einleitende " +"Zeilenumbruch nicht enthalten::" msgid "" ">>> print(\"\"\"\\\n" @@ -284,31 +434,52 @@ msgid "" "\n" ">>>" msgstr "" +">>> print(\"\"\"\\\n" +"... Usage: thingy [OPTIONS]\n" +"... -h Display this usage message\n" +"... -H hostname Hostname to connect to\n" +"... \"\"\")\n" +"Usage: thingy [OPTIONS]\n" +" -h Display this usage message\n" +" -H hostname Hostname to connect to\n" +"\n" +">>>" msgid "" "Strings can be concatenated (glued together) with the ``+`` operator, and " "repeated with ``*``::" msgstr "" +"Strings können mit dem Operator ``+`` verknüpft (zusammengefügt) und mit " +"``*`` wiederholt werden::" msgid "" ">>> # 3 times 'un', followed by 'ium'\n" ">>> 3 * 'un' + 'ium'\n" "'unununium'" msgstr "" +">>> # 3-mal 'un', gefolgt von 'ium'\n" +">>> 3 * 'un' + 'ium'\n" +"'unununium'" msgid "" "Two or more *string literals* (i.e. the ones enclosed between quotes) next " "to each other are automatically concatenated. ::" msgstr "" +"Zwei oder mehr *String-Literale* (also solche in Anführungszeichen), die " +"nebeneinanderstehen, werden automatisch verknüpft. ::" msgid "" ">>> 'Py' 'thon'\n" "'Python'" msgstr "" +">>> 'Py' 'thon'\n" +"'Python'" msgid "" "This feature is particularly useful when you want to break long strings::" msgstr "" +"Dieses Feature ist besonders nützlich, wenn du lange Strings umbrechen " +"möchtest::" msgid "" ">>> text = ('Put several strings within parentheses '\n" @@ -316,10 +487,16 @@ msgid "" ">>> text\n" "'Put several strings within parentheses to have them joined together.'" msgstr "" +">>> text = ('Setze mehrere Strings in Klammern, '\n" +"... 'um sie zusammenzufügen.')\n" +">>> text\n" +"'Setze mehrere Strings in Klammern, um sie zusammenzufügen.'" msgid "" "This only works with two literals though, not with variables or expressions::" msgstr "" +"Dies funktioniert jedoch nur mit zwei Literalen, nicht mit Variablen oder " +"Ausdrücken::" msgid "" ">>> prefix = 'Py'\n" @@ -334,21 +511,39 @@ msgid "" " ^^^^^\n" "SyntaxError: invalid syntax" msgstr "" +">>> prefix = 'Py'\n" +">>> prefix 'thon' # Variable und String-Literal können so nicht verknüpft werden\n" +" File \"\", line 1\n" +" prefix 'thon'\n" +" ^^^^^^\n" +"SyntaxError: invalid syntax\n" +">>> ('un' * 3) 'ium'\n" +" File \"\", line 1\n" +" ('un' * 3) 'ium'\n" +" ^^^^^\n" +"SyntaxError: invalid syntax" msgid "" "If you want to concatenate variables or a variable and a literal, use ``+``::" msgstr "" +"Wenn du Variablen oder eine Variable und ein Literal verknüpfen möchtest, " +"verwende ``+``::" msgid "" ">>> prefix + 'thon'\n" "'Python'" msgstr "" +">>> prefix + 'thon'\n" +"'Python'" msgid "" "Strings can be *indexed* (subscripted), with the first character having " "index 0. There is no separate character type; a character is simply a string " "of size one::" msgstr "" +"Strings können *indiziert* werden (mit Index), wobei das erste Zeichen den " +"Index 0 hat. Es gibt keinen eigenen Zeichentyp; ein Zeichen ist einfach ein " +"String der Länge eins::" msgid "" ">>> word = 'Python'\n" @@ -357,10 +552,16 @@ msgid "" ">>> word[5] # character in position 5\n" "'n'" msgstr "" +">>> word = 'Python'\n" +">>> word[0] # Zeichen an Position 0\n" +"'P'\n" +">>> word[5] # Zeichen an Position 5\n" +"'n'" msgid "" "Indices may also be negative numbers, to start counting from the right::" msgstr "" +"Indizes können auch negative Zahlen sein, um von rechts zu zählen::" msgid "" ">>> word[-1] # last character\n" @@ -370,15 +571,24 @@ msgid "" ">>> word[-6]\n" "'P'" msgstr "" +">>> word[-1] # letztes Zeichen\n" +"'n'\n" +">>> word[-2] # vorletztes Zeichen\n" +"'o'\n" +">>> word[-6]\n" +"'P'" msgid "Note that since -0 is the same as 0, negative indices start from -1." -msgstr "" +msgstr "Beachte, dass negative Indizes bei -1 beginnen, da -0 dasselbe wie 0 ist." msgid "" "In addition to indexing, *slicing* is also supported. While indexing is " "used to obtain individual characters, *slicing* allows you to obtain a " "substring::" msgstr "" +"Neben dem Indizieren wird auch *Slicing* (Ausschneiden) unterstützt. Während Indizieren " +"dazu dient, einzelne Zeichen zu erhalten, ermöglicht *Slicing* das " +"Heraustrennen eines Teilstrings::" msgid "" ">>> word[0:2] # characters from position 0 (included) to 2 (excluded)\n" @@ -386,11 +596,18 @@ msgid "" ">>> word[2:5] # characters from position 2 (included) to 5 (excluded)\n" "'tho'" msgstr "" +">>> word[0:2] # Zeichen von Position 0 (einschließlich) bis 2 (ausschließlich)\n" +"'Py'\n" +">>> word[2:5] # Zeichen von Position 2 (einschließlich) bis 5 (ausschließlich)\n" +"'tho'" msgid "" "Slice indices have useful defaults; an omitted first index defaults to zero, " "an omitted second index defaults to the size of the string being sliced. ::" msgstr "" +"Slice-Indizes haben nützliche Standardwerte; ein ausgelassener erster Index " +"wird standardmäßig auf null gesetzt, ein ausgelassener zweiter Index " +"entspricht standardmäßig der Länge des verwendeten Strings. ::" msgid "" ">>> word[:2] # character from the beginning to position 2 (excluded)\n" @@ -400,11 +617,20 @@ msgid "" ">>> word[-2:] # characters from the second-last (included) to the end\n" "'on'" msgstr "" +">>> word[:2] # Zeichen vom Anfang bis Position 2 (ausschließlich)\n" +"'Py'\n" +">>> word[4:] # Zeichen von Position 4 (einschließlich) bis zum Ende\n" +"'on'\n" +">>> word[-2:] # Zeichen vom Vorletzten (einschließlich) bis zum Ende\n" +"'on'" msgid "" "Note how the start is always included, and the end always excluded. This " "makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" msgstr "" +"Beachte, dass der Startwert immer eingeschlossen und der Endwert immer " +"ausgeschlossen ist. Dies stellt sicher, dass ``s[:i] + s[i:]`` immer gleich " +"``s`` ist::" msgid "" ">>> word[:2] + word[2:]\n" @@ -412,6 +638,10 @@ msgid "" ">>> word[:4] + word[4:]\n" "'Python'" msgstr "" +">>> word[:2] + word[2:]\n" +"'Python'\n" +">>> word[:4] + word[4:]\n" +"'Python'" msgid "" "One way to remember how slices work is to think of the indices as pointing " @@ -419,6 +649,11 @@ msgid "" "Then the right edge of the last character of a string of *n* characters has " "index *n*, for example::" msgstr "" +"Eine Möglichkeit, sich die Funktionsweise von Slices zu merken, besteht darin, " +"sich die Indizes so vorzustellen, dass sie *zwischen* die Zeichen zeigen, " +"wobei die linke Kante des ersten Zeichens die Nummer 0 hat. Die rechte Kante " +"des letzten Zeichens eines Strings mit *n* Zeichen hat dann den Index *n*, " +"zum Beispiel::" msgid "" " +---+---+---+---+---+---+\n" @@ -427,6 +662,11 @@ msgid "" " 0 1 2 3 4 5 6\n" "-6 -5 -4 -3 -2 -1" msgstr "" +" +---+---+---+---+---+---+\n" +" | P | y | t | h | o | n |\n" +" +---+---+---+---+---+---+\n" +" 0 1 2 3 4 5 6\n" +"-6 -5 -4 -3 -2 -1" msgid "" "The first row of numbers gives the position of the indices 0...6 in the " @@ -434,15 +674,22 @@ msgid "" "from *i* to *j* consists of all characters between the edges labeled *i* and " "*j*, respectively." msgstr "" +"Die erste Zahlenreihe gibt die Position der Indizes 0...6 im String an, " +"die zweite Reihe zeigt die entsprechenden negativen Indizes. Der Slice von " +"*i* bis *j* besteht aus allen Zeichen zwischen den mit *i* bzw. *j* " +"beschrifteten Kanten." msgid "" "For non-negative indices, the length of a slice is the difference of the " "indices, if both are within bounds. For example, the length of " "``word[1:3]`` is 2." msgstr "" +"Für nicht-negative Indizes ist die Länge eines Slices die Differenz der " +"Indizes, sofern beide innerhalb der Grenzen liegen. Zum Beispiel beträgt " +"die Länge von ``word[1:3]`` 2." msgid "Attempting to use an index that is too large will result in an error::" -msgstr "" +msgstr "Der Versuch, einen zu großen Index zu verwenden, führt zu einem Fehler::" msgid "" ">>> word[42] # the word only has 6 characters\n" @@ -450,11 +697,17 @@ msgid "" " File \"\", line 1, in \n" "IndexError: string index out of range" msgstr "" +">>> word[42] # das Wort hat nur 6 Zeichen\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"IndexError: string index out of range" msgid "" "However, out of range slice indexes are handled gracefully when used for " "slicing::" msgstr "" +"Außerhalb des Bereichs liegende Slice-Indizes werden beim Slicing jedoch " +"toleriert::" msgid "" ">>> word[4:42]\n" @@ -462,11 +715,17 @@ msgid "" ">>> word[42:]\n" "''" msgstr "" +">>> word[4:42]\n" +"'on'\n" +">>> word[42:]\n" +"''" msgid "" "Python strings cannot be changed --- they are :term:`immutable`. Therefore, " "assigning to an indexed position in the string results in an error::" msgstr "" +"Python-Strings können nicht verändert werden --- sie sind :term:`unveränderlich `. " +"Zuweisungen an eine indizierte Position im String führen daher zu einem Fehler::" msgid "" ">>> word[0] = 'J'\n" @@ -478,9 +737,17 @@ msgid "" " File \"\", line 1, in \n" "TypeError: 'str' object does not support item assignment" msgstr "" +">>> word[0] = 'J'\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: 'str' object does not support item assignment\n" +">>> word[2:] = 'py'\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: 'str' object does not support item assignment" msgid "If you need a different string, you should create a new one::" -msgstr "" +msgstr "Wenn du einen anderen String benötigst, solltest du einen neuen erstellen::" msgid "" ">>> 'J' + word[1:]\n" @@ -488,54 +755,67 @@ msgid "" ">>> word[:2] + 'py'\n" "'Pypy'" msgstr "" +">>> 'J' + word[1:]\n" +"'Jython'\n" +">>> word[:2] + 'py'\n" +"'Pypy'" msgid "The built-in function :func:`len` returns the length of a string::" -msgstr "" +msgstr "Die integrierte Funktion :func:`len` gibt die Länge eines Strings zurück::" msgid "" ">>> s = 'supercalifragilisticexpialidocious'\n" ">>> len(s)\n" "34" msgstr "" +">>> s = 'supercalifragilisticexpialidocious'\n" +">>> len(s)\n" +"34" msgid ":ref:`textseq`" -msgstr "" +msgstr ":ref:`textseq`" msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." msgstr "" +"Strings sind Beispiele für *Sequenztypen* und unterstützen die für solche " +"Typen üblichen Operationen." msgid ":ref:`string-methods`" -msgstr "" +msgstr ":ref:`string-methods`" msgid "" "Strings support a large number of methods for basic transformations and " "searching." msgstr "" +"Strings unterstützen eine Vielzahl von Methoden für grundlegende Umwandlungen " +"und Suchen." msgid ":ref:`f-strings`" -msgstr "" +msgstr ":ref:`f-strings`" msgid "String literals that have embedded expressions." -msgstr "" +msgstr "String-Literale, die eingebettete Ausdrücke enthalten." msgid ":ref:`formatstrings`" -msgstr "" +msgstr ":ref:`formatstrings`" msgid "Information about string formatting with :meth:`str.format`." -msgstr "" +msgstr "Informationen zur Formatierung von Strings mit :meth:`str.format`." msgid ":ref:`old-string-formatting`" -msgstr "" +msgstr ":ref:`old-string-formatting`" msgid "" "The old formatting operations invoked when strings are the left operand of " "the ``%`` operator are described in more detail here." msgstr "" +"Die alten Formatierungsoperationen, die aufgerufen werden, wenn Strings der " +"linke Operand des ``%``-Operators sind, werden hier ausführlicher beschrieben." msgid "Lists" -msgstr "" +msgstr "Listen" msgid "" "Python knows a number of *compound* data types, used to group together other " @@ -543,17 +823,27 @@ msgid "" "comma-separated values (items) between square brackets. Lists might contain " "items of different types, but usually the items all have the same type. ::" msgstr "" +"Python kennt eine Reihe von *zusammengesetzten* Datentypen, die verwendet werden, " +"um andere Werte zusammenzufassen. Der vielseitigste ist die *Liste*, die als " +"durch Kommas getrennte Liste von Werten (Elementen) in eckigen Klammern geschrieben " +"werden kann. Listen können Elemente verschiedener Typen enthalten, meist haben " +"die Elemente jedoch denselben Typ. ::" msgid "" ">>> squares = [1, 4, 9, 16, 25]\n" ">>> squares\n" "[1, 4, 9, 16, 25]" msgstr "" +">>> squares = [1, 4, 9, 16, 25]\n" +">>> squares\n" +"[1, 4, 9, 16, 25]" msgid "" "Like strings (and all other built-in :term:`sequence` types), lists can be " "indexed and sliced::" msgstr "" +"Wie Strings (und alle anderen integrierten :term:`Sequenztypen `) " +"können Listen indiziert und zerteilt werden::" msgid "" ">>> squares[0] # indexing returns the item\n" @@ -563,19 +853,29 @@ msgid "" ">>> squares[-3:] # slicing returns a new list\n" "[9, 16, 25]" msgstr "" +">>> squares[0] # Indizierung gibt das Element zurück\n" +"1\n" +">>> squares[-1]\n" +"25\n" +">>> squares[-3:] # Slicing gibt eine neue Liste zurück\n" +"[9, 16, 25]" msgid "Lists also support operations like concatenation::" -msgstr "" +msgstr "Listen unterstützen auch Operationen wie die Verkettung::" msgid "" ">>> squares + [36, 49, 64, 81, 100]\n" "[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]" msgstr "" +">>> squares + [36, 49, 64, 81, 100]\n" +"[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]" msgid "" "Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " "type, i.e. it is possible to change their content::" msgstr "" +"Im Gegensatz zu Strings, die :term:`unveränderlich ` sind, sind Listen " +"ein :term:`veränderlicher ` Typ, d. h. ihr Inhalt kann geändert werden::" msgid "" ">>> cubes = [1, 8, 27, 65, 125] # something's wrong here\n" @@ -585,11 +885,20 @@ msgid "" ">>> cubes\n" "[1, 8, 27, 64, 125]" msgstr "" +">>> cubes = [1, 8, 27, 65, 125] # Hier stimmt etwas nicht\n" +">>> 4 ** 3 # Die dritte Potenz von 4 ist 64, nicht 65!\n" +"64\n" +">>> cubes[3] = 64 # Ersetze den falschen Wert\n" +">>> cubes\n" +"[1, 8, 27, 64, 125]" msgid "" "You can also add new items at the end of the list, by using the :meth:`list." "append` *method* (we will see more about methods later)::" msgstr "" +"Du kannst auch neue Elemente am Ende der Liste hinzufügen, indem du die " +":meth:`list.append` *Methode* verwenden (mehr zu Methoden werden wir später " +"sehen)::" msgid "" ">>> cubes.append(216) # add the cube of 6\n" @@ -597,6 +906,10 @@ msgid "" ">>> cubes\n" "[1, 8, 27, 64, 125, 216, 343]" msgstr "" +">>> cubes.append(216) # Füge die dritte Potenz von 6 hinzu\n" +">>> cubes.append(7 ** 3) # und die dritte Potenz von 7\n" +">>> cubes\n" +"[1, 8, 27, 64, 125, 216, 343]" msgid "" "Simple assignment in Python never copies data. When you assign a list to a " @@ -604,6 +917,10 @@ msgid "" "to the list through one variable will be seen through all other variables " "that refer to it.::" msgstr "" +"Eine einfache Zuweisung kopiert in Python niemals Daten. Wenn du eine Liste " +"einer Variablen zuweisen, bezieht sich die Variable auf die *bestehende " +"Liste*. Alle Änderungen, die du an der Liste über eine Variable vornimmst, " +"sind über alle anderen Variablen sichtbar, die sich auf sie beziehen.::" msgid "" ">>> rgb = [\"Red\", \"Green\", \"Blue\"]\n" @@ -614,12 +931,22 @@ msgid "" ">>> rgb\n" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" msgstr "" +">>> rgb = [\"Red\", \"Green\", \"Blue\"]\n" +">>> rgba = rgb\n" +">>> id(rgb) == id(rgba) # Sie verweisen auf dasselbe Objekt\n" +"True\n" +">>> rgba.append(\"Alph\")\n" +">>> rgb\n" +"[\"Red\", \"Green\", \"Blue\", \"Alph\"]" msgid "" "All slice operations return a new list containing the requested elements. " "This means that the following slice returns a :ref:`shallow copy " "` of the list::" msgstr "" +"Alle Slicing-Operationen geben eine neue Liste zurück, die die angeforderten " +"Elemente enthält. Das bedeutet, dass das folgende Slicing eine :ref:`flache " +"Kopie ` der Liste zurückgibt::" msgid "" ">>> correct_rgba = rgba[:]\n" @@ -629,11 +956,19 @@ msgid "" ">>> rgba\n" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" msgstr "" +">>> correct_rgba = rgba[:]\n" +">>> correct_rgba[-1] = \"Alpha\"\n" +">>> correct_rgba\n" +"[\"Red\", \"Green\", \"Blue\", \"Alpha\"]\n" +">>> rgba\n" +"[\"Red\", \"Green\", \"Blue\", \"Alph\"]" msgid "" "Assignment to slices is also possible, and this can even change the size of " "the list or clear it entirely::" msgstr "" +"Zuweisungen an Slices sind ebenfalls möglich, und dies kann sogar die Größe " +"der Liste verändern oder sie vollständig leeren::" msgid "" ">>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" @@ -652,20 +987,40 @@ msgid "" ">>> letters\n" "[]" msgstr "" +">>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" +">>> letters\n" +"['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" +">>> # Ersetze einige Werte\n" +">>> letters[2:5] = ['C', 'D', 'E']\n" +">>> letters\n" +"['a', 'b', 'C', 'D', 'E', 'f', 'g']\n" +">>> # Entferne sie jetzt\n" +">>> letters[2:5] = []\n" +">>> letters\n" +"['a', 'b', 'f', 'g']\n" +">>> # Leere die Liste, indem alle Elemente durch eine leere Liste ersetzt werden\n" +">>> letters[:] = []\n" +">>> letters\n" +"[]" msgid "The built-in function :func:`len` also applies to lists::" -msgstr "" +msgstr "Die integrierte Funktion :func:`len` lässt sich auch auf Listen anwenden::" msgid "" ">>> letters = ['a', 'b', 'c', 'd']\n" ">>> len(letters)\n" "4" msgstr "" +">>> letters = ['a', 'b', 'c', 'd']\n" +">>> len(letters)\n" +"4" msgid "" "It is possible to nest lists (create lists containing other lists), for " "example::" msgstr "" +"Es ist möglich, Listen zu verschachteln (Listen zu erstellen, die andere " +"Listen enthalten), zum Beispiel::" msgid "" ">>> a = ['a', 'b', 'c']\n" @@ -678,9 +1033,18 @@ msgid "" ">>> x[0][1]\n" "'b'" msgstr "" +">>> a = ['a', 'b', 'c']\n" +">>> n = [1, 2, 3]\n" +">>> x = [a, n]\n" +">>> x\n" +"[['a', 'b', 'c'], [1, 2, 3]]\n" +">>> x[0]\n" +"['a', 'b', 'c']\n" +">>> x[0][1]\n" +"'b'" msgid "First Steps Towards Programming" -msgstr "" +msgstr "Erste Schritte in Richtung Programmierung" msgid "" "Of course, we can use Python for more complicated tasks than adding two and " @@ -688,6 +1052,10 @@ msgid "" "`Fibonacci series `_ as " "follows::" msgstr "" +"Natürlich können wir Python für kompliziertere Aufgaben nutzen als zwei und " +"zwei zusammenzuzählen. Zum Beispiel können wir eine anfängliche Teilfolge der " +"`Fibonacci-Folge `_ wie " +"folgt schreiben::" msgid "" ">>> # Fibonacci series:\n" @@ -705,9 +1073,23 @@ msgid "" "5\n" "8" msgstr "" +">>> # Fibonacci-Folge:\n" +">>> # Die Summe zweier Elemente ergibt das nächste\n" +">>> a, b = 0, 1\n" +">>> while a < 10:\n" +"... print(a)\n" +"... a, b = b, a+b\n" +"...\n" +"0\n" +"1\n" +"1\n" +"2\n" +"3\n" +"5\n" +"8" msgid "This example introduces several new features." -msgstr "" +msgstr "Dieses Beispiel führt einige neue Funktionen ein." msgid "" "The first line contains a *multiple assignment*: the variables ``a`` and " @@ -716,6 +1098,11 @@ msgid "" "all evaluated first before any of the assignments take place. The right-" "hand side expressions are evaluated from the left to the right." msgstr "" +"Die erste Zeile enthält eine *Mehrfachzuweisung*: Die Variablen ``a`` und " +"``b`` erhalten gleichzeitig die neuen Werte 0 und 1. In der letzten Zeile " +"wird dies erneut verwendet, was zeigt, dass die Ausdrücke auf der rechten " +"Seite alle zuerst ausgewertet werden, bevor irgendeine Zuweisung stattfindet. " +"Die Ausdrücke auf der rechten Seite werden von links nach rechts ausgewertet." msgid "" "The :keyword:`while` loop executes as long as the condition (here: ``a < " @@ -727,6 +1114,14 @@ msgid "" "than), ``>`` (greater than), ``==`` (equal to), ``<=`` (less than or equal " "to), ``>=`` (greater than or equal to) and ``!=`` (not equal to)." msgstr "" +"Die :keyword:`while`-Schleife wird ausgeführt, solange die Bedingung (hier: ``a < " +"10``) wahr bleibt. In Python ist, wie in C, jeder Ganzzahlwert ungleich Null " +"wahr; Null ist falsch. Die Bedingung kann auch ein String- oder Listenwert " +"sein, tatsächlich jede Sequenz, alles mit einer Länge ungleich Null ist wahr, " +"leere Sequenzen sind falsch. Der im Beispiel verwendete Test ist ein einfacher " +"Vergleich. Die Standard-Vergleichsoperatoren werden genauso geschrieben wie in " +"C: ``<`` (kleiner als), ``>`` (größer als), ``==`` (gleich), ``<=`` (kleiner " +"oder gleich), ``>=`` (größer oder gleich) und ``!=`` (ungleich)." msgid "" "The *body* of the loop is *indented*: indentation is Python's way of " @@ -738,6 +1133,16 @@ msgid "" "(since the parser cannot guess when you have typed the last line). Note " "that each line within a basic block must be indented by the same amount." msgstr "" +"Der *Rumpf* der Schleife ist *eingerückt*: Einrückung ist Pythons Methode, um " +"Anweisungen zu gruppieren. An der interaktiven Eingabeaufforderung musst du " +"für jede eingerückte Zeile einen Tabulator oder Leerzeichen eingeben. In der " +"Praxis wirst du kompliziertere Eingaben für Python mit einem Texteditor " +"vorbereiten; alle guten Texteditoren verfügen über eine automatische " +"Einrückung. Wenn eine zusammengesetzte Anweisung interaktiv eingegeben wird, " +"muss ihr eine Leerzeile folgen, um den Abschluss anzuzeigen (da der Parser " +"nicht erraten kann, wann du die letzte Zeile eingegeben hast). Beachte, " +"dass jede Zeile innerhalb eines Basisblocks um denselben Abstand eingerückt " +"sein muss." msgid "" "The :func:`print` function writes the value of the argument(s) it is given. " @@ -747,17 +1152,30 @@ msgid "" "without quotes, and a space is inserted between items, so you can format " "things nicely, like this::" msgstr "" +"Die Funktion :func:`print` gibt den Wert des oder der übergebenen Argumente " +"aus. Sie unterscheidet sich vom bloßen Schreiben des Ausdrucks (wie wir es " +"vorhin in den Rechnerbeispielen getan haben) durch die Art und Weise, wie " +"sie mit mehreren Argumenten, Gleitkommazahlen und Strings umgeht. Strings " +"werden ohne Anführungszeichen ausgegeben, und zwischen den Elementen wird " +"ein Leerzeichen eingefügt, sodass du Dinge schön formatieren kannst, wie " +"hier::" msgid "" ">>> i = 256*256\n" ">>> print('The value of i is', i)\n" "The value of i is 65536" msgstr "" +">>> i = 256*256\n" +">>> print('Der Wert von i ist', i)\n" +"Der Wert von i ist 65536" msgid "" "The keyword argument *end* can be used to avoid the newline after the " "output, or end the output with a different string::" msgstr "" +"Das Schlüsselwort-Argument *end* kann verwendet werden, um den Zeilenumbruch " +"nach der Ausgabe zu verhindern oder die Ausgabe mit einer anderen Zeichenkette " +"zu beenden::" msgid "" ">>> a, b = 0, 1\n" @@ -767,6 +1185,12 @@ msgid "" "...\n" "0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987," msgstr "" +">>> a, b = 0, 1\n" +">>> while a < 1000:\n" +"... print(a, end=',')\n" +"... a, b = b, a+b\n" +"...\n" +"0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987," msgid "Footnotes" msgstr "Fußnoten" @@ -776,6 +1200,9 @@ msgid "" "as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you " "can use ``(-3)**2``." msgstr "" +"Da ``**`` eine höhere Rangfolge als ``-`` hat, wird ``-3**2`` als " +"``-(3**2)`` interpretiert und führt somit zu ``-9``. Um dies zu vermeiden " +"und ``9`` zu erhalten, kannst du ``(-3)**2`` verwenden." msgid "" "Unlike other languages, special characters such as ``\\n`` have the same " @@ -783,9 +1210,14 @@ msgid "" "only difference between the two is that within single quotes you don't need " "to escape ``\"`` (but you have to escape ``\\'``) and vice versa." msgstr "" +"Anders als in anderen Sprachen haben Sonderzeichen wie ``\\n`` sowohl bei " +"einfachen (``'...'``) als auch bei doppelten (``\"...\"``) Anführungszeichen " +"dieselbe Bedeutung. Der einzige Unterschied besteht darin, dass du innerhalb " +"einfacher Anführungszeichen ``\"`` nicht maskieren musst (dafür aber ``\\'``) " +"und umgekehrt." msgid "# (hash)" -msgstr "" +msgstr "Hash" msgid "comment" -msgstr "" +msgstr "Kommentar" diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index d17eb62..50375f2 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -1,19 +1,18 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. +# FIRST AUTHOR Swen Bachmann <142266608+sba72@users.noreply.github.com>, 2026. # # Translators: # python-doc bot, 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-25 14:12+0000\n" -"PO-Revision-Date: 2025-09-16 00:02+0000\n" -"Last-Translator: python-doc bot, 2025\n" +"PO-Revision-Date: 2026-08-6 00:02+0000\n" +"Last-Translator: Swen Bachmann <142266608+sba72@users.noreply.github.com>\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,21 +21,27 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "What Now?" -msgstr "" +msgstr "Was nun?" msgid "" "Reading this tutorial has probably reinforced your interest in using Python " -"--- you should be eager to apply Python to solving your real-world problems. " -"Where should you go to learn more?" +"--- you should be eager to apply Python to solving your real-world problems." +" Where should you go to learn more?" msgstr "" +"Das Lesen dieses Tutorials hat dein Interesse an der Verwendung von Python " +"vermutlich verstärkt – du brennst sicher darauf, Python zur Lösung deiner " +"praktischen Probleme einzusetzen. Wo solltest du ansetzen, um mehr zu lernen?" +"\" msgid "" "This tutorial is part of Python's documentation set. Some other documents " "in the set are:" msgstr "" +"Dieses Tutorial ist Teil der Python-Dokumentation. Einige weitere Dokumente " +"der Sammlung sind:" msgid ":ref:`library-index`:" -msgstr "" +msgstr ":ref:`library-index`:" msgid "" "You should browse through this manual, which gives complete (though terse) " @@ -47,28 +52,44 @@ msgid "" "other tasks. Skimming through the Library Reference will give you an idea of " "what's available." msgstr "" +"Du solltest dieses Handbuch durchblättern, das vollständiges (wenn auch " +"knappes) Referenzmaterial zu Typen, Funktionen und den Modulen der " +"Standardbibliothek bietet. Die Standard-Python-Distribution enthält *sehr " +"viel* zusätzlichen Code. Es gibt Module zum Lesen von Unix-Mailboxen, zum " +"Abrufen von Dokumenten über HTTP, zum Generieren von Zufallszahlen, zum " +"Parsen von Befehlszeilenoptionen, zum Komprimieren von Daten und für viele " +"andere Aufgaben. Das Überfliegen der Bibliotheksreferenz gibt dir eine " +"Vorstellung davon, was verfügbar ist." msgid "" ":ref:`installing-index` explains how to install additional modules written " "by other Python users." msgstr "" +":ref:`installing-index` erklärt, wie zusätzliche Module installiert werden, " +"die von anderen Python-Nutzern geschrieben wurden." msgid "" ":ref:`reference-index`: A detailed explanation of Python's syntax and " "semantics. It's heavy reading, but is useful as a complete guide to the " "language itself." msgstr "" +":ref:`reference-index`: Eine detaillierte Erklärung der Syntax und Semantik " +"von Python. Es ist schwere Kost, aber als vollständiger Leitfaden zur " +"Sprache selbst sehr nützlich." msgid "More Python resources:" -msgstr "" +msgstr "Weitere Python-Ressourcen:" msgid "" -"https://www.python.org: The major Python web site. It contains code, " +"https://www.python.org: The major Python website. It contains code, " "documentation, and pointers to Python-related pages around the web." msgstr "" +"https://www.python.org: Die Haupt-Website von Python. Sie enthält Code, " +"Dokumentation und Verweise auf Seiten rund um Python im Web." msgid "https://docs.python.org: Fast access to Python's documentation." msgstr "" +"https://docs.python.org: Schneller Zugriff auf die Python-Dokumentation." msgid "" "https://pypi.org: The Python Package Index, previously also nicknamed the " @@ -76,47 +97,78 @@ msgid "" "available for download. Once you begin releasing code, you can register it " "here so that others can find it." msgstr "" +"https://pypi.org: Der Python Package Index, früher auch unter dem Spitznamen " +"Cheese Shop [#]_ bekannt, ist ein Index von Benutzern erstellten Python-" +"Modulen, die zum Download bereitstehen. Sobald du eigenen Code " +"veröffentlichst, kannst du ihn hier registrieren, damit andere ihn finden " +"können." msgid "" -"https://code.activestate.com/recipes/langs/python/: The Python Cookbook is a " -"sizable collection of code examples, larger modules, and useful scripts. " +"https://code.activestate.com/recipes/langs/python/: The Python Cookbook is a" +" sizable collection of code examples, larger modules, and useful scripts. " "Particularly notable contributions are collected in a book also titled " "Python Cookbook (O'Reilly & Associates, ISBN 0-596-00797-3.)" msgstr "" +"https://code.activestate.com/recipes/langs/python/: Das Python Cookbook ist " +"eine umfangreiche Sammlung von Codebeispielen, größeren Modulen und " +"nützlichen Skripten. Besonders bemerkenswerte Beiträge sind in einem Buch " +"zusammengefasst, das ebenfalls den Titel Python Cookbook trägt (O'Reilly & " +"Associates, ISBN 0-596-00797-3)." msgid "" -"https://pyvideo.org collects links to Python-related videos from conferences " -"and user-group meetings." +"https://pyvideo.org collects links to Python-related videos from conferences" +" and user-group meetings." msgstr "" +"https://pyvideo.org sammelt Links zu Python-bezogenen Videos von Konferenzen " +"und Treffen von Anwendergruppen." msgid "" "https://scipy.org: The Scientific Python project includes modules for fast " -"array computations and manipulations plus a host of packages for such things " -"as linear algebra, Fourier transforms, non-linear solvers, random number " +"array computations and manipulations plus a host of packages for such things" +" as linear algebra, Fourier transforms, non-linear solvers, random number " "distributions, statistical analysis and the like." msgstr "" +"https://scipy.org: Das Scientific-Python-Projekt umfasst Module für schnelle " +"Array-Berechnungen und -Manipulationen sowie eine Vielzahl von Paketen für " +"Bereiche wie lineare Algebra, Fourier-Transformationen, nichtlineare Löser, " +"Zufallszahlenverteilungen, statistische Analysen und Ähnliches." msgid "" "For Python-related questions and problem reports, you can post to the " -"newsgroup :newsgroup:`comp.lang.python`, or send them to the mailing list at " -"python-list@python.org. The newsgroup and mailing list are gatewayed, so " +"newsgroup :newsgroup:`comp.lang.python`, or send them to the mailing list at" +" python-list@python.org. The newsgroup and mailing list are gatewayed, so " "messages posted to one will automatically be forwarded to the other. There " -"are hundreds of postings a day, asking (and answering) questions, suggesting " -"new features, and announcing new modules. Mailing list archives are " +"are hundreds of postings a day, asking (and answering) questions, suggesting" +" new features, and announcing new modules. Mailing list archives are " "available at https://mail.python.org/pipermail/." msgstr "" +"Für Fragen und Fehlerberichte zu Python kannst du in die " +"Newsgroup :newsgroup:`comp.lang.python` schreiben oder sie an die " +"Mailingliste python-list@python.org senden. Newsgroup und Mailingliste sind " +"miteinander verbunden, sodass an die eine Stelle gesendete Nachrichten " +"automatisch an die andere weitergeleitet werden. Jeden Tag gibt es Hunderte " +"von Beiträgen, in denen Fragen gestellt (und beantwortet), neue Funktionen " +"vorgeschlagen und neue Module angekündigt werden. Archive der Mailingliste " +"sind unter https://mail.python.org/pipermail/ verfügbar." msgid "" "Before posting, be sure to check the list of :ref:`Frequently Asked " "Questions ` (also called the FAQ). The FAQ answers many of the " -"questions that come up again and again, and may already contain the solution " -"for your problem." +"questions that come up again and again, and may already contain the solution" +" for your problem." msgstr "" +"Bevor du einen Beitrag verfasst, schaue unbedingt in die Liste der :ref:`Häufig " +"gestellten Fragen ` (auch FAQ genannt). Die FAQ beantwortet viele " +"der Fragen, die immer wieder auftauchen, und enthält möglicherweise bereits " +"die Lösung für dein Problem." msgid "Footnotes" msgstr "Fußnoten" msgid "" -"\"Cheese Shop\" is a Monty Python's sketch: a customer enters a cheese shop, " +"\"Cheese Shop\" is a Monty Python sketch: a customer enters a cheese shop, " "but whatever cheese he asks for, the clerk says it's missing." msgstr "" +"\"Cheese Shop\" ist ein Sketch von Monty Python: Ein Kunde betritt einen " +"Käseladen, doch egal, nach welchem Käse er fragt, der Verkäufer sagt immer, " +"dieser sei nicht vorrätig."