2012-09-10 79 views
0

你好我是新來的Python和一般的編程(!剛開始,昨晚),我已經寫了一個小程序,多數民衆贊成粘貼下面:別樣不受支持的操作問題(蟒蛇3)

name = str(input("please state your name: ")) 
print ("Welcome %s, your doomesday weapon of impolite mutant pigeons is ready for launch") %name 

但是這樣下去返回此錯誤:

回溯(最近通話最後一個):在打印(文件「prog.py」,第2行,「歡迎%s,不禮貌的突變鴿子你doomesday武器是準備發射」 )%name TypeError:%:'NoneType'和'str'的不受支持的操作數類型

現在我知道這種問題的通常答案是將我的輸入從一個字符串轉換爲一個整數,並調整使用的操作數類型以匹配。然而,在這種情況下,我真的想要使用字符串形式的輸入,所以問題在?

P.S我正在使用Ideone.com編譯此代碼。

+0

'print()'必須包含要打印的整個字符串。 – 2012-09-27 15:51:00

回答

0

字符串格式%需要進入(); print函數返回None,並且您試圖格式化結果。

假設你使用Python 3,你最初的str()也是不必要的; input()返回一個字符串。 (如果你使用的是Python 2,你應該使用raw_input()代替input(),這也返回一個字符串。)

+0

謝謝你好,先生!你的修改解決了我的程序。我會投你一票,但我沒有足夠的聲望點:P。 – RationalMystic

1
... launch" %name) 

,而不是

... launch") %name 
0

有兩個部分對這個問題:

name = "andy" 
print "Welcome %s, your doomesday weapon of impolite mutant pigeons is ready for launch" %name 

如果這個工作正常(那麼你使用的是Python 2),如果它不是它在Python 3中,你需要將括號內的打印語句括起來,並且會得到一個SyntaxError

name = "andy" 
print ("Welcome %s, your doomesday weapon of impolite mutant pigeons is ready for launch" %name) 

第二是Ideone.com不接受用戶輸入,因此該字符串name保留爲無(其不是字符串)這解釋了TypeError

name = None 
print ("Welcome %s, your doomesday weapon of impolite mutant pigeons is ready for launch" % name) 
+0

那麼該程序的作品,但現在我遇到了另一個問題。出於某種原因,當我做出以下聲明:如果名稱==「約翰」,我收到一個錯誤,說我的語法無效。如果你可以提供一個解決方案,加上負面版本(名稱!=「John」),這將是非常感謝。 – RationalMystic

+0

@RationalMystic難道這是因爲你在行尾沒有':'? (如果沒有完整的代碼,很難看到)。你應該看看Python教程,例如潛入Python。此外,你應該upvote並接受有用的答案:)。 –

+0

大聲笑我知道你想說什麼,但我沒有足夠的聲望點來實際上讓人們注意。如果我可以的話我會。 – RationalMystic