2015-12-19 135 views
0

執行一個功能我有以下腳本有一點小毛病,它使用中它的功能:在Python

def my_function(arg1, arg2, arg3): 
    print("I love listening to %s" %(arg1)) 
    print("It is normally played at %d BPM" %(arg2)) 
    print("I also like listening to %s" %(arg3)) 
    print("Dat be da bomb playa!") 

print("What music do you like listening to?") 
ans1 = input(">>") 

print("What speed is that usually played at?") 
ans2 = input(">>") 

print("whats your second favourite genre of music?") 
ans3 = input(">>") 

my_function(ans1, ans2, ans3) 

我得到第一用戶輸入:什麼樣的音樂你喜歡聽什麼?當我在「家」中鍵入並按下回車鍵,我期待着第二個問題被顯示,但我得到了以下錯誤消息:

Traceback (most recent call last): 
File "ex19_MyFunction.py", line 26, in <module> ans1 = input(">>") 
File "<string>", line 1, in <module> 
NameError: name 'house' is not defined** 

任何幫助,將不勝感激!

回答

1

如果您使用Python2,然後使用raw_input(),因爲input()嘗試解析文本爲python代碼,您會收到錯誤。

+0

謝謝furas。那就是訣竅。 – SnakeInTheGrass

+0

但是我有第二個問題......它涉及到函數第二個參數「print(」它通常在%d BPM「%(arg2))'中播放....當用戶被問到:」print( 「通常在什麼速度?」),輸入是'int'格式,所以我知道爲什麼會出現錯誤(我認爲),因爲%d是一個字符串格式化程序....什麼是正確的代碼寫入,以便參數接受來自用戶的'int'輸入? – SnakeInTheGrass

+0

對不起老兄 - 忽略我。我想出了......我用%s代替了%d,它工作正常! – SnakeInTheGrass

1

你的腳本在Python3中運行得很好,所以我假設你使用的是Python2。將input更改爲raw_input

在Python2中,raw_input會將輸入轉換爲字符串,而input('foo')相當於eval(raw_input('foo'))