Moin.
Gibt es eigentlich eine Möglichkeit php-code in python auszuführen, oder PHP-Code in Python-Code zu übersetzen?
Vielen Dank.
PHP-Code in Python
Hallo!
Du solltest vielleicht konkreter werden
joe
Nein, im python-interpreter läuft nur python-code.Gree hat geschrieben:Gibt es eigentlich eine Möglichkeit php-code in python auszuführen,
Ich weiß nicht, was php kann, aber python wird sicherlich dem in nichts nachstehen. Sollte also mit ausreichend php- und python-wissen kein problem sein.Gree hat geschrieben:oder PHP-Code in Python-Code zu übersetzen?
Du solltest vielleicht konkreter werden
joe
Oder auch Java *.class Dateien. Wenn man PHP in Java-classes übersetzen kann, dann wäre das ein möglicher Weg.joe hat geschrieben:Hallo!Nein, im python-interpreter läuft nur python-code.Gree hat geschrieben:Gibt es eigentlich eine Möglichkeit php-code in python auszuführen,
Servus,
ich kenn auch nur PiP. Und das funktioniert genau andersrum - also Python in PHP.
MfG
Andreas
ich kenn auch nur PiP. Und das funktioniert genau andersrum - also Python in PHP.
MfG
Andreas
Ja, so hab ich mir das auch ertmal gedacht.
Kann ja sein, aber schöner fände ich wenn es sowas gäbe wie dieses PiP, nur andersherum.
Danke
Kann ja sein, aber schöner fände ich wenn es sowas gäbe wie dieses PiP, nur andersherum.
Danke
*pfeif*
Naja, ich weiß nicht, ob das in einem Python-Forum so gut ankommt, aber wir benutzen z.Zt. in der Schule Python, und so konnte ich feststellen, dass mir python nicht so sehr zusagt...
PHP dagegen find ich super, und so kam ich auf die ausgefallene Idee es könnte doch ein Programm zum Übersetzen von PHP-Scripts in Python geben.
Naja.
Naja, ich weiß nicht, ob das in einem Python-Forum so gut ankommt, aber wir benutzen z.Zt. in der Schule Python, und so konnte ich feststellen, dass mir python nicht so sehr zusagt...
PHP dagegen find ich super, und so kam ich auf die ausgefallene Idee es könnte doch ein Programm zum Übersetzen von PHP-Scripts in Python geben.
Naja.
Also dann hast du entweder noch nicht viel mit PHP gemacht oder kennst Python nicht richtig ,-)
Kann natürlich auch sein, dass es die natürlich Abneigung gegen Programmiersprachen, welche man in der Schule lernt ist
Aber mit Python ist dein Code kürzer und wartbarer als mit PHP.
Der einzige Nachteil gegenüber PHP ist IMHO, dass es bei den Webspace-Anbietern weitaus weniger verbreitet ist.
Und 2 Sprachen mischen ist nur dann eine Idee, wenn man das braucht, weil man unterschiedlich Systemnah arbeiten will (z.B. Python & C oder C++ & Assembler).
Such die eine (ich schlage vor Pyhton ) aus und machs komplett in der Sprache, auch wenn du da viel neu schreiben musst, wirst du mittelfristig weniger arbeit damit haben, als wenn du versuchst die beiden zusammenzubraten.
Kann natürlich auch sein, dass es die natürlich Abneigung gegen Programmiersprachen, welche man in der Schule lernt ist
Aber mit Python ist dein Code kürzer und wartbarer als mit PHP.
Der einzige Nachteil gegenüber PHP ist IMHO, dass es bei den Webspace-Anbietern weitaus weniger verbreitet ist.
Und 2 Sprachen mischen ist nur dann eine Idee, wenn man das braucht, weil man unterschiedlich Systemnah arbeiten will (z.B. Python & C oder C++ & Assembler).
Such die eine (ich schlage vor Pyhton ) aus und machs komplett in der Sprache, auch wenn du da viel neu schreiben musst, wirst du mittelfristig weniger arbeit damit haben, als wenn du versuchst die beiden zusammenzubraten.
Was machst du denn, wenn ihr nen Test schreibt? Schreibst du dann PHP da hin und sagst, du würdest das konvertieren lassen?Gree hat geschrieben:*pfeif*
Naja, ich weiß nicht, ob das in einem Python-Forum so gut ankommt, aber wir benutzen z.Zt. in der Schule Python, und so konnte ich feststellen, dass mir python nicht so sehr zusagt...
PHP dagegen find ich super, und so kam ich auf die ausgefallene Idee es könnte doch ein Programm zum Übersetzen von PHP-Scripts in Python geben.
Naja.
[persöhnliche_meinung]Lehrn lieber Python. Is eh besser [/persöhnliche_meinung]
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Warum? Das würde mich echt mal interressieren, was du an PHP besser findest...Gree hat geschrieben:so konnte ich feststellen, dass mir python nicht so sehr zusagt... PHP dagegen find ich super
Dazu passend, aus der FAQ ( http://www.pythonwiki.de/PythonDeForum/ ... 6d6a7ef550 ):
Welche Vor- und Nachteile hat Python?
Pro
* OpenSource / FreieSoftware! (ansich schon einige Vorteile gegenüber ClosedSource Programmierspachen und Implementationen)
* klare, schnell erlernbare Sprachsyntax, somit schnelle Ergebnisse
* gezwungenermaßen gut lesbarer Code
* Module für alle möglichen Probleme vorhanden
* eine Sprache für alle Plattformen
* eine Sprache für Web und lokale GUI-Lösungen
* eine Sprache für kleine, schnell erstellte Skript-Lösungen für Kommandozeile, aber auch komplexe grafische Programme möglich
* aussagekräftige und gezielte Fehlermeldungen
* [WWW] hier eine ausführlichere Liste der Vorteile von Python
Contra
* bedingt geeignet für performancelastige Probleme (auslagern in C möglich)
Also ersteinmal ist es mein neophober Teil, der sich über die Abwesenheit von geschweiften Klammern erschreckt zeigt, aber ok, das wird der neophile kompensierern können.
Dann diese eigenartige (nach PHP irgendwie unnötige) unterscheidung in dictionarys und Listen. Dabei ist doch schon die for-schleife in Python so super aufgebaut, das man sich eine foreach völlig sparen kann.
Und dann mag mich auch etwas gestört haben, dass ich es einfach nicht geschafft hab eine dokumentation zu finden, in der für alle module (oder jedes einzelne Modul) alle funktionen/methoden samt syntax und möglicherweise auch noch beispielen, aufgeführt sind. Zu sort() konnte ich in einigen Dokumentationen beschreibungen zum sortierern von listen finden, aber hab nicht herausgefunden, wie man dictionarys nach werten sortiert (in PHP kein geringstes Problem), und jedesmal die netten Leute in Foren zu nerven...
Und wieso kann ich einem Array text (len(text) == 3 && text == "mau" soll mal wahr sein, oh, sorry heißt ja leider 'and' statt '&&') nicht einfach mit text[3] = s ein 's' anhängen... Aber ok, das hat sicher ganz logische, sich auf konsequents berufene Gründe... klappt ja auch mit append().
Um die Tests mach ich mir mal nicht so viel sorgen, in der Schule machen wir das sowieso auf so bescheidenem Level, dass das sicher nicht das Problem sein sollte.
Na dann schonmal danke für das mich-in-die-richtige-Richtung-lenken.
Gree
Dann diese eigenartige (nach PHP irgendwie unnötige) unterscheidung in dictionarys und Listen. Dabei ist doch schon die for-schleife in Python so super aufgebaut, das man sich eine foreach völlig sparen kann.
Und dann mag mich auch etwas gestört haben, dass ich es einfach nicht geschafft hab eine dokumentation zu finden, in der für alle module (oder jedes einzelne Modul) alle funktionen/methoden samt syntax und möglicherweise auch noch beispielen, aufgeführt sind. Zu sort() konnte ich in einigen Dokumentationen beschreibungen zum sortierern von listen finden, aber hab nicht herausgefunden, wie man dictionarys nach werten sortiert (in PHP kein geringstes Problem), und jedesmal die netten Leute in Foren zu nerven...
Und wieso kann ich einem Array text (len(text) == 3 && text == "mau" soll mal wahr sein, oh, sorry heißt ja leider 'and' statt '&&') nicht einfach mit text[3] = s ein 's' anhängen... Aber ok, das hat sicher ganz logische, sich auf konsequents berufene Gründe... klappt ja auch mit append().
Um die Tests mach ich mir mal nicht so viel sorgen, in der Schule machen wir das sowieso auf so bescheidenem Level, dass das sicher nicht das Problem sein sollte.
Na dann schonmal danke für das mich-in-die-richtige-Richtung-lenken.
Gree
Diese Unterscheidung ist alles andere als sinnlos.Gree hat geschrieben:Dann diese eigenartige (nach PHP irgendwie unnötige) unterscheidung in dictionarys und Listen. Dabei ist doch schon die for-schleife in Python so super aufgebaut, das man sich eine foreach völlig sparen kann.
Ich weiß nicht genau, wie PHP das implementiert, aber Listen und Hashes (=Dictionaries) sind total unterschiedliche Datenstrukturen, die ganz Unterschiedliches Laufzeitverhalten haben. Ich nehme mal an, in PHP sind einfach alles Hashes.
Ich kann aber auf das n-te Element in einer Liste (angenommen sie ist entsprechend implementiert) in konstanter Zeit zugreifen, während das bei Hashes nur angenähert der Fall ist.
Listen verbrauchen ausserdem weniger Speicher, weil die Schlüssel nicht mitgespeichert werden müssen, da der Schlüssel die Position in der Liste ist.
Es ist einfach konzeptionell was anderes!
Also Beispiele gibts nicht überall zu, aber wenn du hier mal in die FAQ guckst (http://www.pythonwiki.de/PythonDeForum/Faq)Und dann mag mich auch etwas gestört haben, dass ich es einfach nicht geschafft hab eine dokumentation zu finden, in der für alle module (oder jedes einzelne Modul) alle funktionen/methoden samt syntax und möglicherweise auch noch beispielen, aufgeführt sind.
oder einfach mal "pydoc modulname" eingibst (unter Linux, k.A. wies unter Windows ist), müsstest du schon fündig werden.
Dann hast du die Datenstruktur Hash nicht verstanden.Zu sort() konnte ich in einigen Dokumentationen beschreibungen zum sortierern von listen finden, aber hab nicht herausgefunden, wie man dictionarys nach werten sortiert (in PHP kein geringstes Problem), und jedesmal die netten Leute in Foren zu nerven...
Ein Hash (also Dictionary) hat keine festgelegte oder festlegbare Reihenfolge der Einträge, hier zu erklären, wie genau ein Hash funktioniert würde ein bisschen weit führen, aber evtl. hilft google dir da weiter.
Das liegt wieder daran, dass eine Liste kein Hash ist.Und wieso kann ich einem Array text (len(text) == 3 && text == "mau" soll mal wahr sein, oh, sorry heißt ja leider 'and' statt '&&') nicht einfach mit text[3] = s ein 's' anhängen...
Die Liste hat in dem Moment 3 Elemente.
Code: Alles auswählen
text[3]
(Informatiker fangen ja bei 0 mit zählen an, also 0 wäre das erste Element), welches zu dem Zeitpunkt ja nicht existiert.
Bei einem Hash wäre das z.B. anders.
Eine Liste ist so gebaut, dass es keine "Lücken" geben kann.
Kein Problem, ich hoffe, ich konnte helfenNa dann schonmal danke für das mich-in-die-richtige-Richtung-lenken.
Gree
Ja, Danke erstmal.
Arrays:
Ja, gut, dann ist das halt anders...
Hat ja sicher Vorteile...
Dokumentation:
pydoc werd ich mal ausprobieren, Windows ist mir eigentlich recht egal.
Hoffentlich find ich da dann irgendwo erklährungen zur sort()-Syntax.
Schaun wa ma.
Danke für die, wenn auch nicht so angenehm für idioten wie bei der PHP-Doc integrierten, Beispiele. Werd mal ein bissl lesen.
dictionary-Datenstruktur:
In PHP liegen die auch nur so rum: Key=>Wert, ohne eine zusätzliche indexierung, aber trotzdem kann man sie sortierern, und es gibt auch schicke Arrayzeiger, mit denen man von Element zu Element wandern kann. Vielleicht könnte man das so etwa mit n Zeilen mal (2 Spalten + Index) vergleichen:
Index | Key | Wert
1 | quasikey1 | bel-wert
2 | quasikey2 | bel-wert
3 | quasikey3 | bel-wert
4 | quasikey4 | bel-wert
Also, dass man jedem (eindeutigen) Index 1. ([n][0]) einen eindeutigen Wert zuweist, der als Key herhalten soll, und dann 2. ([n][1]) den eigentlichen Wert.
Dann braucht man nur noch eine Funktion, der man den Quasi-Key übergibt, und die dann den richtigen zurückliefert.
Vielleicht mach ichs so.
append:
Ich hatte in meinem Beispiel schon vor aus "mau" "maus" zu machen, also ein Element anzuhängen.
ok, nehm ich das halt so hin.
Helfen:
Auf jeden Fall. Danke.
Mal sehen, ob ich mir selber aus ein paar Funktionen und Listen PHP-Typische Arrays basteln kann.
Find ich irgendwie Vorteilhaft.
Arrays:
Ja, gut, dann ist das halt anders...
Hat ja sicher Vorteile...
Dokumentation:
pydoc werd ich mal ausprobieren, Windows ist mir eigentlich recht egal.
Hoffentlich find ich da dann irgendwo erklährungen zur sort()-Syntax.
Schaun wa ma.
Danke für die, wenn auch nicht so angenehm für idioten wie bei der PHP-Doc integrierten, Beispiele. Werd mal ein bissl lesen.
dictionary-Datenstruktur:
In PHP liegen die auch nur so rum: Key=>Wert, ohne eine zusätzliche indexierung, aber trotzdem kann man sie sortierern, und es gibt auch schicke Arrayzeiger, mit denen man von Element zu Element wandern kann. Vielleicht könnte man das so etwa mit n Zeilen mal (2 Spalten + Index) vergleichen:
Index | Key | Wert
1 | quasikey1 | bel-wert
2 | quasikey2 | bel-wert
3 | quasikey3 | bel-wert
4 | quasikey4 | bel-wert
Also, dass man jedem (eindeutigen) Index 1. ([n][0]) einen eindeutigen Wert zuweist, der als Key herhalten soll, und dann 2. ([n][1]) den eigentlichen Wert.
Dann braucht man nur noch eine Funktion, der man den Quasi-Key übergibt, und die dann den richtigen zurückliefert.
Vielleicht mach ichs so.
append:
Ich hatte in meinem Beispiel schon vor aus "mau" "maus" zu machen, also ein Element anzuhängen.
ok, nehm ich das halt so hin.
Helfen:
Auf jeden Fall. Danke.
Mal sehen, ob ich mir selber aus ein paar Funktionen und Listen PHP-Typische Arrays basteln kann.
Find ich irgendwie Vorteilhaft.
Zu Maus:
Strings an sich sind in Python immutabel.
Soll heissen, man kann sie nicht verändern.
Das macht aber auch Sin, wenn man sich überlegt, dass man auch Zahlen nicht verändern kann (Eine 5 bleibt eine 5, und wenn ich eins drauf addiere, ist 5 immernoch 5, aber das Ergebnis ist ein neues Objekt, die 6).
Vielleich ist, was du willst folgendes:
edit: Zu den hash-listen: Was genau hast du denn damit vor?
Was ich meine: Wenn du ein bisschen genauer angeben kannst, über welche Methode du in welchen Fällen auf deine Elemente zugreifen willst, kann ich dir vielleicht helfen, sowas zu konstruieren...
Strings an sich sind in Python immutabel.
Soll heissen, man kann sie nicht verändern.
Das macht aber auch Sin, wenn man sich überlegt, dass man auch Zahlen nicht verändern kann (Eine 5 bleibt eine 5, und wenn ich eins drauf addiere, ist 5 immernoch 5, aber das Ergebnis ist ein neues Objekt, die 6).
Vielleich ist, was du willst folgendes:
Code: Alles auswählen
% python
Python 2.3.5 (#2, Jun 19 2005, 13:28:00)
[GCC 3.3.6 (Debian 1:3.3.6-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> string1 = "mau"
>>> print string1 + "s"
maus
>>>
Was ich meine: Wenn du ein bisschen genauer angeben kannst, über welche Methode du in welchen Fällen auf deine Elemente zugreifen willst, kann ich dir vielleicht helfen, sowas zu konstruieren...
Ich weiss auch nicht so recht was Du mit sortierten Dictionaries genau machen willst. Wenn Du nach Schlüssel sortiert die Schlüssel und Werte ausgeben oder sonstwie bearbeiten willst, dann kannst Du das z.B. so machen:
Zu der Dokumentationsfrage: Die Doku von Python beschreibt eigentlich alle Module die mitgeliefert werden. Beispiele sind nicht überall vorhanden, aber man kann auch im Interaktiven Interpreter mal schnell was ausprobieren wenn man sich nicht ganz sicher ist.
Das ``and`` statt ``&&`` finde ich etwas lesbarer, weil das Wort `and` eine bekannte Bedeutung hat, während ``&&`` nicht ganz so selbsterklärend ist.
Code: Alles auswählen
for key, value in sorted(dictionary.items()):
print key, value
Das ``and`` statt ``&&`` finde ich etwas lesbarer, weil das Wort `and` eine bekannte Bedeutung hat, während ``&&`` nicht ganz so selbsterklärend ist.
And:
In PHP geht, soweit ich weiß, beides.
Dictionarys:
Ich würde gerne nach den Werten sortieren, das hab ich jetzt so genacht:
array ist mein dictionary, in dem jedem Buchstaben von 'a' bis 'z' die Anzahl seines Auftretens im Text zugeordnet ist.
Funzt jetzt auch.
In PHP geht, soweit ich weiß, beides.
Dictionarys:
Ich würde gerne nach den Werten sortieren, das hab ich jetzt so genacht:
Code: Alles auswählen
while len(array) > 0:
biggest = array.keys()[0]
for k in array:
if array[k] > array[biggest]:
biggest = k
print "Letter: %s" %biggest, "- Anz: %i" %array[biggest], "%"
del array[biggest]
Funzt jetzt auch.
Schau dir nochmal das Beispiel von Blackjack an, das ganze geht viel einfacher:Auf sorted hab ich verzichtet, da es erst bei Python 2.4 dabei ist.
Edit: Ah, du willst nach der Anzahl (also dem zweiten Element in dem Tupel (key,value)) sortieren. In diesem Falle l.sort() durch folgendes ersetzen:Wenn du mit dem größten Wert anfangen willst, kannst du
Code: Alles auswählen
l = array.items()
l.sort()
for buchstabe, anzahl in l:
print "Letter",buchstabe,"Anzahl",anzahl
# oder print "Letter %s - Anzahl %i" % (buchstabe,anzahl)
Edit: Ah, du willst nach der Anzahl (also dem zweiten Element in dem Tupel (key,value)) sortieren. In diesem Falle l.sort() durch folgendes ersetzen:
Code: Alles auswählen
l.sort(lambda a,b:cmp(a[1],b[1]))
- nach dem sort ein l.reverse() ausführen, oder
- statt cmp schreiben: -cmp
Oder den `reverse` Parameter benutzen:
Code: Alles auswählen
from operator import itemgetter
histogram = {'a': 10, 'b': 5, 'c': 100}
for item in sorted(histogram.items(), key=itemgetter(1), reverse=True):
print 'Letter %r - count: %d' % item
Danke!
Das Beispiel oben hab ich schonmal gesehen, konnte aber mir nichterklähren, was dieses lambda a,b:cmp(a[1],b[1]) zu bedeuten hat, das sort() übergeben wird... Ich werds mal ausprobieren, aber was bedeutet das? Lambda ist doch ein Buchstabe.
Ich benutze ungern Dinge, die ich nicht verstehe, ne, andersrum: Ich verstehe gerne Dinge, die ich benutze.
Das Beispiel oben hab ich schonmal gesehen, konnte aber mir nichterklähren, was dieses lambda a,b:cmp(a[1],b[1]) zu bedeuten hat, das sort() übergeben wird... Ich werds mal ausprobieren, aber was bedeutet das? Lambda ist doch ein Buchstabe.
Ich benutze ungern Dinge, die ich nicht verstehe, ne, andersrum: Ich verstehe gerne Dinge, die ich benutze.