Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
input ("Druecken Sie eine beliebige Taste, um dieses Fenster zu schließen bzw. um das Programm zu beenden...")
op = None
z1 = None
z2 = None
erg = None
Traceback (most recent call last):
File ".../taschenrechner.py", line 61, in <module>
input ("Druecken Sie eine beliebige Taste, um dieses Fenster zu schließen bzw. um das Programm zu beenden...")
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
Wieso parst der denn da noch? Was muss ich machen, damit er aufhört zu parsern? Danke für die Hilfe!
@Dreiunddreißig: Die Eingabe die bei `input()` gemacht wird, muss ein gültiger Python-Ausdruck sein, der einen Wert ergibt. Einfach nur die Eingabetaste zu drücken ist nicht genug. Das ist eben kein Wert.
Aber `input()` sollte man in Python <3 sowieso vermeiden und stattdessen besser `raw_input()` verwenden.
Allerdings nicht im die Konsole offen zu halten. Wenn man nicht will dass die sich schliesst, sollte man das Programm in der Konsole starten, dann bleibt die auch offen.
Und was sollen die Zuweisungen von `None` bewirken?
Wird durch die Zuweisung von None nicht die Variable gelöscht, also aus dem Arbeitsspeicher entfernt? Ich nutze Python 2.7, was ist denn der Unterschied zwischen raw_input und input?
@Dreiunddreißig: Variablen muss man nicht explizit "löschen" -- man kann es sogar nicht einmal. Wenn man einem Namen `None` zuweist, dann kann es vielleicht sein, dass Python den Speicher des Objekts freigibt, das vorher an den Namen gebunden war, das muss aber nicht sein. Das ist also überflüssiger Quelltext und Du verschwendest unnötig Gedanken. Das ist bei automatischer Speicherverwaltung nur in seltenen Ausnahmefällen nötig. Das Programmende ist sicher keiner dieser Ausnahmefälle.
Im Grunde habe ich es doch schon geschrieben: `input()` erwartet einen Python-Ausdruck als Eingabe, der zu einem Wert ausgewertet wird. Also zum Beispiel eine Zahl, oder eine literale Zeichenkette oder auch beliebig komplexe Ausdrücke mit Funktionsaufrufen und Operationen. Das kann zum einen zu Sicherheitslücken führen, weil der Benutzer nahezu beliebigen Quelltext im Kontext des Programms ausführen kann, und zum anderen können dabei auch so ziemlich alle Fehler auftreten, die man auch bei einem Programm haben kann. Von Syntax-Problemen bis zu Laufzeitfehlern. `raw_input()` gibt einfach nur die Zeichen zurück, die der Benutzer eingegeben hat, ohne die irgendwie zu interpretieren. Das hätte man aber auch in der Dokumentation nachlesen können.
Dreiunddreißig hat geschrieben:Wird durch die Zuweisung von None nicht die Variable gelöscht, also aus dem Arbeitsspeicher entfernt? Ich nutze Python 2.7, was ist denn der Unterschied zwischen raw_input und input?
@Dreiunddreißig wenn du die variablen löschen willst geht das so:
a=1
print a
a
a=None
print a
a
del a
print a # oder
a
Und deine frage was es mit raw_input() und input() aufsich hat will ich dir auch noch beantworten. Ab Python 3000 (3.0) gibt es kein raw_input() mehr sonder input() (Und es hat sich sonst auch noch einiges geändet ...)
Zuletzt geändert von Py-Prog am Dienstag 20. Juli 2010, 15:17, insgesamt 1-mal geändert.
Technik ist: wenn alles funktioniert und keiner weiß warum. Wer Rechtschreibfehler findet darf sie behalten.
@BlackJack ich bin auf Python 3.1 umgestiegen und sowas pasiert deshalb bei mir leider öffters.
Aber irgendwie ist es bescheuert das man jetzt print() schreiben muss und nicht pirnt aber nicht del() sondern del. Das ist doch verwierend.
Technik ist: wenn alles funktioniert und keiner weiß warum. Wer Rechtschreibfehler findet darf sie behalten.
Naja, weil ``print`` semantisch eine Funktion ist und ``del`` semantisch ein Keyword ist, also sich nicht wie eine Funktion verhält und man auch keine Funktion implementieren kann, die die Semantik von ``del`` hat.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Py-Prog hat geschrieben:Wieso geht das nicht in der CMD geht das ja auch? :K
Weil es noch Systeme außerhalb der Windows-Welt gibt, die das eben nicht verstehen und von einem nicht unwesentlichen Teil der Python-Anwender genutzt werden. Python ist nun mal eine Sprache, die auch viel (wenn nicht sogar: vor allem) im unixoiden Umfeld verwendet wird.