2016-11-14 40 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

你应该接受他们的答案。无论如何,这种方式也是如此。 –