2014-12-05 32 views
1

我有一個.py腳本在TextWrangler中完美運行,但在嘗試導入終端或IDLE時不起作用。我不斷收到此錯誤信息:Python IDLE不會導入腳本(給出錯誤),但腳本從textwrangler工作正常

回溯(最近通話最後一個):

文件 「標準輸入」,1號線,在 「模塊」
文件 「c.py」,1號線
bookic08ic14x。 is32

我不知道這是什麼意思。在進行導入之前,我總是確保我處於正確的目錄中。

我的代碼如下所示:

def choice(): 
import random 
print "This program decides who has to do the job" 
n = input("How many people are there?:") 
people = [] 
for i in range (1, n+1): 
    subject = raw_input("Person %s:" % i) 
    people.append(subject) 
print random.choice(people) 

選擇()

此外,如果任何人有進行這項代碼更好的建議,我是持開放的態度!

回答

0

在定義函數之前,應先導入random模塊。

import random 
def choice(): 
    print ("This program decides who has to do the job") 
    n = input("How many people are there?:") 
    people = [] 
    while len(people)<int(n): 
     subject=input("Enter the names: ") 
     people.append(subject) 
    x=random.choice(people) 
    return x 
print (choice()) 

這是更好的,如果你不使用return在你的函數,那麼,無論你想,你不能使用你的函數。例如,通過這種方式,您可以使用.format方法的功能。 這個運行完美,我檢查。

+0

如果解決了您的問題,請檢查它是否正確。 – GLHF 2014-12-05 06:40:04

+0

非常感謝你!我只是將輸入更改爲while循環中的raw_input,這樣我就不會在IDLE中將每個名稱都變成一個字符串。 – 2014-12-05 13:10:07

+0

您必須使用2.x. 3.x輸入== 2.x raw_input。在某些情況下,將功能放入功能是適當的,但這樣做通常是純粹的浪費。 PEP 8和I在賦值語句中推薦'='周圍的空格(但函數調用中沒有arg = value的空格)。使代碼更易於閱讀。 – 2014-12-05 23:06:06

相關問題