2012-04-07 8 views
0

私はPython 2.4で差分電卓プログラムを書いています(古いですが、それは学校の割り当てで、システム管理者は何も更新することを信じていません) x^2 + 2x - 3x^2 * xに相当する接頭辞表記(すなわち、input = [+ - * x^2 2x 3x^2 x])のユーザ入力を受け入れ、その差を計算する。Python 2.4でユーザ入力を読むと、それをキューに入れる

コマンドラインのユーザー入力を読み込んで数学演算子をキューに入れる方法を見つけようとしていますが、わかりません。明らかに、X = input()およびx = raw_input()コマンドは機能しません。Python 2.4でユーザ入力を読み込む方法については、文字通り0のドキュメントがあります。私の質問は:どのように私はPython 2.4でユーザー入力を読み込むのですか?そしてその入力をどのようにしてキューに入れるのですか?

動作していない
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 

を(私は「印刷:コマンドが見つかりません」というようになったエラー続ける:と「式:コマンドが見つかりません」)ここで私がしようとしていますものです

を任意の助けをいただければ幸いです

答えて

1

@mikuはすでにこれがあなたの最初の問題であると答えていますが、私はもう少し追加したいと思いました。

"sh-bang"行は、bash、perl、pythonなどの言語を解釈するために適切なプロセスが使用されるようにコマンドラインスクリプトで必要です。したがって、あなたの場合、あなたは次のものが必要になります:/usr/bin/env python

言われているように、いったんそれを稼働させると、他のいくつかの問題にぶつかります。生の文字列を返すのでinputの代わりにraw_inputを使用する必要があります。 inputはあなたの文字列を評価しようとします。これは主に問題を引き起こす可能性があります。

もう少しPythonの構文を見直す必要があるかもしれません。 Pythonの代入では、変数の型を宣言する必要はありません:int a = 1。それは動的でコンパイラはあなたのためにそれを処理します。

また、数式のケースを適切に処理するために、if elif elseテストを行う方法を確認する必要があります。それも、複数のパラメータで1行ですべてをやっても動作しません。

1

あなたはUNIXっぽいプラットフォームにしている場合は、top of your program

#!/usr/bin/env python 

を置きます。シェルはPythonスクリプトを実行していることを認識していないようです。

+1

また、入力を使用しないでください。代わりにraw_inputを使用してください。 – jdi

関連する問題