Python, wo ist hier der Fehler?

Wir erhalten eine Liste mit Elementen, die in eine Datei geschrieben werden sollen. Dazu soll jedes Element der Liste jeweils mit der zusätzlichen Information, an welchem Index wir uns gerade befinden, versehen werden. (Siehe Beispielausgabe in der Tabelle.)

In dieser Aufgabe brauchen wir keinen zusätzlichen print()-Aufruf. Es sollen nur Inhalte in die Datei geschrieben werden; es soll also keine normale Ausgabe der Inhalte geben.

Tipp: Um sowohl Strings als auch Zahlen in die jeweils aktuelle Zeile zu schreiben, können Zahlen mit str() explizit in einen String umgewandelt werden. Dann können alle Teile der Ausgabe mit einem + aneinandergefügt werden.

Zum Beispiel:

filename = "tiere.txt"
elemente = ["Pinguin", "Nashorn", "Chamäleon", "Pinguin"]
Eintrag 1: Pinguin
Eintrag 2: Nashorn
Eintrag 3: Chamäleon
Eintrag 4: Pinguin

filename = "snacks.txt"
elemente = ["Schokolade", "Chips", "Bonbons", "Kuchen", "Käsebrot"]
Eintrag 1: Schokolade
Eintrag 2: Chips
Eintrag 3: Bonbons
Eintrag 4: Kuchen
Eintrag 5: Käsebrot

filename = "farben.txt"
elemente = ["blau", "gelb", "rot", "lila"]
Eintrag 1: blau 
Eintrag 2: gelb
Eintrag 3: rot
Eintrag 4: lila


Und meine Lösung wäre:

def write_to_file(filename, elemente):
    with open(filename, "w") as file:
        for index, element in enumerate(elemente, start=1):
            entry = "Eintrag " + str(index) + ": " + element + "\n"
            file.write(entry)

filename_tiere = "tiere.txt"
elemente_tiere = ["Pinguin", "Nashorn", "Chamäleon", "Pinguin"]
write_to_file(filename_tiere, elemente_tiere)

filename_snacks = "snacks.txt"
elemente_snacks = ["Schokolade", "Chips", "Bonbons", "Kuchen", "Käsebrot"]
write_to_file(filename_snacks, elemente_snacks)

filename_farben = "farben.txt"
elemente_farben = ["blau", "gelb", "rot", "lila"]
write_to_file(filename_farben, elemente_farben)


Computer, programmieren, Informatik, Python
Python Programmierungsaufgabe?

Was ist der hier der fehler

Ich suche print()-Aufrufe, die jeweils bestimmte Teile der Eingabesequenz ausgeben. Die print()-Aufrufe können untereinander geschrieben werden (Achtung, die Reihenfolgeist wichtig). Da Indexing und Slicing sowohl für Strings als auch für Listen möglich ist, kann der gleiche Pythoncode alle Tests abdecken.

Die Ausgaben sollen in der folgenden Weise umgesetzt werden:

1. Das letzte Element soll mithilfe von Indexing ausgewählt werden.

2. Die Sequenz soll mithilfe von Slicing so reduziert werden, dass das erste und letzte Element wegfallen und nur die Mitte übrig bleibt.

3. Die Sequenz soll mithilfe von Slicing so reduziert werden, dass nur die zweite Hälfte übrig bleibt. Bei Sequenzen mit gerader Anzahl von Elementen soll genau die zweite Hälfte übrig sein, bei Sequenzen mit ungerader Anzahl von Elementen soll das Element in der Mitte mit ausgegeben werden.

4. Die Sequenz soll mithilfe von Indexing mit negativen Zahlen so reduziert werden, dass nur die letzten vier Elemente übrig bleiben.

5. Die Sequenz soll abhängig von der Länge reduziert werden: Sequenzen mit fünf oder weniger Elementen sollen ohne weiteres ausgegeben werden, aus Sequenzen mit genau acht Elementen sollen zwei Elementen am Anfang und zwei Elementen am Ende wegfallen, bei allen anderen Sequenzen sollen die letzten vier Elementen ausgegeben werden.

beispiel

Test Resultat

eingabe = "ABCDE"

F

BCD

CDE

BCDE

ABCDE

eingabe = "FGHIJKLMN"

N

GHIJKLM

JKLMN

KLMN

KLMN

eingabe = [1, 2, 3, 4, 5, 6, 7, 8]

8

[2, 3, 4, 5, 6, 7]

[5, 6, 7, 8]

[5, 6, 7, 8]

[3, 4, 5, 6]

Bild zum Beitrag
Programmiersprache, Python
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.