我遇到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")
有什么建议吗?谢谢你的帮助。
答案 0 :(得分:0)
OP的代码不起作用的原因是他正在检查两个相等字符串的身份,即使相同,也不会被认为是同一个对象。
在某些情况下,解释器可以缓存字符串值(这称为字符串“interning”),但并非总是如此,并且仅用于短字符串。
在Python中正确区分身份和平等的概念非常重要。相同的对象位于内存中的相同地址。 __eq__
的返回值会考虑相等的对象。
答案 1 :(得分:-2)
在#content
语句中,您必须使用
if
代表“等于”==
表示“大于或等于”>=
表示“小于或等于”<=
表示“不等于”!=
代表“大于”,>
代表“小于”