Python auf dem Mac

Hallihallo,

ich habe einen Onlinekurs für Python gemacht (das war in einem direkt im Browser ausführbaren Fenster) und ich möchte mit Python gerne weiter coden auf dem Mac und störe mich ein wenig daran, dass es keine gescheiten Editoren gibt, die eine direkte Ausführungsfunktion für Python haben. Aber wie dem auch sei. Ich habe mir SublimeText 2 gedownloadet.

Python selbst hab ich auch gedownloadet und dadurch die beiden Programme IDLE und Python Launcher erhalten. Die Einstellungen im Pythonlauncher sehen so aus (siehe Bild im Anhang):

Leider werden viele Programme gar nicht ausgeführt. Nur sowas wie print(3) geht noch. Schon anspruchsvollere Sachen arbeiten nicht. Wenn ich zum Beispiel ein Turtle Programm ausführen möchte, wird vieles gemacht, manches auch nicht. Ein Programm aus dem Onlinekurs zum Beispiel, was in der Onlineoberfläche ging macht gar nicht was es soll, im Beispiel macht es gar keine Mausinteraktion.

Und auch wenn ich sowas hier ausführen möchte bzgl. Eingabe:

from random import *
geraten = False
Zahl = 50
while not geraten:
  Antwort = input("{} ?".format(Zahl))
  if Antwort == "k":
    Zahl = Zahl + 1
  elif Antwort == "g":
    Zahl = Zahl - 1
  else:
    geraten = True

Werde ich nur damit überrascht: 50 ?Traceback (most recent call last): File „/Users/myusername/Desktop/Dings.py“, line 7, in Antwort = input("{} ?".format(Zahl)) EOFError: EOF when reading a line [Finished in 0.0s with exit code 1]

Kann mir jemand sagen, ob ich noch was spezielles beachten muss? Kennt sich jemand damit aus?

Ich danke euch im Voraus! :slight_smile:

Gruß und Danke Lukas

Dein geschriebenes Programm funktioniert auch auf anderen Plattformen nicht. Dein Fehler ist, dass du fälschlicherweise statt der Funktion raw_input die Funktion input verwendest. Das Problem mit der input Funktion ist, dass sie das Eingegebene als Python Ausdruck interpretiert und eben nicht, wie du es erwartest das Eingegebene zurückgibt.

Noch ein Tipp: Schau dir vielleicht die Style Guide von Python an. Die ist praktisch, wenn du mit anderen an einem Python Code arbeiten willst.

PS: random brauchst du nicht importieren; du hast keine einzige Funktion von random benutzt.

Hallöle,

stimmt, das Randomelement in dem Programm hatte ich entfernt, kann den Import rausnehmen.
Ich habs nun so geschrieben:

geraten = False
Zahl = 50
while not geraten:
  Antwort = raw_input("{} ?".format(Zahl))
  if Antwort == "k":
    Zahl = Zahl + 1
  elif Antwort == "g":
    Zahl = Zahl - 1
  else:
    geraten = True

Ich hab das wie gesagt bei einem Onlinekursanbieter (OpenHPI) so gelernt und bei denen in der Onlineumgebung ging das allein mit Import perfekt.
Und wenn ich das jetzt mit raw_input mache, dann kommt aber weiter die Fehlermeldung hier:

50 ?Traceback (most recent call last):
File „/Users/myusername/Desktop/Test.py“, line 4, in
Antwort = raw_input(„{} ?“.format(Zahl))
EOFError: EOF when reading a line
[Finished in 0.0s with exit code 1]

Hat das etwas mit meinem Modul auf dem Mac-Rechner zu tun oder ist mir da falsche Pythoncodetechnik vermittelt worden?

Um mal ein zweites Beispiel zu zeigen:
Eine Aufgabe in dem Kurs war:

Schreibe ein Programm, bei dem die Schildkröte vor der Maus davonläuft.

Bei jedem Mausklick soll das Programm prüfen, ob der Click in der Nähe der Schildkröte war (±10 Einheiten für x und y). Falls ja, soll die Schildkröte an eine zufällige andere Position laufen.

Mein 100% Funktionierender Quellcode in der Onlineplattform ist:

from turtle import *
from random import *

def linie(x,y):
    xS, yS = pos()
    if abs(xS-x)<=10 and abs(yS-y)<=10:
        goto(randint(-150,150),randint(-150,150))

onclick(linie)

mainloop()

Das scheint nun tatsächlich auch in dem Fenster auf dem Rechner zu funktionieren.

Frage nebenbei: Bei dem, was ich so erzählt habe, muss ich noch irgendwas beachten? Am besten wäre eigentlich, ich suche mir eine Eclipse-Erweiterung für Python, sollte es im Netz ja hoffentlich geben.

Zum geposteten Style Guide: Klar, danke, schau ich mir an. Wenn meine Programme dann laufen, kann ich mich um seriöse Codegestaltung kümmern. :wink:

Schöne Grüße
Lukas

Ich glaube, ich weiß, was dein Fehler ist. Anscheinend hast du auf dem Mac Python 2.7 installiert, aber der Online-Kurs ist erst für 3.x gemacht. Mach mal ein Update für deine Python-Version, dann könnte dein voriges Beispiel auch funktionieren.

Hallo und danke für Deine Antwort,

das ist recht interessant:
Wenn ich im Terminal meine Python-Version überprüfe:

python --version
Python 2.7.10

Wenn ich dann aber in diesem mitinstallierten Python Launcher nachsehe steht da, Python 3.5.1. ist installiert.
Hast Du eine Ahnung, ob da irgendwas falsch eingestellt ist und wie man das behebt?

Ich hab von der Webseite übrigens auch die 3.5.1 gerade gestern gedownloadet. Davor gab es nie Python auf dem PC.

Auf dem Mac ist Homebrew fuer solche und viele andere Sachen ein (fast) muss :slight_smile:
How to Install Python 3 and PyDev on OSX

Nachtrag: Sublime gibt es schon in Verison 3: Sublime Text - Download

[QUOTE=FranzFerdinand]Hallo und danke für Deine Antwort,

das ist recht interessant:
Wenn ich im Terminal meine Python-Version überprüfe:

Wenn ich dann aber in diesem mitinstallierten Python Launcher nachsehe steht da, Python 3.5.1. ist installiert.
Hast Du eine Ahnung, ob da irgendwas falsch eingestellt ist und wie man das behebt?

Ich hab von der Webseite übrigens auch die 3.5.1 gerade gestern gedownloadet. Davor gab es nie Python auf dem PC.[/QUOTE]

Falsch. Apple liefert auf den Macs eine Python 2.7 Installation standardmäßig mit.

Also du hast jedenfalls die 3er Version installiert. Versuche mal python3 oder python3.5 ins Terminal einzutippen. Vielleicht funktioniert es.

*** Edit ***

Btw. Wenn es nicht funktioniert sollte man die Environmentvariablen anpassen.

Hallo,

erst einmal danke ich euch beiden für eure Antworten.

Homebrew hab ich mir installiert, das scheint mir auf den ersten Blick recht interessant und nützlich zu sein.

Eine Sache habe ich herausgefunden: Die Konsole unterscheidet tatsächlich zwischen „python“ (2) und „python3“, wenn ich also das hier in die Konsole eingebe, kommen die entsprechenden Ausgaben:

iMac:~ myusername$ python --version
Python 2.7.10
iMac:~ myusername $ python3 --version
Python 3.5.1

Ich habe in Eclipse dann noch (nachdem ich ein Tutorial gefunden habe) python3 als Ausführungsumgebung hinzugefügt, da war in der Tat nur Python2.7 vorgeben, was dann wohl zu den Konflikten die ich nannte geführt hat.

aktuell denke ich, funktioniert alles.

Vielen Dank euch! Gruß Lukas