Ich schließe mich dem ersten "Nein" an - UTF-8 ist der "way to go". Selbst notepad.exe kann das seit Jahren. Zu dem "es sei denn" möchte ich allerdings anmerken, dass es nicht automatisch cp-1252 ist, sondern dann notgedrungen das Encoding, welches der Editor benutzt. Das muss man dann hat einfach herhausfinden. Wahrscheinlich wird es das sein, was auch die Plattform standardmäßig benutzt und das ist wiederum hochgradig Betriebssystem- und Länderabhängig. Wenn's kein deutsches Windows ist, dann ist es auch nicht cp-1252.
Stefan
Anfängerfrage: Python 3.0 und coding: cp1252
Hallo,
da tut sich bei mir noch eine Frage auf:
Basieren die ganzen Hinweise auf "coding Zeile weglassen"
auf irgendeinem style-guide (bitte mit Referenz) oder ist das eine persönliche
Vorliebe?
Bei mir haben alle Python Quellen systematisch eine coding Angabe
(ich bin allerdings noch nicht bei Python 3).
Grüße,
Matthias Kievernagel
da tut sich bei mir noch eine Frage auf:
Basieren die ganzen Hinweise auf "coding Zeile weglassen"
auf irgendeinem style-guide (bitte mit Referenz) oder ist das eine persönliche
Vorliebe?
Bei mir haben alle Python Quellen systematisch eine coding Angabe
(ich bin allerdings noch nicht bei Python 3).
Grüße,
Matthias Kievernagel
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Die coding-Zeile ist in Python 2.x nötig, denn dort ist das Default-Encoding für Quelltext ASCII. Wenn du etwas in der Datei hast was nicht-ASCII ist, ist das entweder eine Warnung oder ein SyntaxError. Daher wird in Python 2.x oft "coding: utf-8" geschrieben. In Python 3 braucht man dies nicht mehr zu machen, denn dort ist das Standardencoding für Dateien nicht mehr ASCII sondern UTF-8, da macht die coding-Zeile keinen Sinn, wenn es sowieso schon UTF-8 ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hi zusammen,
ich hätte auch ne kleine newbe-Anmerkung dazu:
Wenn man aus dem deutschen Tutorial 3.3 sniplets in den IDLE Editor (windows) kopiert, läuft das bei der HTML-Version problemlos. Beim PDF geht zum einen die Einrückung verloren und wenn man das manuell behebt kommt der "invalid character in identifier"-error, obwohl alles o.k. aussieht, z.B. mit ersten sniplet 4.7.1 def ask_ok... Bei der Fehlermeldung wird das "J" in complaint=’Bitte Ja oder Nein!’ rot markiert.
Werden da durch das PDF-Format irgendwelche nicht sichtbaren non-UTF-8-Zeichen mitkopiert oder was ist da los?
ich hätte auch ne kleine newbe-Anmerkung dazu:
Wenn man aus dem deutschen Tutorial 3.3 sniplets in den IDLE Editor (windows) kopiert, läuft das bei der HTML-Version problemlos. Beim PDF geht zum einen die Einrückung verloren und wenn man das manuell behebt kommt der "invalid character in identifier"-error, obwohl alles o.k. aussieht, z.B. mit ersten sniplet 4.7.1 def ask_ok... Bei der Fehlermeldung wird das "J" in complaint=’Bitte Ja oder Nein!’ rot markiert.
Werden da durch das PDF-Format irgendwelche nicht sichtbaren non-UTF-8-Zeichen mitkopiert oder was ist da los?
> (...(lambda...(it-schemes-i-must-be-jailed-in-braces? code)...))))))))))))))))))))))))))
#t
#t
@barrio Nein. “Nicht sichtbare non-UTF-8-Zeichen“ ist Blödsinn…
Sieh Dir die Zeichen im Quelltext genau an, insbesondere die Anführungszeichen. Du wirst feststellen, dass im PDF, und mithin auch im daraus kopierten Quelltext nicht der Apostroph ' steht, sondern das rechte einfache Anführungszeichen ’. Woran das liegt, weiß ich nicht, ich nehme an, Sphinx – das Programm, mit dem HTML und PDF erzeugt werden – ersetzt Apostrophe durch diese Anführungszeichen, weil man in normalem Fließtext eigentlich typographisch korrekte Anführungszeichen haben möchte. Nur eben im Quelltext nicht…
Lesson learned: Kopiere Quelltext nie aus PDF-Dokumenten. Die sind nicht zum Kopieren, sondern zum Lesen und Drucken da, und mithin stehen da im Hinblick auf Lesbarkeit und Ästhetik mitunter andere Zeichen, als in syntaktisch korrektem Quelltext eigentlich erforderlich wären.
Und für die Zukunft: Grabe bitte keine uralten Themen für völlig unabhängige Fragen aus. Themen kosten nichts, und Du darfst wirklich gerne neue erstellen, wenn Du Fragen hast.
Sieh Dir die Zeichen im Quelltext genau an, insbesondere die Anführungszeichen. Du wirst feststellen, dass im PDF, und mithin auch im daraus kopierten Quelltext nicht der Apostroph ' steht, sondern das rechte einfache Anführungszeichen ’. Woran das liegt, weiß ich nicht, ich nehme an, Sphinx – das Programm, mit dem HTML und PDF erzeugt werden – ersetzt Apostrophe durch diese Anführungszeichen, weil man in normalem Fließtext eigentlich typographisch korrekte Anführungszeichen haben möchte. Nur eben im Quelltext nicht…
Lesson learned: Kopiere Quelltext nie aus PDF-Dokumenten. Die sind nicht zum Kopieren, sondern zum Lesen und Drucken da, und mithin stehen da im Hinblick auf Lesbarkeit und Ästhetik mitunter andere Zeichen, als in syntaktisch korrektem Quelltext eigentlich erforderlich wären.
Und für die Zukunft: Grabe bitte keine uralten Themen für völlig unabhängige Fragen aus. Themen kosten nichts, und Du darfst wirklich gerne neue erstellen, wenn Du Fragen hast.
Zunächst mal danke für die schnelle Antwort.
Vielleicht können sich die "alten Hasen" auch ein wenig da hineinversetzen, dass sie selber mal angefangen haben. Wenn manche hier von newbe-Fragen genervt sind macht doch ne Anfängerecke auf, da muss ja nicht jeder reingucken.
cheers
Ich habe genau das gemacht, was man als Neuling indoktriniert bekommt: "§1 Benutze die Forensuche". Die Fehlermeldung kam darin vor und vom Thema (Pyhton 3 & encoding) schien er mir passend, so gut ich das beurteilen konnte. Wenn man einfach nen neuen Thread aufmacht, gibts doch auch schnell was auf die Mütze ("Das wurde doch schon unter XY behandelt"). Wenn in alte Beiträge nicht mehr gepostet werden soll, macht die doch zu.barrio hat geschrieben:Und für die Zukunft: Grabe bitte keine uralten Themen für völlig unabhängige Fragen aus. Themen kosten nichts, und Du darfst wirklich gerne neue erstellen, wenn Du Fragen hast. Beitrag Verfasst:
Vielleicht können sich die "alten Hasen" auch ein wenig da hineinversetzen, dass sie selber mal angefangen haben. Wenn manche hier von newbe-Fragen genervt sind macht doch ne Anfängerecke auf, da muss ja nicht jeder reingucken.
cheers
> (...(lambda...(it-schemes-i-must-be-jailed-in-braces? code)...))))))))))))))))))))))))))
#t
#t
Das wäre eine interessante Idee. Ich bin unter anderem in einem Forum wo alle Threads deren letzte Antwort älter als sechs Monate ist automatisch gesperrt werden (und keine Signaturen erlaubt sind, aber das ist eher eine Sache der Lesbarkeit).barrio hat geschrieben:Wenn in alte Beiträge nicht mehr gepostet werden soll, macht die doch zu
Davon abgesehen ist es vollkommen legitim einen neuen Thread aufzumachen falls man ein Problem hat. Falls nicht, dann dienen alte Threads lediglich der Information, es verwirrt nur wenn jemand einen alten Thread wieder hervorholt um Hilfe zu bekommen oder einen sinnlosen Kommentar abzugeben.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Dein Problem ist doch aber "Ich kann nicht aus dem Tutorial nach IDLE pasten", noch dazu ist das Thema _weit_ spezifischer: Python 3.0 und ein spezifischer Codec.barrio hat geschrieben:Die Fehlermeldung kam darin vor und vom Thema (Pyhton 3 & encoding) schien er mir passend, so gut ich das beurteilen konnte.
Das Posten in alte Topics ist gar nicht das Problem, denn hier wird eher die Meinung vertreten, dass es immernoch neue Aspekte geben kann. Wir sind schließlich keine Q&A Seite wie Stackoverflow und Konsorten.barrio hat geschrieben:Wenn in alte Beiträge nicht mehr gepostet werden soll, macht die doch zu.
Es wird aber zum Problem, wenn die Beiträge offtopic sind, schließlich wird es damit auch schwieriger die Suchfunktion zu benutzen, bzw daraus sinnvolle Ergebnisse zu bekommen.
Ich weiss nicht wo du dieses "genervt sein" siehst. Ich kann zwar nicht für alle sprechen, aber ich bin hier unterwegs, um Leuten zu helfen. Aus meiner Erfahrung hier im Forum würde ich meine Hand dafür ins Feuer legen, dass es für alle anderen Regulars ebenso gilt.barrio hat geschrieben:Vielleicht können sich die "alten Hasen" auch ein wenig da hineinversetzen, dass sie selber mal angefangen haben. Wenn manche hier von newbe-Fragen genervt sind macht doch ne Anfängerecke auf, da muss ja nicht jeder reingucken.
Zusammenfassend: Wenn im Zweifel, erstelle ein neues Topic.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Damit ist wohl eher gemeint "Benutze nicht die Forensuche um exakt das gleiche zu Fragen was vor einer Woche gefragt wurde." Ich habe auch hier im Forum schon mal zweimal die gleiche Frage auf der gleichen Seite in "Allgemeine Fragen" gesehen, weil Leute aus der gleichen Klasse die gleiche Frage hatten. Das ist dann tatsächlich frustrierend.barrio hat geschrieben:Ich habe genau das gemacht, was man als Neuling indoktriniert bekommt: "§1 Benutze die Forensuche".
Wir machen bewusst keine Themen zu, weil wer soll denn entscheiden ob ein Thema fertigbehandelt ist? Das bringt natürlich die Gefahr dass jemand einen alten Thread ausgräbt um dort etwas zu posten, was dazu führt dass alle die jemals vor x Jahren an dieser Diskussion ne Mail bekommen, auch wenn sie nicht mehr interessiert sind. Dies ist IMHO kein großes Problem wenns relevant ist, aber deine sache ist nur so semi-relevant (Threads mit Encoding-Fehlern machen grob 50% aller Threads hier aus), und dass einige Leute darauf genervt reagieren ist, finde ich, verständlich. Mir persönlich macht das nicht so viel aus um da jetzt irgendeine Position zu vertreten.barrio hat geschrieben:Die Fehlermeldung kam darin vor und vom Thema (Pyhton 3 & encoding) schien er mir passend, so gut ich das beurteilen konnte. Wenn man einfach nen neuen Thread aufmacht, gibts doch auch schnell was auf die Mütze ("Das wurde doch schon unter XY behandelt"). Wenn in alte Beiträge nicht mehr gepostet werden soll, macht die doch zu.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Vielen Dank für die regen Antworten, da das Thema jetzt eh total OT ist, möchte ich auch noch was dazu sagen. Das Hauptproblem ist mir klar geworden: Es geht nicht darum, generell keine alten threads auszugraben, sondern passend zu posten. Da werde ich mir nun als Heuristik merken: Im Zweifel lieber einen neuen Thread. Da die Differenzierungfähigkeit mit Kenntnis von Python & des Forums erst entsteht, werden die Pros mit einer gewissen Quote an semi-Fehlpostings bzw. überflüssigen neuen Themen wohl leben müssen, wenn newbe-Fragen erwünscht sind.
Dass Leute genervt sind schließe ich daraus wenn jemand eine Vermutung (die sicherlich nicht brilliant war) als erstes als "Blödsinn" bezeichnet. Das würde ich z. B. nicht machen, selbst wenn ich das denken würde. Wenn man weiß, worauf man achten muss, sieht man es natürlich sofort...
Dass Leute genervt sind schließe ich daraus wenn jemand eine Vermutung (die sicherlich nicht brilliant war) als erstes als "Blödsinn" bezeichnet. Das würde ich z. B. nicht machen, selbst wenn ich das denken würde. Wenn man weiß, worauf man achten muss, sieht man es natürlich sofort...
> (...(lambda...(it-schemes-i-must-be-jailed-in-braces? code)...))))))))))))))))))))))))))
#t
#t
Ist es Dir lieber, wenn ich das das nächste Mal nur denke?barrio hat geschrieben:Dass Leute genervt sind schließe ich daraus wenn jemand eine Vermutung (die sicherlich nicht brilliant war) als erstes als "Blödsinn" bezeichnet. Das würde ich z. B. nicht machen, selbst wenn ich das denken würde.
Du hast recht. Du musst allerdings bedenken, dass du es hier zum großen Teil mit Software-Entwicklern und Programmierern zu tun hast. Das sind häufig Leute die die Charaktere in Big Bang Theory für völlig durchschnittliche Exemplare der Spezies "Mensch" halten.barrio hat geschrieben:Etwas diplomatischere Formulierungen fände ich in der Tat freundlicher und motivierender...
Wie ich in der Firma immer zu sagen pflege: "Ich wurde hier nicht wegen meiner Sozialkompetenz eingestellt.".
Dann werde ich versuchen, mir das zu merken, und möchte mich für meine Wortwahl entschuldigen.barrio hat geschrieben:Etwas diplomatischere Formulierungen fände ich in der Tat freundlicher und motivierender...
Angenommen. Zu dem von /me erwähnten Klischee muss man nach dieser Geste in pythonspeak dann wohl sagen:
Code: Alles auswählen
>>> programmierer == SOZIALINSUFFIZIENT
FALSE
> (...(lambda...(it-schemes-i-must-be-jailed-in-braces? code)...))))))))))))))))))))))))))
#t
#t
@barrio: Wer auch immer den Datentyp von `programmierer` implementiert hat, sollte in der `__eq__()`-Methode besser `False` zurück geben, sonst veletzt er einen recht wichtigen Vertrag mit der Sprache.
Code: Alles auswählen
In [4711]: programmer.soft_skills_index < averge_joe.soft_skills_index
Out [4711]: True
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Ich sehe jetzt gar nich das Problem :O
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte