Also Leute ich hab ma ne Frage zu dem Befehl input.Und zwar würd ich gern einen ersten einfachen Taschenrechner programieren und dafür muss der Input +, -, /, * annehmen aber dass tut er nicht.
außerdem würd ich gern wissen wie man mit dem if Befehl beispielsweise machen kann, dass er wenn z.b. + eingetippt wurde zahl1 + zahl 2 gerechnet wird.
Ich bin noch relativ neu in Python also bin ich für jede Hilfe dankbar.
LG: Nic985.
erster Taschenrechner brauche Hilfe bitte
"Tut nicht" ist keine Fehlerbeschreibung mit der man etwas anfangen könnte.Nic985 hat geschrieben:Also Leute ich hab ma ne Frage zu dem Befehl input.Und zwar würd ich gern einen ersten einfachen Taschenrechner programieren und dafür muss der Input +, -, /, * annehmen aber dass tut er nicht.
Ich rate mal. Du verwendest Python 2.x und bekommst einen Syntax Error. Das liegt in dem Fall daran, dass Python versucht, den eingegebenen Wert als Python-Code zu interpretieren und auszuführen. Da man sich damit eine riesige Sicherheitslücke ins Programm reißt verwendet man den Befehl unter Python 2 eigentlich nicht. Abgesehen davon ist die Eingabe eines Pluszeichens natürlich auch nichts, was input passend verarbeiten könnte. Verwende raw_input stattdessen.
Mit Python2 musst Du raw_input() verwenden fuer den string s. Mit Python3 ist es input() ...
Code: Alles auswählen
s = "7+2"
print( eval(s) ) # gibt 9
Atomkraftwerkaktienbesitzer
@Ene Uran: Wenn man eval verwendet, dann kann man unter Python 2 auch gleich input benutzen. Das läuft aufs selbe hinaus. Eigentlich will man unter Python 2 aber nie input verwenden und in keiner Python-Version eval. Damit lassen sich beliebige Ausdrücke auswerten, was riesige Löcher ins Programm reißen kann. Sowohl aus der Sicht der Sicherheit, als auch aus der Sicht der Fehlerfreiheit. Immerhin operiert eval mit allen Rechten des gestarteten Programms und im Namesraum des eval-Aufrufs. Es wird also Tür und Tor für absichtliche und unabsichtliche Manipulation geöffnet.
Wenn man also einen String auswerten muss, dann muss man sich auch einen Parser dazu schreiben. Oder, wie in diesem Fall, das ast-Modul verwenden. Dies besitzt eine Funktion zur sicheren Auswertung von Ausdrücken.
Wenn man also einen String auswerten muss, dann muss man sich auch einen Parser dazu schreiben. Oder, wie in diesem Fall, das ast-Modul verwenden. Dies besitzt eine Funktion zur sicheren Auswertung von Ausdrücken.
Das Leben ist wie ein Tennisball.
Ausserdem hat man mit `eval()` eigentlich überhaupt nichts selber programmiert. Das macht hier absolut keinen Sinn, da kann man auch gleich einfach die Python-Shell aufrufen wenn man einen Taschenrechner haben möchte. Ein Anfänger lernt dabei nichts, ausser eine Funktion kennen, die man nicht verwenden sollte. Das ist also eher schädlich als nützlich.
bei mir kommt des raus kann pls einer die Stelle kopieren und richtig zurückschicken ich kann das nähmlich net.
Code: Alles auswählen
[/C:\Python34\APython\Taschenrechner]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Sorry, ich habe keinen Pfad der mit C:\ anfängt…
Generell ist es aber auch keine gute Idee, in den Ordner der Python-Installation Dateien reinzuschreiben. Dafür gibt es Benutzerverzeichnisse.
Generell ist es aber auch keine gute Idee, in den Ordner der Python-Installation Dateien reinzuschreiben. Dafür gibt es Benutzerverzeichnisse.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
[quote="Nic985"]bei mir kommt des raus kann pls einer die Stelle kopieren und richtig zurückschicken ich kann das nähmlich net.
Code: Alles auswählen
[/C:\Python34\APython\Taschenrechner][/quote]
Du kannst den Code nicht kopieren um ihn hier einzufügen? Wie kommt das denn?
Mal abgesehen davon solltest du deine Dateien nicht im Python-Ordner ablegen.