2012-04-07 76 views
0

因此,我正在Python 2.4中編寫一個差分計算器程序(我知道它已經過時了,這是一個學校任務,我們的系統管理員不相信更新任何東西)接受以前綴符號(即輸入= [+ - * x^2 2x 3x^2 x],等同於x^2 + 2x - 3x^2 * x)的用戶輸入並計算差分。在Python 2.4中讀取用戶輸入,將它放入隊列

我試圖找到一種方法來讀取命令行用戶輸入並將數學運算符放入一個隊列,但我無法弄清楚它!顯然,X = input()和x = raw_input()命令不起作用,並且我可以從python 2.4的文章中找到關於如何讀取用戶輸入的文字。我的問題是:如何在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

這就是說,一旦你得到它運行,你會遇到一些其他問題。應該使用raw_input而不是input,因爲它會給你一個原始字符串。 input將嘗試和評估你的字符串,這可能會給你帶來問題。

您可能需要更多地閱讀python語法。 python中的賦值不要求聲明變量類型:int a = 1。它是動態的,編譯器會爲你處理它。

此外,您需要檢查如何執行if elif else測試以正確處理您的配方案例。這也無法用多個參數在一行上完成。

1

如果你是在UNIX上下的平臺,把

#!/usr/bin/env python 

top of your program。 shell似乎並沒有意識到你正在運行一個python腳本。

+1

而且也不使用輸入。而是使用raw_input。 – jdi 2012-04-08 00:06:12