代码运行。但出于某种原因,当我被提示进入Sam时,我会回来“你的名字不是Sam。”
name = ["Sam"]
print ("What is your name?")
name_choice = input("Type Here: ")
if name == "Sam":
print ("Your name is Sam")
else:
print ("Your name isn't Sam")
我在使用Python 3.2。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:3)
用户输入位于变量name_choice
中,但您将name
与“Sam”进行比较(因此用户输入从不使用)。
您还要将字符串与列表进行比较,这将始终为False
In [32]: name = ['Sam']
In [33]: 'Sam' == name
Out[33]: False
使程序始终显示“您的名字不是Sam”,无论用户输入了什么。
if name_choice == 'Sam':
print ("Your name is Sam")
else:
print ("Your name isn't Sam")
可能就是你想做的事情
答案 1 :(得分:2)
好的,我会咬人,这是一个稍微好一点的问题。你有两个主要问题。
"Sam"
的列表?这意味着什么?name_choice
,该变量永远不会被使用。我不确定你的思维过程是什么 - 我认为它显示出非常明显缺乏对该语言的基本知识,我建议阅读a tutorial。
值得注意的是,打印用户提示符然后使用"Type Here:"
的实际提示是没有意义的。
答案 2 :(得分:1)
这是因为name == ["Sam"]
(您将其设置为与第一行中的相等)和"Sam" != ["Sam"]
。您正在尝试将列表与字符串进行比较。
此外,您可能想要if name_choice == "Sam"
。
答案 3 :(得分:0)
我认为你应该在这里使用name_choice
而不是name
if name == "Sam":
print ("Your name is Sam")
无论如何,name
变量意味着什么?
当发生类似情况时,提示是在if
例如
print ("name ==", name)
if name == "Sam":
print ("Your name is Sam")
这样就可以明显地将列表与字符串进行比较
答案 4 :(得分:0)
首先,不确定这是否是故意的,name = ["Sam"]
创建一个字符串元素"Sam"
的列表,它与字符串"Sam"
然后将此列表与单个字符串进行比较,而不是将输入的值与字符串(或列表中的元素)进行比较