Hallo liebe Python-Community,
ich bin blutiger Anfänger im Python-Game und muss mich betriebsbedingt in der Programmiersprache weiterbilden. Habe dazu auch Aufgaben, die ich täglich machen muss. Hier ist eine, bei der m.M.n. alles richtig sein sollte, der Name jedoch leer in der Ausgabe angezeigt wurde.
Referenzbild folgt.
Danke schonmal im Voraus!
https://imagizer.imageshack.com/v2/320x ... ScuWfg.jpg
Name wird nicht angezeigt im print
Hallo, kann ich bitte den Code als Text und nicht als Bild haben? Danke!
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Dann lass Dir doch mal das komplette Wörterbuch `number` ausgeben.
`number` ist übrigens ein schlechter Variablenname, weil er nichts über den Inhalt aussagt, bzw. sogar was falsches. Es handelt sich nicht um eine Nummer, sondern um ein Wörterbuch, das Addressen zählt (also zumindest number_of_addresses). Schreibfehler in Variablennamen sind doppelt blöd, weil man sich nicht nur daran erinnern muß, wie die Variable heißt, sondern auch noch daran, wie man sie falsch geschrieben hat.
Um den größten Wert zu ermitteln, gibt es die max-Funktion.
`number` ist übrigens ein schlechter Variablenname, weil er nichts über den Inhalt aussagt, bzw. sogar was falsches. Es handelt sich nicht um eine Nummer, sondern um ein Wörterbuch, das Addressen zählt (also zumindest number_of_addresses). Schreibfehler in Variablennamen sind doppelt blöd, weil man sich nicht nur daran erinnern muß, wie die Variable heißt, sondern auch noch daran, wie man sie falsch geschrieben hat.
Um den größten Wert zu ermitteln, gibt es die max-Funktion.
- __blackjack__
- User
- Beiträge: 14069
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Und es ist in der Regel auch sinnvoll die Quelle der Aufgabe zu nennen und in diesem Fall beispielsweise auch das die Datendatei, die in der Aufgabe verwendet wird zum Download bereit steht (http://www.py4e.com/code3/mbox-short.txt).
Falls Du das Buch dazu verwendest: Der Autor verwendet da bei dem Thema Dateien sehr oft `open()` und in den Beispielen mit der genannten Textdatei nie `close()`. Und soweit ich das gesehen habe auch bei keinem der Beispiele die ``with``-Anweisung. Die Kodierung wird auch nirgends beim öffnen angegeben, er hofft da also darauf, dass das System ASCII als Untermenge der verwendeten Kodierung hat, und das die Textdatei tatsächlich nur ASCII enthält. Kann er sich als Amerikaner vielleicht erlauben. Wenn man beliebige MBOX-Dateien robust verarbeiten können will, muss man wesentlich offener sein was die an Kodierungen enthalten können, bis hin zu *verschiedene* Kodierungen in der gleichen Datei.
Was auch nicht berücksichtigt wird, ist das die Header-Daten in einer MBOX zwar eine empfohlene Schreibweise haben, letztlich aber in der Gross-/Kleinschreibung davon abweichen können. Das müsste eine robuste Verarbeitung auch berücksichtigen. Insgesamt eignet sich dieses nur auf den ersten Blick einfach Dateiformat nicht wirklich als Beispiel für einfache Textverarbeitung. Da bräuchte man sowohl für das MBOX-Format, als auch für die einzelnen Nachrichten darin, ordentliche Parser. Die gibt es in der Python-Standardbibliothek sogar.
Es wird in dem Buch/Beispielen teilweise keine neue Zeile für Blöcke angefangen wenn die nur aus einer Zeile bestehen, es kommt für meinen Geschmack viel zu oft ``continue`` vor, und `exit()` ohne das aus `sys` zu importieren um einfach mal das Programm zu beenden, und nicht um tatsächlich einen Rückgabecode an den Aufrufer zu übermitteln.
Und dann so Namen wie `fname` und `fhand` statt `filename` und `file_handle`. Wobei letzteres IMHO seine eigene Problematik hat, weil da Informationen aus der Schicht unter der Implementierung enthalten sind, mit der man Python-Programmierer nicht behelligen sollte. Schon gar nicht Anfänger, die damit ja gar nichts anfangen können. In Python ist das einfach ein Dateiobjekt, also `file`.
Das physische Bildschirmfoto hat übrigens eine schlechte Qualität, so dass ich nicht 100% sagen kann ob ich den Fehler entdeckt habe, oder ob man das nur nicht richtig erkennen kann.
Falls Du das Buch dazu verwendest: Der Autor verwendet da bei dem Thema Dateien sehr oft `open()` und in den Beispielen mit der genannten Textdatei nie `close()`. Und soweit ich das gesehen habe auch bei keinem der Beispiele die ``with``-Anweisung. Die Kodierung wird auch nirgends beim öffnen angegeben, er hofft da also darauf, dass das System ASCII als Untermenge der verwendeten Kodierung hat, und das die Textdatei tatsächlich nur ASCII enthält. Kann er sich als Amerikaner vielleicht erlauben. Wenn man beliebige MBOX-Dateien robust verarbeiten können will, muss man wesentlich offener sein was die an Kodierungen enthalten können, bis hin zu *verschiedene* Kodierungen in der gleichen Datei.
Was auch nicht berücksichtigt wird, ist das die Header-Daten in einer MBOX zwar eine empfohlene Schreibweise haben, letztlich aber in der Gross-/Kleinschreibung davon abweichen können. Das müsste eine robuste Verarbeitung auch berücksichtigen. Insgesamt eignet sich dieses nur auf den ersten Blick einfach Dateiformat nicht wirklich als Beispiel für einfache Textverarbeitung. Da bräuchte man sowohl für das MBOX-Format, als auch für die einzelnen Nachrichten darin, ordentliche Parser. Die gibt es in der Python-Standardbibliothek sogar.
Es wird in dem Buch/Beispielen teilweise keine neue Zeile für Blöcke angefangen wenn die nur aus einer Zeile bestehen, es kommt für meinen Geschmack viel zu oft ``continue`` vor, und `exit()` ohne das aus `sys` zu importieren um einfach mal das Programm zu beenden, und nicht um tatsächlich einen Rückgabecode an den Aufrufer zu übermitteln.
Und dann so Namen wie `fname` und `fhand` statt `filename` und `file_handle`. Wobei letzteres IMHO seine eigene Problematik hat, weil da Informationen aus der Schicht unter der Implementierung enthalten sind, mit der man Python-Programmierer nicht behelligen sollte. Schon gar nicht Anfänger, die damit ja gar nichts anfangen können. In Python ist das einfach ein Dateiobjekt, also `file`.
Das physische Bildschirmfoto hat übrigens eine schlechte Qualität, so dass ich nicht 100% sagen kann ob ich den Fehler entdeckt habe, oder ob man das nur nicht richtig erkennen kann.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari