比较Python 2.7中的两个字符串

时间:2017-04-30 16:05:17

标签: python

我有两个我比较的字符串,但我没有得到我想要的结果。我是这样做的,使用Python 2.7:

str1 = '0000644'
str2 = '0000644'

if str1 == str2:
    print 'true!'
else:
    print 'false'

我也尝试过is比较:

if str1 is str2:
    print 'true'
else:
    print 'false'

有人可以解释为什么我这样做时打印不正确吗?我来自C#,如果你这样做,你应该打印真正的价值。

3 个答案:

答案 0 :(得分:3)

您发布的代码不是有效的Python。

这样做:

str1 = '0000644'
str2 = '0000644'

if str1 == str2:
  print True
else:
  print False

详细说明:

  • 布尔值以大写字母开头:TrueFalse(不确定为什么会有感叹号)
  • 块需要始终缩进(与C#不同,用{}分隔它们)
  • else需要以冒号结束

编辑:我的回答是基于OP的原始代码,这不是有效的Python。如果有人在之后将代码更改为有效代码,我将无法提供帮助。

答案 1 :(得分:0)

如果两个变量指向同一个对象,{p> is将返回True,如果变量引用的对象相等,则返回==

>>> a = [17,27,37]
>>> b = a
>>> b is a 
True
>>> b == a
True
>>> b = a[:] #shallow copy of a
>>> b is a
False
>>> b == a
True

答案 2 :(得分:-2)

在Python中,' true'并且' false'布尔值需要在' T'和' F'分别。此外,在打印时,无论您想要打印什么,都需要用双引号或单引号括起来。

相关问题