(gelöst)Unerwünschte Zeichen aus einer Liste entfernen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
Schaf220
User
Beiträge: 113
Registriert: Montag 11. August 2008, 16:00
Wohnort: Bremen
Kontaktdaten:

BlackJack hat geschrieben:@Schaf220: Nun ja jetzt sehen wir, dass Du einfach nur eine Lösung kopiert hast und nicht selber entwickelt hast.

Die vorhandenen Kommentare kannst Du alle entfernen, die erzählen ja nur das nun wirklich Offensichtliche, was da schon als Quelltext daneben steht. Generell sollten Kommentare nicht erzählen *was* gemacht wird, das sollte schon aus dem Quelltext ersichtlich sein, sondern *warum* das im Quelltext so gemacht wird, wie es gemacht wird.

Den Quelltext auf Modulebene würde ich in einer `main()`-Funktion verschwinden lassen.

Die Kommandozeilen-API ist etwas ungewöhnlich und es gibt auch verschiedene Datentypen. `--quiet` sollte zum Beispiel eher ein `bool` sein. Da eigentlich immer die Namen für Ein- und Ausgabedatei benötigt wird, die also nicht *optional* sind, sollten das auch keine Optionen sondern Argumente sein. Bleibt eine Option, die angibt, ob ge- oder entpackt werden soll. Könnten auch zwei Optionen mit dem gleichen `dest` sein und das jeweils auf `True` oder `False` setzen. Auf jeden Fall sollten falsche Kombinationen auch mit einer Fehlermeldung quittiert werden.

`packer()` sollte `pack()` heissen. Funktionen und Methoden werden in der Regel mit Verben benannt, die beschreiben was sie tun. `Packer` (in dieser Schreibweise) ist eher ein Name für eine Klasse. `number` ist nur ein Name für den Wert 1 und ändert sich nie. `last_byte` wäre ein passenderer Name für `place` und `i` sollte man in Schleifen nur an ganze Zahlen binden. Alles andere ist sehr verwirrend für Leser.

Man kann Optionen mit einem Defaultwert vorbelegen, damit ist die entsprechende ``if``-Abfrage in `write_file()` überflüssig. Das Argument der Funktion heisst `final_list`, es wird aber *eine* Zeichenkette übergeben. Anstelle der ``for``-Schleife hätte man hier auch die `writelines()`-Methode verwenden können. Macht natürlich auch nur Sinn, wenn man auch wirklich eine Liste bekommt und keine Zeichenkette.

Die ``except``-Anweisungen mit `StandardError` und ohne konkrete Ausnahme sind schlecht. Du machst nirgends mit den Ausnahmen etwas sinnvolles. Ausgegeben werden sie auch, wenn man sie nicht abfängt.

Über Zeilen in einer Datei kann man ganz einfach mit einer ``for``-Schleife iterieren, die ``while``-Konstruktionen sind viel zu kompliziert.

Die Funktion `changer()` ist nirgends definiert.

`write_file()` ist mit jeweils nur 2 Leerzeichen pro Ebene eingerückt.
Also um das mal Klar zustellen Black Jack den Code hab ich selbst geschrieben und nicht alle funktionen hier reingestellt, wie zum Beispiel Changer und die Lösung die ihr mir gegeben habt werde ich auch verwenden ich dachte das darf ich oder etwa nicht? Ich werde den User oder besser gesagt die Quelle auf jeden Fall angeben der Rest des Codes ist von mir, also nicht irgentwo geklaut. Der Code ist auch noch lange nicht fertig mir fehlt ja noch der Entpacker den werde ich in der nächsten zeit noch coden =)
Gruß Schaf220
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Ich denke nicht das es hier um copyright oder sowas geht sondern eher darum das die Leute im Forum nicht Deine Hausaufgaben machen wollen.

Es geht einfach nur darum das man nicht einfach sagt ich hab etwas versucht und bekomm es nicht hin, sondern das man auch zeigt was man versucht hat....

Ist zumindest das was ich immer interpretiere, wenn ich sowas gefragt werd, was hin und wieder mal vorkommt :-)
Benutzeravatar
Schaf220
User
Beiträge: 113
Registriert: Montag 11. August 2008, 16:00
Wohnort: Bremen
Kontaktdaten:

Ach so is das gemeint, in diesem Fall möchte ich mich bei Black Jack entschuldigen, ich hab den Code von euch schon eingefügt gehabt als ich ihn ins Forum kopierte. Ich weiss ja nicht wie hier manche User es handhaben, aber ich hab nicht nur ne lösung verlangt, weil ich kein Bock auf meine Hausaufgaben habe. Ich hab es versucht und kam wirklich nicht weiter dann bekam ich den neuen Code und hab ihn natürlich ausprobiert.
Das nächste mal wenn ich Hilfe brauche dann gebe ich auch den bereits vorhandenen Code.

Gruß Schaf220
BlackJack

Ich denke es hat niemand etwas dagegen, wenn Du die Quelltextstückchen verwendest, es ging mir eher darum, dass es *Dir* nicht allzuviel bringt, wenn Du das tust ohne sie zu verstehen.

Copyright ist bei diesen kleinen Code-Häppchen sowieso nicht gegeben, da fehlt wohl die "Schöpfungshöhe".
Benutzeravatar
Schaf220
User
Beiträge: 113
Registriert: Montag 11. August 2008, 16:00
Wohnort: Bremen
Kontaktdaten:

Ja das habe ich jetzt verstanden danke nochmal für deine Hilfe.
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

BlackJack hat geschrieben: "Schöpfungshöhe".

Was ein geiles Wort, das muss ich mir merken und werde es sicher irgendwo in meiner Diplomarbeit verewigen... :-D
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Das Wort hat er sich nicht ausgedacht ;) (siehe Wikipedia)

Es ist insbesondere im Internet von Belang, wo offenbar Urheberrechts- und damit Schutzansprüche z. B. gegen dreiste Komplettdiebstähle hochwertigster Website-Designs nicht durchgesetzt werden können.
Antworten