2012-04-07 5 views
0

Also schreibe ich ein differentielles Taschenrechnerprogramm in Python 2.4 (Ich weiß, dass es veraltet ist, es ist eine Schulaufgabe und unser Systemadministrator glaubt nicht an Updates) das akzeptiert eine Benutzereingabe in Präfixnotation (dh Eingabe = [+ - * x^2 2x 3x^2 x], entspricht x^2 + 2x - 3x^2 * x) und berechnet die Differenz.Benutzereingaben in Python 2.4 lesen, in eine Warteschlange stellen

Ich versuche, eine Möglichkeit zu finden, die Benutzereingabe der Befehlszeile zu lesen und die mathematischen Operatoren in eine Warteschlange zu setzen, aber ich kann es nicht herausfinden! anscheinend funktionieren die Befehle X = input() und x = raw_input() nicht, und ich kann wörtlich eine Dokumentation darüber finden, wie man Benutzereingaben in Python 2.4 liest. Meine Frage ist: Wie lese ich Benutzereingaben in Python 2.4 ein und wie lege ich diese Eingabe in eine Warteschlange? Hier ist, was ich versuche:

1 formula = input("Enter Formula:") 
2 
3 operatorQueue=[] 
4 
5 int i = len(formula) 
6 
7 for x in formula: 
8  if formula[x] == '*', '+', '-', '/': 
9   operatorQueue.append(formula[x]) 
0 
11 print "operator A:", operatorQueue.pop(0) 
12 

Was nicht funktioniert (ich immer Fehler immer wie „Druck: Befehl nicht gefunden“ und „Formel: Befehl nicht gefunden“)

Jede Hilfe würde geschätzt

Antwort

1

@Miku bereits mit diesem Ihre erste Problem beantwortet, aber ich dachte, ich würde etwas mehr hinzufügen.

Die Zeile "sh-bang" wird von Befehlszeilenskripten benötigt, damit der richtige Prozess verwendet wird, um die Sprache zu interpretieren, sei es bash, perl, python, etc. Also in Ihrem Fall würden Sie benötigen: /usr/bin/env python

Das sagte, sobald Sie es laufen, werden Sie ein paar andere Probleme treffen. raw_input sollte anstelle von input verwendet werden, da es Ihnen eine rohe Zeichenfolge zurückgibt. input wird versuchen, Ihre Zeichenfolge auszuwerten, die Ihnen wahrscheinlich Probleme bereiten wird.

Möglicherweise müssen Sie die Python-Syntax ein wenig mehr überprüfen. Zuweisungen in Python erfordern nicht, dass Sie den Variablentyp deklarieren: int a = 1. Es ist dynamisch und der Compiler wird es für Sie handhaben.

Sie müssen auch überprüfen, wie Sie Ihre if elif else Tests ordnungsgemäß mit den Fällen Ihrer Formel behandeln. Das funktioniert auch nicht alles auf einer Linie mit mehreren Parametern.

1

Wenn Sie auf einem Unix-ish-Plattform sind, setzen Sie ein

#!/usr/bin/env python 

auf top of your program. Die Shell scheint nicht zu erkennen, dass Sie ein Python-Skript ausführen.

+1

Und auch nicht Eingang verwenden. Verwenden Sie stattdessen raw_input. – jdi

Verwandte Themen