2012-10-05 54 views
1

我不確定函數是否是我正在尋找的單詞。事實上,我並不真正知道我在說什麼,但我有一些代碼,並沒有完全按照我的意願去做。基本上我想複製並粘貼我得到的這段代碼並通過電子郵件發送給某人。我希望他們能夠簡單地複製並粘貼到自己的終端,執行計算:Python中的單獨函數?

## SCSAC.py 

def round(x, base=5): 
    return int(base * round(float(x)/base)) 

option = 'yes' 
while (option == 'yes'): 
    x=float(raw_input('How many accumulated orders do you have from retailers: ')); 
    y=float(raw_input('How many units are in the inventory: ')); 
    z=float(raw_input('How many accumulated orders have you placed: ')); 
    print 'Place an order of %s units' % round(((x/25 + y/10 + z/25) + 115)); 
    print ; 
    option=raw_input("Do you wish to calculate another order? (Enter 'yes' to continue or any other key to quit):: "); 
    print 

每當我行線輸入這個代碼,它完美的作品。這是因爲這裏基本上有三種獨立的事情發生。

  1. 我定義「輪」,其舍入的值到最接近5

  2. 我定義一個選項,以循環完成時程序

  3. 我定義實際的程序,在這我圍繞答案結束並選擇循環。您可能會注意到不打印任何東西的2 print,但它們只有空白行。

當我複製並粘貼它時,出現語法錯誤。 我不是一個程序員,我一整天都在玩這個遊戲。我只是想知道如何編輯此代碼,以便它能夠複製/粘貼,並且可以按照它應有的方式運行。

+3

請包括您得到的確切語法錯誤,完整回溯。 –

+0

你需要做一個塊複製粘貼..你不能一次做所有的代碼..你會得到語法錯誤.. –

+0

我得到「SyntaxError:無效的語法」,它突出顯示「選項」。它會在第一個函數之後的第一個單詞,並考慮到語法錯誤。我想我將不得不包含複製和粘貼塊的指令 – 01110100

回答

0

嘗試使用IPython而不是shell中的常規Python解釋。使用IPython,您可以輸入%cpaste,然後粘貼一段代碼,它會一步步執行,將中間變量保存到工作內存中。

如果你堅持把它粘貼在普通翻譯器中,那麼一行一行地做,並特別注意縮進。縮進通常是粘貼語法錯誤的來源。

更好的是,使用Emacs。然後,您可以將粘貼的代碼保存到文件中,如test.py,鍵入M-x shell,然後python test.py以快速運行它。或者,如果您將其保存到test.py等文件中,則可以在IPython中鍵入%run "test.py",它將運行代碼並將中間變量存儲到工作內存中。

如果您在進行多次或多次更改之後複製/粘貼此內容,只需將其保存到文件並像腳本一樣運行即可。

+0

好吧,這聽起來天文愚蠢,但我一直在試圖找出如何將代碼保存爲腳本,然後運行該腳本?我如何將它保存爲腳本然後運行它? – 01110100

+0

@泰勒。保存'.py'的擴展名......然後在命令提示符下運行它,轉到保存它的文件夾,然後鍵入'python test.py' ...其中'test.py'是名稱你的檔案.. –

+0

沒關係。不要擔心,如果問題是基本的......它不*愚蠢,最好問問學習。使用Python它非常簡單。只需打開某種文本編輯器,然後在其中鍵入代碼(確保遵守Python中的縮進語法)。保存該文件(假設您將其保存爲「my_file.py」)。然後在命令提示符處輸入'python my_file.py'。希望你正在研究一臺Linux機器,否則你可能想看看Windows版的Cygwin shell。如果任何這種命令提示符的東西聽起來很難,只要搜索和/或提出關於它的另一個問題。 – ely

0

您可以將代碼保存在一個文件中,然後使用Python運行它。
您可以將#!/usr/bin/env python添加到文件的開頭,以便它可以在* nix系統上運行(如果您擁有執行權限)。

或者,您可以執行python SCSAC.py並運行您的代碼。這適用於所有系統(AFAIK)。您可以通過電子郵件將文件發送給您的人,並且她可以使用Python運行它。這似乎是最簡單的方法。