Seite 1 von 2

Python listen

Verfasst: Freitag 3. April 2015, 11:33
von Mr.White
Hallo,

gibt es in Python eine Möglichkeit, dass man innerhalb einer Schleife für mehrere Eingaben eigene listen erstellt
und diese dann in einer Datei ihre eigene Zeile bekommt ? Habe dazu jetzt nicht wirklich viel in meinem Buch zu gefunden..


Währe nett wenn ihr mir helfen könntet

Re: Python listen

Verfasst: Freitag 3. April 2015, 11:59
von Sirius3
@Mr.White: ja die gibt es. Am besten Du erstellst für die Listen eine passende Struktur. Beim Speichern mußt Du halt selbst dafür sorgen, dass die Listen so geschrieben werden, wie Du Dir das vorstellst.
Wenn die Eingaben jedoch zusammengehören, solltest Du nicht verschiedene Listen verwenden, sondern nur eine Liste, die die einzelnen Eingaben in einer passenden Struktur als ein Element der Liste speichern.

Re: Python listen

Verfasst: Freitag 3. April 2015, 12:07
von Mr.White
Also ich hab das erst mal so gelöst:
Namen werden noch geändert, keine sorge :D

Code: Alles auswählen


import sys

class eingabeAufgabe:

        def aufgabe(self):
                self.exercise_enter = str(input())
                self.Aufgabe = ["\n", "Aufgabe - " + self.exercise_enter]
                d.writelines(self.Aufgabe)
            

        
funktion = eingabeAufgabe()
d = open("to-do-Liste.txt", "w")

for i in range(1,10):
    print("Deine Eingabe:")
    funktion.aufgabe()
d.close()
    






Aber irgendwie hat sich die Einrückung verstellt beim Tab drücken...

Re: Python listen

Verfasst: Freitag 3. April 2015, 12:40
von Sirius3
@Mr.White: was hat der Quelltext jetzt mit Deinem ersten Post zu tun?

Deine Klasse hat keinen Sinn und wird auch niemals einen haben. Und was ist der Vorteil, eine Methode zu haben gegenüber den drei Zeilen direkt in die Schleife zu schreiben?
Funktionen brauchen eine definierte Funktion, meist dadurch ausgedrückt, das der Name eine Tätigkeit beschreibt, z.B. writelines hat die Funktion Zeilen zu schreiben. Die Funktion muß das, was sie macht außerdem kapseln. Der Aufrufer muß nicht wissen, wie die Funktion irgendetwas macht und die Funktion darf nichts über das übrige Programm wissen müssen. Bei Dir muß "aufgabe" wissen, dass es ein d gibt.

Damit ist

Code: Alles auswählen

def main():
    with open("to-do-Liste.txt", "w") as todo:
        for i in range(1,10):
            aufgabe = input("Deine Eingabe:")
            todo.write("Aufgabe - {}\n".format(aufgabe))

if __name__ == '__main__':
    main()
nicht nur wesentlich kürzer und übersichtlicher, der Leser weiß auch gleich was passiert, und muß sich nicht über das ganze Programm hinweg merken, was denn die einzelnen Funktionen so alles an Nebeneffekten haben.

Re: Python listen

Verfasst: Freitag 3. April 2015, 12:48
von pixewakb
Nach welchem Lehrbuch lernst du bzw. aus welcher Ecke (Programmiersprache) kommst du, ich hatte gerade geringe Schwierigkeiten deinen Quellcode zu lesen und würde mal meinen, dass man das so nicht unbedingt formuliert hätte...

Re: Python listen

Verfasst: Freitag 3. April 2015, 12:49
von Mr.White
Versteh ich nicht. Wo kann ich das nachlesen.
So wie du das löst kann ich das im Buch nicht nachlesen. -.-

Ich lerne aus dem Buch: "Einstieg in Python" von Thomas Theis.


Ich weiß ja nicht wo mein Problem bei dem ganzen Zeug ist, aber irgendwie scheints ja nur da zu sein....



Also so langsam verzweifle ich daran.

Re: Python listen

Verfasst: Freitag 3. April 2015, 13:00
von BlackJack
@Mr.White: Was meinst Du mit „im Buch nachlesen”? Das wird *so* in keinem Buch stehen, oder zumindest ist das sehr unwahrscheinlich. Programmieren bedeutet das man selber etwas entwickelt und nicht das man Programmstücke aus irgendwelchen Büchern abschreibt.

Mal abgesehen vom ``with`` was in einigen Büchern noch nicht vorkommt weil es ”zu neu” ist, sollten die Bestandteile vom Programm von Sirius3 eigentlich in einem guten Buch oder Anfängertutorial vorkommen. Das besteht doch auch fast aus nichts. Eine Funktionsdefinition, eine ``for``-Schleife, eine Benutzereingabe, Zeichenkettenformatierung, und schreiben in eine Datei. Alles Grundlagen die in einem Buch behandelt werden sollten. Und dazu gibt es dann noch die Python-Dokumentation wo man Details nachlesen kann. Das kann kein Buch ersetzen. Dann weiss man was man erreichen will, sucht sich die passenden Daten- und Kontrollstrukturen und Funktionen raus und setzt die so zusammen das sie das gestellte Problem lösen. Das ist das was Programmieren ausmacht, sich Vorhandenes zu nehmen und daraus Neues zusammensetzen was die Aufgabe löst die man umsetzen möchte.

Re: Python listen

Verfasst: Freitag 3. April 2015, 13:02
von Mr.White
Aber könnt ihr mir mal genauer erklären WAS ich jetzt falsch gemacht habe ?...
Sorry aber ich verstehe nicht alles auf anhieb.. :(


Ich habe erst mit Python angefangen und es ist meine erste Sprache...
Alles was ich weiß ist - Programmieren, Übersichtlich und so das es funktioniert...
Im Buch ist das jetzt auch nicht wirklich anders gelöst(So kommt es mir vor)

Re: Python listen

Verfasst: Freitag 3. April 2015, 13:07
von pixewakb
Inzwischen zweifle ich etwas an der Qualität der Bücher aus dem Galileo-Verlag bzw. aus dem (jetzt) Rheinwerk-Verlag. Ich persönlich habe zuhause den Band von Michael Weigend zu Python 3 im Regal stehen und komme damit gut zurecht, will heißen, schau dir mal den Band an. Langatmig (ginge auch kürzer), aber gut. Nach einigen Kapiteln (ca. 10-12) kannst du den Rest nur bei Bedarf lesen.

Ansonsten schau dir auch das Tutorial in deutscher Übersetzung an.

Re: Python listen

Verfasst: Freitag 3. April 2015, 13:08
von /me
Mr.White hat geschrieben:Aber könnt ihr mir mal genauer erklären WAS ich jetzt falsch gemacht habe ?
Du hast ohne Sinn und Verstand eine Klasse verwendet. Diese Klasse hat so wie du sie aufgebaut hast überhaupt keinen Sinn im Kontext deiner Aufgabenbeschreibung.

Re: Python listen

Verfasst: Freitag 3. April 2015, 13:11
von Mr.White
Danke..

Re: Python listen

Verfasst: Freitag 3. April 2015, 13:14
von Sirius3
@Mr.White: so wie Du es jetzt darstellst, hast Du ein wirklich einfache Problem: Lese Zeilen von der Tastatur und schreibe sie in eine Datei. Deine Lösung hat das gemacht, hatte aber gravierende handwerkliche Fehler. Die habe ich versucht anzusprechen und eine elegantere Lösung des selben Problems gezeigt. Wenn Du etwas anderes willst, oder irgendwas nicht verstehst, mußt Du konkretere Fragen stellen, ansonsten können wir Dir auch nicht wirklich helfen.

Re: Python listen

Verfasst: Freitag 3. April 2015, 13:38
von Mr.White
Ich habe das so verstanden was du geschrieben hast. Ich weiß nur nicht wieso ich grade so an die Lösung kommen will...
Und ich weiß auch nicht wirklich warum ich damit so große Probleme habe.. Und das gefällt mir selber nicht und führt dazu das ich
für mich selber keine Motivation mehr finde..

Ich meine: Ich bin motiviert genug diese Sprache zu lernen, aber irgendwann habe ich keine Lust mehr irgendwelche Projekte
zu vollenden, weil ich genau weiß - "Ich mache immer die selben Fehler und weiß auch nicht Warum, und ich versuche auch nicht
diese zu beheben und zu verstehen"...

Ich arbeite derzeit mit jemand anderes an einem Projekt, welches über mehrere Tage vielleicht auch Wochen
gehen soll, und noch bin ich total motiviert das zu Schaffen.

Weil ich die Sprache nicht lernen möchte, sondern sie lernen WILL.
Und ich sitze teilweise 10 Stunden am Stück vor meinem Buch.


Und ich wüsste jetzt auch nicht wirklich wie ich "eleganter" programmiere. Mir währe die Lösung jetzt nur so eingefallen. Ich schaue
mir auch die Docs an aber irgendwie will es nicht hängen bleiben...

Re: Python listen

Verfasst: Freitag 3. April 2015, 13:53
von BlackJack
@Mr.White: Wie bist Du denn auf Deine Lösung gekommen? Was hast Du Dir dabei gedacht das gerade *so* zu machen? Was hast Du Dir bei der Klasse gedacht? Warum überhaupt eine Klasse? Das ist doch einfach nur mehr Schreibarbeit und Komplexität als wenn man den Inhalt der Methode direkt an die Aufrufstelle geschrieben hätte.

Re: Python listen

Verfasst: Freitag 3. April 2015, 13:54
von Mr.White
Ich bin auf die Lösung gekommen weil
ich 10x eine Eingabe haben wollte.

Da dachte ich mir "Schreibste eine Methode und rufst sie in der for schleife 10x auf und
Speicherst das dann so"

Re: Python listen

Verfasst: Freitag 3. April 2015, 14:02
von BlackJack
@Mr.White: Kann ich immer noch nicht nachvollziehen. Warum eine Methode und damit auch eine Klasse? Was löst diese Methode was man mit einer Funktion nicht auch hätte machen können? Und bei Funktionen ist dann das was man sich merken sollte (und was für Methoden dann auch weiterhing gilt): Die sollten nichts benutzen was nicht entweder eine Konstante ist, oder als Argument übergeben wurde.

Re: Python listen

Verfasst: Freitag 3. April 2015, 14:24
von Mr.White
ok.

Re: Python listen

Verfasst: Freitag 3. April 2015, 15:00
von Sirius3
@Mr.White: Programmieren kann man nicht aus Büchern lernen, sie sind maximal eine Hilfe bei sehr technischen Problemen. Der größte Teil ist üben, fragen, nachschauen, wie andere Leute Probleme gelöst haben und selbst nachvollziehen.

Re: Python listen

Verfasst: Freitag 3. April 2015, 15:10
von Mr.White
Ja aber ich weiß nicht warum das bei deinem Beispiel so kurz klappt
und ich so viel schreibe...


Ich verstehe auch nicht wo das __name__ und '__main__' her kommt...Der Rest ist ok, den verstehe ich vom Beispiel.
Bin einfach irgendwie zu blöd für Logik und Eleganz. Ich habe so kompliziert angefangen
und es ist jetzt auch nicht mehr so leicht für mich damit aufzuhören.

Re: Python listen

Verfasst: Freitag 3. April 2015, 15:29
von Sirius3
In wenn man etwas nicht versteht, kann man danach suchen und findet dann diesen Abschnitt in der Dokumentation.