2016-01-30 59 views
-3

類型錯誤試圖在Python

question = str(input("What is",randomNumber1,"+",randomNumber2,"x",randomNumber3,"?\n")) 

在我的代碼是給我麻煩創建一個數學測驗。

這是我的錯誤:

question = str(input("What is",randomNumber1,"+",randomNumber2,"x",randomNumber3,"?\n")) 
TypeError: input expected at most 1 arguments, got 7 

如果你能幫助它,將不勝感激,因爲我不知道我做錯了事情。

+0

謝謝您的回答,我有點新手到Python,需要一些幫助。再次感謝! –

+0

我正在使用Python3 –

回答

0

就像輸出已經說過。

question = str(input("What is"+randomNumber1+"+"+randomNumber2+"x"+randomNumber3+"?\n")) 
+0

另外,假設OP使用Python2,使用'raw_input(prompt)'而不是'str(input(prompt))'。 – timgeb

1

您在括號中使用,作爲字符串。所以Python認爲,這些是被調用函數的參數。您需要將您的字符串附加在一起(如前所述,通過+)。

此外,你應該考慮在Python2 raw_input,因爲輸入被解釋爲Python代碼:look here

0

你的Python 3?如果你是Python 2,那麼你應該使用raw_input()而不是input()。如果您使用的是Python 3,那麼請嘗試使用該標籤(大多數人會認爲「Python」代表Python 2)。

input()raw_input()都返回字符串(不需要強制它),並且它們只接受一個參數,如錯誤消息所述。你的正確答案的比較使用不同的類型,你正在比較一個字符串與一個int。

最好先構建的問題作爲一個字符串:

question = "What is %d + %d x %d? " % (randomNumber1,randomNumber2,randomNumber3) 

users_answer = input(question) 

answer = randomNumber1 + randomNumber2 * randomNumber3 

# users_answer and answer are different types 
if int(users_answer) == answer: 
    print("\n[ Correct ]\n") 
    playerScore = playerScore + 1 
    print("Your score is",playerScore) 
    questionNumber = questionNumber + 1 

else: 
    print("\n[ Incorrect ]\n") 
    questionNumber = questionNumber + 1 
+1

普通的python標籤涵蓋了Python 2和Python 3.所有的Python問題應該使用普通的python標籤,但是適當的時候也應該給出特定於版本的標籤。當然,當他們需要提及版本時,新的Python編碼人員可能沒有意識到。 :) FWIW,在[SO Python聊天室](http://chat.stackoverflow.com/rooms/6/python)中,當前的策略是如果沒有提到版本,則假定Python 3。 –

+0

@ PM2Ring:這很好理解,但從回覆(使用input())來判斷這個特定的問題,其他人也做了這個假設。 – cdarke

+1

是的,我注意到其他人正在做出這樣的假設,我只是想你的回答是一個合理的地方來發表我的評論。 FWIW,在我的Python 2.6.6系統中,我得到的錯誤信息是'TypeError:[raw_] input',期望最多1個參數,得到7'。奇怪的是,'input' /'raw_input'可以作爲prompt參數傳遞一個元組(或任何其他對象),並且將調用它的'__str__'方法將其轉換爲字符串。 –

0

您正在使用,同時調用該函數input()。因此,python將其解釋爲7個不同的參數。

我想,下面的代碼將做你所需要的。

question = str(input("What is " + str(randomNumber1) + " + " + str(randomNumber2) + " x " + str(randomNumber3) + " ?\n")) 

待辦事項,這將存儲用戶的變量question提供作爲一個字符串的答案。

如果您需要接受整數(數字)的答案,請改爲使用以下代碼。

question = input("What is " + str(randomNumber1) + " + " + str(randomNumber2) + " x " + str(randomNumber3) + " ?\n")