ubuntuusers.de

Python

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Python.

gotoubuntu

Anmeldungsdatum:
20. Dezember 2008

Beiträge: 73

Der erste Satz des Artikels:

Python 🇬🇧 ist eine Interpretersprache, d.h. der Programmcode muss vor Ausführung nicht kompiliert werden.

ist meiner Meinung nach falsch, natürlich muss auch Python Code vor der Ausführung kompiliert werden, es geschieht halt nur automatisch durch Python selbst, und muss nicht "manuell" erledigt werden.

Unter Ein Programm erstellen:

1
 #!/usr/bin/python

imo sollte man das durch

1
 #!/usr/bin/env python

ersetzen damit unabhängig vom direkten Pfad zum Python Interpreter das Skript ausgeführt werden kann.

diesch Team-Icon

Avatar von diesch

Anmeldungsdatum:
18. Februar 2009

Beiträge: 5072

Wohnort: Brandenburg an der Havel

Die Sprachdefinition von Python legt nicht fest, ob Python kompiliert oder durch einen Interpreter ausgeführt wird. Die üblicherweise verwendete Referenzimplementierung CPython kompiliert in einen Bytecode, der dann von einem Bytecode-Interpreter ausgeführt wird - also so ähnlich, wie das auch in z.B. Java oder .Net gemacht wird. Im Gegensatz zu Java passiert das kompilieren und ausführen aber in einem Schritt.

Einen reinen Interpreter für Python gibt es meines Wissens nach nicht, es gibt aber Compiler, die zumindest eine Untermenge von python nach Bytecode für Java, .Net oder in nativen Code kompilieren.

Der zitierte Satz ist daher tatsächlich falsch.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

der Satz ist nicht wirklich falsch, ohne Bezug aber in der Tat missverständlich. Das "nicht kompiliert" bezieht sich wohl lauf C & Co, wo man ja in der Tat 2-stufig arbeiten muss.

Ich wollte den Artikel in naher Zukunft so wie so überarbeiten, dann passe ich das auch an.

Gruß, noisefloor

diesch Team-Icon

Avatar von diesch

Anmeldungsdatum:
18. Februar 2009

Beiträge: 5072

Wohnort: Brandenburg an der Havel

noisefloor schrieb:

Hallo,

der Satz ist nicht wirklich falsch, ohne Bezug aber in der Tat missverständlich. Das "nicht kompiliert" bezieht sich wohl lauf C & Co, wo man ja in der Tat 2-stufig arbeiten muss.

Das "nicht kompiliert" kann man mit ein bisschen gutem Willen stehen lassen, aber "Interpretersprache" stimmt nicht.

gotoubuntu

(Themenstarter)

Anmeldungsdatum:
20. Dezember 2008

Beiträge: 73

noisefloor schrieb:

Hallo,

der Satz ist nicht wirklich falsch, ohne Bezug aber in der Tat missverständlich. Das "nicht kompiliert" bezieht sich wohl lauf C & Co, wo man ja in der Tat 2-stufig arbeiten muss.

So sehe ich das auch, deshalb wäre etwa folgendes gut:

Python 🇬🇧 ist eine Interpretersprache, d.h. der Programmcode muss vor Ausführung nicht manuell (oder explizit) kompiliert werden.

noisefloor schrieb:

Ich wollte den Artikel in naher Zukunft so wie so überarbeiten, dann passe ich das auch an.

Gruß, noisefloor

Darüber hatte ich auch nachgedacht, wobei ich mich frage welches Thema ein Artikel zu Python im UU-Wiki behandeln sollte. Derzeit ist er mehr ein Tutorial zur Python Programmierung als eine Beschreibung von Python. Es gibt im Internet aber gute Python Tutorial und sowohl der deutsche als auch der englische Wikipedia Artikel sind als lesenswert gekennzeichnet und beschreiben die Sprache ausführlich. Afaik wäre eine Neuausrichtung des Themas hin zu "Python und seine besondere Bedeutung für Ubuntu (bzw. Linux allgemein)" zu begrüßen. Das würde natürlich eine menge Arbeit erfordern und eventuell würden sich alte Autoren des Artikels auf den Schlips gedrehten fühlen, da von dem alten Artikel dann nicht mehr viel übrig bliebe.

diesch schrieb:

noisefloor schrieb:

Hallo,

der Satz ist nicht wirklich falsch, ohne Bezug aber in der Tat missverständlich. Das "nicht kompiliert" bezieht sich wohl lauf C & Co, wo man ja in der Tat 2-stufig arbeiten muss.

Das "nicht kompiliert" kann man mit ein bisschen gutem Willen stehen lassen, aber "Interpretersprache" stimmt nicht.

Was ist daran falsch?

diesch Team-Icon

Avatar von diesch

Anmeldungsdatum:
18. Februar 2009

Beiträge: 5072

Wohnort: Brandenburg an der Havel

der Satz ist nicht wirklich falsch, ohne Bezug aber in der Tat missverständlich. Das "nicht kompiliert" bezieht sich wohl lauf C & Co, wo man ja in der Tat 2-stufig arbeiten muss.

Das "nicht kompiliert" kann man mit ein bisschen gutem Willen stehen lassen, aber "Interpretersprache" stimmt nicht.

Was ist daran falsch?

Python-Code wird üblicherweise kompiliert. Ich kenne keinen Python-Interpreter. Ich würde das aber auch im ersten Absatz gar nicht erwähnen, da es meiner Meinung dafür nicht wichtig genug ist. Ich würde das eher unter "Ein Programm erstellen" erwähnen.

Mein Vorschlag für den Artikel-Anfang:

Python ist eine dynamische, objektoriente Programmiersprache, die Anfang der 1990er-Jahre von Guido van Rossum entwickelt wurde. Heute ist Python auf vielen Plattformen (z.B. Linux und den meisten Unix-Varianten, OS X, Windows) verfügbar und wird unter Ubuntu für viele zentrale Programme, wie z.B. das Software-Center, benutzt.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

so, habe mal mit der Überarbeitung begonnen. Bzw. ich bin fast fertig, es fehlt noch der Abschnitt zu 2to3.

"Mein" Anliegen der Überarbeitung war eigentlich, dann Python 3 Teil nach vorne zu holen und etwas zu erweitern. Das ist auch passiert. ☺

Wer noch Ergänzungen machen möchte → nur zu.

Gruß, noisefloor

EDIT: siehe Baustelle/Python

SpaX

Anmeldungsdatum:
21. April 2007

Beiträge: 551

Kleinigkeit, aber:

Python 3 ist ohne Frage zu Zukunft von Python. Sind alle Zusatzmodule, die man benutzen möchte bzw. muss für Python 3 verfügbar, so sollte man in Python 3 programmieren. Ist das nicht der Fall, so muss man natürlich Python 2 nehmen.

Sollte das nicht eher so aussehen:

Python 3 ist ohne Frage zu die Zukunft von Python.

Bei dem nächsten Satz bin ich mir nicht ganz sicher, ob ich den Inhalt wirklich verstanden habe, ließt sich ein wenig holprig... ich ziehe da so was raus:

Sind alle Zusatzmodule, die man benutzen möchte bzw. muss nur für Python 3 verfügbar, so sollte man in Python 3 programmieren. Ist das nicht der Fall, so muss kann man natürlich Python 2 nehmen.❓

UrbanFlash Team-Icon

Avatar von UrbanFlash

Anmeldungsdatum:
21. Februar 2006

Beiträge: 5549

Wohnort: Wien

Ich würde mal sagen es ist gemeint (paraphrasiert): Nimm Python3 wenn es alles unterstützt was du brauchst, und sonst Python2.

Das würde ich dann so formulieren: Sind alle benötigten Zusatzmodule bereits für Python 3 verfügbar, so ist dies die erste Wahl. Fehlen noch notwendige Module, sollte man weiterhin auf Python 2 setzen.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

genau. Habe den Satz übernommen und den Abschnitt zu 2to3 eingebaut.

Gruß, noisefloor

gotoubuntu

(Themenstarter)

Anmeldungsdatum:
20. Dezember 2008

Beiträge: 73

Habe ebenfalls ein paar Änderungen vorgenommen und will hier kurz ein paar erwähnen und warum ich sie gemacht habe:

Einleitung nochmals leicht überarbeitet:

Python ist eine interpretierte, objektorientierte höhere Programmiersprache mit dynamischer Typisierung und Bindung.

Quelle: http://www.python.org/doc/essays/blurb/
Finde das man die Interpretierung und dynamische Typisierung in einem Satz mit der Objektorientierung erwähnen sollte, da das Merkmale sind die sie von vielen anderen Sprachen unterscheidet.

Unter Python 2 und Python 3 habe ich erwähnt warum auch sich auch einen Anfänger zwischen einer der beiden Versionen entscheiden sollte, da z.B. in vielen anderen Sprachen zwischen zwei Versionssprüngen zwar auch diverse Neuerungen und Veränderungen vorkommen, diese aber eher selten die Sprachkonstrukte betreffen mit denen ein Anfänger in Berührung kommt.

Unter "Hallo Welt" in Python habe ich die Ausführung des Programms zu ./helloworld.py umgeschrieben, da im Beispiel ja extra der Shebang Kommentar benutzt wurde und man sonst zusätzlich erwähnen müsste das man den Python 3 Interpreter per python3 Befehl verwendet.

Weiterführende Literatur habe ich nach unten Verschoben damit es näher bei den Links steht und um den Beginnersguide erweitert.

Das sind alles nur Änderungen die meine persönliche Meinung zu einem guten Artikel wiederspiegeln, ich fühle mich in keinster Weise auf den Schlips gedrehten wenn ihr anderer Meinung seid und Änderungen rückgängig macht. ☺

diesch schrieb:

Ich kenne keinen Python-Interpreter.

Und was ist für dich das Programm hinter dem Befehl python bzw. python3? ☺

Ich würde das aber auch im ersten Absatz gar nicht erwähnen, da es meiner Meinung dafür nicht wichtig genug ist. Ich würde das eher unter "Ein Programm erstellen" erwähnen.

Meiner Meinung ist es gerade wichtig, da es imo ein großer Unterschied ist ob ein Programm direkt in Assembler und dann Binärcode umgewandelt wird, oder ob es erst in eine Zwischensprache (die nicht ASM ist) umgewandelt wird und dann von einem Interpreter ausgeführt wird.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

im Wiki sind einfache Zeilenumbrüche ein No-Go - entfernt. Sonst IMHO ok.

Gruß, noisefloor

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

ist wieder im normalen Wiki. Danke für die Mitarbeit. ☺

Gruß, noisefloor

chaos.dennis

Anmeldungsdatum:
8. November 2011

Beiträge: 42

Hallo,

der teil funktioniert so nicht...

"Hallo Welt" in Python

Der Standardweg, um Python-Programme zu erstellen, geht über einen Editor. Editoren bieten viele Hilfen wie Syntaxhervorhebung, automatische Einrückung und Funktionen zu verkleinern. Daher gibt es auch eine riesige Zahl von Programmen, es kann also jeder einen Editor seiner Wahl finden.

Es wird der Quelltext im bevorzugten Editor [4] erstellt und als *.py abgespeichert.

1
2
3
#!/usr/bin/env python
#mein Hallo-Welt-Programm für Python 2
print 'Hallo Welt!'

Für Python 3 sieht das Programm minimal anders aus:

1
2
3
#!/usr/bin/env python3
#mein Hallo-Welt-Programm für Python 3
print('Hallo Welt!')

Als Beispiel sei der Quellcode unter ~/hallowelt.py abgespeichert.

Nun öffnet man das Terminal [3] und wechselt in das Verzeichnis der Quelldatei. In diesem Ordner kann man sodann durch eine einzige Befehlszeile den Code ausführen

./hallowelt.py 

Das script muss das exceutable bit haben.

Im perl Artikel ist es gut beschrieben: "Der Shebang-Mechanismus" http://wiki.ubuntuusers.de/Perl#Der-Shebang-Mechanismus

Eigentlich gehört die Shebang Geschichte auch in den Ruby und andere Skripting Artikel, ist es sinnvoll den auszugliedern und in den 3 Artikeln zu verlinken? Dieser Artikel ist sehr gut: http://de.wikipedia.org/wiki/Shebang

Warum also das Rad neu erfinden?

Gruß,

Dennis

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

korrigiert.

Gruß, noisefloor

Antworten |