2016-11-14 43 views
-1
name = raw_input("Insert Name: ") 

    typedname = "Brock", "brock" 

    name == typedname 

    if name != "Brock" "brock": 
     print "Access Denied" 

每當我運行代碼時,我的訪問被拒絕。
是什麼導致這個錯誤,我該如何糾正它?在初學者名稱程序中的錯誤答案,Python

+0

你是怎麼運行這個腳本的?從命令行? – sa77

+0

'name == typename'是一個無操作,因爲它是一個比較,請嘗試'name = typename'。由於逗號,'typename'是一個元組,因此'name'也是一個元組。但是在比較中,您沒有逗號,所以您將元組與字符串進行比較。 – cdarke

+0

@ sa77我現在使用repl.it –

回答

0

您使用

name == typedname 

但你的意圖是分配,不比較。使用=代替==

name = typedname 

但它仍然是邏輯錯誤(它重寫從用戶的答案),所以不要使用它 - 簡單省略此命令

的另一個問題是在命令

if name != "Brock" "brock": 

你可能想

if name not in typedname: 
+0

謝謝。如果名稱匹配,我使用你之前提到的else語句來讀「Welcome Brock」。 –

0

注意"Brock", "brock""Brock" "brock"是不一樣的東西。

"Brock", "brock"是包含兩個字符串的元組,而"Brock" "brock"是單個字符串("Brockbrock")。由空格分隔的文字字符串在讀取時連接在一起。 這就是爲什麼

if name not in typedname: 

爲(顯然)你想要的。

+0

如果僅由空白分隔的文字串被連接在一起,則「布洛克」「布洛克」應該變成「布洛克布洛克」,而不是「布洛克洛克」。 – Ukimiku

+0

修正了,謝謝。 – cco

0

這是我在閱讀一些答覆後發現的源代碼。 主要問題是我使用「!=」而不是「如果名稱不在」中,我也忽略了else語句,但我知道這一點。我正在採取一些小步驟來看看我最終能夠走到哪裏。

name = raw_input("Insert Name: ") 

    typedname = "Brock", "brock" 


    if name not in typedname: 
     print "Access Denied" 
    else: 
     print "Welcome Brock" 
+0

你應該接受他們的答案。無論如何,這種方式也是如此。 –