代码运行。但是由于某种原因,当我被提示输入 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。任何帮助,将不胜感激。谢谢!
代码运行。但是由于某种原因,当我被提示输入 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。任何帮助,将不胜感激。谢谢!
用户输入位于 variable 中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")
可能是你想做的
好的,我会咬一口,这是一个稍微好一点的问题。您在这里有两个主要问题。
"Sam"
?这是为了达到什么目的?name_choice
,该变量永远不会被使用。我不太确定你的思维过程是什么——我认为这表明非常明显缺乏该语言的基本知识,我建议阅读教程。
还值得注意的是,打印用户提示,然后将实际提示用于"Type Here:"
.
这是因为name == ["Sam"]
(您将其设置为与第一行中的相同)并且"Sam" != ["Sam"]
. 您正在尝试将列表与字符串进行比较。
另外,您可能想要做if name_choice == "Sam"
.
我认为你应该在name_choice
这里使用而不是name
if name == "Sam":
print ("Your name is Sam")
无论如何,变量的含义是什么name
?
当发生这种情况时,一个很好的提示是在if
例如
print ("name ==", name)
if name == "Sam":
print ("Your name is Sam")
这将表明您正在将列表与字符串进行比较
首先,不确定这是否是故意的),name = ["Sam"]
创建一个包含一个字符串元素的列表"Sam"
,这与字符串不同"Sam"
然后将此列表与单个字符串进行比较,而不是将输入的值与字符串(或者可能是列表的元素)进行比较