python if语句总是false

时间:2015-11-13 17:05:00

标签: python-2.7 if-statement

我遇到if语句总是返回false的问题。我在Canopy中编写代码。我几乎是肯定的,这是我的语法,因为我用“> 200”替换了“is'graj mahal'”,输入值为300,它返回“听起来很棒!”。以下是我的代码的摘录:

answer = str(raw_input("What do you want for dinner?"))
if answer is "graj mahal":
    print ("Sounds great!")
else: 
    print ("Ewie")
print ("the end")

有什么建议吗?谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

OP的代码不起作用的原因是他正在检查两个相等字符串的身份,即使相同,也不会被认为是同一个对象。

在某些情况下,解释器可以缓存字符串值(这称为字符串“interning”),但并非总是如此,并且仅用于短字符串。

在Python中正确区分身份和平等的概念非常重要。相同的对象位于内存中的相同地址。 __eq__的返回值会考虑相等的对象。

答案 1 :(得分:-2)

#content语句中,您必须使用

  • if代表“等于”
  • ==表示“大于或等于”
  • >=表示“小于或等于”
  • <=表示“不等于”
  • !=代表“大于”,
  • >代表“小于”