Zum Inhalt springen

Diskussion:Python (Programmiersprache)

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 27. Dezember 2009 um 23:17 Uhr durch Klaeren (Diskussion | Beiträge) (C Code: aw). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Letzter Kommentar: vor 15 Jahren von Klaeren in Abschnitt C Code
Archiv
Zur Archivübersicht
Wie wird ein Archiv angelegt?
Diese Diskussionsseite dient dazu, Verbesserungen am Artikel „Python (Programmiersprache)“ zu besprechen. Persönliche Betrachtungen zum Thema gehören nicht hierher. Für allgemeine Wissensfragen gibt es die Auskunft.

Füge neue Diskussionsthemen unten an:

Klicke auf Abschnitt hinzufügen, um ein neues Diskussionsthema zu beginnen.

Iteratoren

Es wäre gut, wenn auch noch Iteratoren/Generatoren mit in den Artikel aufgenommen werden würden. Gerade die runden zum Teil das Sprachdesign elegant ab. Beispiel für die paarweise Zusammenführung von beliebig vielen Sequenzen ohne eine weitere zu Erzeugen mit Anwendung:

def izip(*iterables):
    iterables = map(iter, iterables)
    while True:
        result = [i.next() for i in iterables]
        yield tuple(result) 
for i,j, in izip("abc",[1,2,3]):
    print i,"=",j

Hat sich eigentlich schon mal jemand den Link [16] "Python gehört zu den langsameren Programmiersprachen.[16] ..." durchgelesen?

Der Autor des Artikels hat sein erstes Python Programm geschrieben, und erstellt zig-tausendmal die gleiche Liste (range(KONSTANTE)). Na klar, dass das langsam ist. Das wäre in jeder Programmiersprache langsam. Außerdem ist der Artikel mehrere Jahre alt. Also ich finde die Formulierung "Python gehört zu den langsameren Programmiersprachen" unpassend. (nicht signierter Beitrag von 89.246.208.162 (Diskussion | Beiträge) 21:03, 18. Mär. 2009 (CET)) Beantworten

Der Link mag Mist sein (ich habe ihn nicht geprüft), aber Python gehört mit den aktuellen Implementierungen in die Liga der langsamen Sprachen, d.h. 1 bis 1.5 Größenordnungen langsamer als C++. Ich kenne die ganzen Diskussion von wegen "C wird doch auch interpretiert -- vom Prozessor nämlich" oder "IO-gebundene Programme sind in Python genauso schnell wie in C", aber man muß da einfach mal ehrlich sein. Würde man OpenOffice in Python schreiben, würde man es nicht mehr benutzen können, weil's zu langsam würde. Das ist aber nicht prinzipiell so: Theoretisch könnte ein Genie einen Python-Compiler schreiben, der in Code umsetzt, der genauso schnell wie C ist, aber das muß wohl erst noch geboren werden. – Torsten Bronger 14:57, 20. Mär. 2009 (CET)Beantworten
1 bis 1,5 Größenordnungen halte ich für totalen Quatsch. Für reines number-chrunching (was der worst case wäre) liegt der Faktor bei etwa 100 (allerdings gibt es natürlich auch hier optimierte module, die sich mit der Geschwindigkeit von C messen können). Für bestimmte Bereiche (z.B. String-Verarbeitung) ist der Faktor *weit* geringer, da hier von Python im Grunde nur bereits stark optimierten (C-)Code ausgeführt. Einen richtigen Python Compiler wird es vmtl. nie geben, dazu ist die Sprache zu dynamisch (JIT_Compiler gibt es schon - nennt sich pysco). An entsprechend schnellen Interpetern wird allerdings gearbeitet (stichwort pypy, unladen swallow). Die Geschwindigkeitssache sollte man differenziert sehen. Natürlich ist der Ausdruck a+b=c für langsamer als in C. Dafür kann er auch viel mehr (z.B. beliebig große Zahlen addieren, strings aneinander heften, ...). Würde man alle Features in C umsetzten hätte man wieder die gleiche Geschwindigkeit wie in Python (natürlich braucht man nicht immer alle, deswegen ist Python bei einfachen Systemen entsprechend langsamer als C). Python profitiert also von komplexen Aufgaben und ist da auch entsprechend schnell. Die Ausführungen mit OpenOffice sind großer Quatsch. Natürlich wäre es möglich ein solches Programm auch performant in Python umzusetzen. Man muss bloß die langsamsten Teile (meistens 5% des Codes, dafür 95% des Zeitverbrauchs) entsprechend otimieren oder auslagern. --89.196.27.122 18:34, 1. Mai 2009 (CEST)Beantworten
Auslagern, optimieren, "Python-Funktionen können mehr" – das ist alles richtig, aber andere Baustellen. Wenn ich einen nackten Standard-Algorithmus (z.B. Suche/Sortierung) in Python implementiere, bin ich Faktor 10 bis 30 langsamer als in C. Daß das in der Praxis in vielen Anwendungsfällen keine Rolle spielt, ist ja richtig, ich persönlich setze ja auch ausschließlich auf Python. Aber die aktuellen Python-Implementierungen führen vergleichbaren Code numal soviel langsamer aus, und das sollte man dann auch im Artikel zu schreiben. Es geht auf Wikipedia ja nicht um Werbung für Python. – Torsten Bronger 08:21, 27. Nov. 2009 (CET)Beantworten
Meiner Meinung nach fehlt dem Link definitiv die Relevanz für diesen Artikel. Sicher mag Python zu den langsameren Sprachen gehören, aber die Diskussion auf dem verlinkten Blog entbehrt jeglicher Sachlichkeit. Ich bin für Entfernen. --Xjs. 19:45, 1. Jun. 2009 (CEST)Beantworten
Nur weil sich der Link kritisch mit Python auseinandersetzt, ist er nicht destruktiv. Er ist m.E. fundiert und ggf. reproduzierbar. Ich verstehe nicht, warum er gelöscht werden sollte. --Bettercom 21:39, 1. Jun. 2009 (CEST)Beantworten
Ich bin für eine Entfernung dieser Aussage. Solche Aussagen trifft man nur bei entsprech. Relevanz - wenn es besonders negativ/positiv im Vergleich zu gleichartigen(interpretierten) Sprachen ausfällt. Noch dazu sind die Tests sehr stark abhängig von der jeweiligen Implementierung und Version der Interpreters. --Darktrym. 21:30, 27. Nov. 2009 (CEST)Beantworten

C Code

Von der Syntax her ist der C Code richtig, nur rechnet er keine Fakultät aus , sondern es wird nur eine Zahl n mit einer Zahl n-1 multipliziert.

Bsp:

Quellcode auf der Seite :

n= 4

Daweil rechnet er 4*3 = 12

wie kommst du darauf? Hast du das C-Programm mal compiliert und laufen gelassen? --Herbert Klaeren 22:17, 27. Dez. 2009 (CET)Beantworten

Fakultät wäre:

4*3*2*1 = 24 (nicht signierter Beitrag von 86.33.137.93 (Diskussion | Beiträge) 14:42, 27. Dez. 2009 (CET)) Beantworten

ja richtig, und genau das berechnet das Programm auch. --Herbert Klaeren 22:17, 27. Dez. 2009 (CET)Beantworten