不比较相等的`a == aa`虽然打印时输出相等

时间:2018-04-28 09:45:07

标签: python python-2.7

我正在使用python 2.7。我想匹配两个值

我的代码类似于

a=field [0] ["inv"] ##This is json calling
aa=purchase [11] [0]   
print type(a)
print a
print type(aa)
print aa
if aa==a:
   print "same"
else:
   print "Not same"

当我执行代码时,我得到了输出

<type 'str'>
28
<type 'str'>
28
Not same

为什么我得到这个输出。我有匹配的值。但为什么我得到的输出为not same

这背后的问题是什么?

1 个答案:

答案 0 :(得分:1)

嗯..有characters that do not show up when printed (whitespace)并且在你的上一次&#34;正常&#34;之后字符:' ''\r' '\t' '\n'和其他人。

检查

if len(aa) != len(a):
    print "Invisible characters - length different" 
    print "'{}' vs '{}'".format(aa,a) 

使用rstrip() (doku-link)删除不需要的空格

if aa.rstrip()==a.rstrip():   # avoid "a" vs "a    " comparing to not equal
    print "same"
else:
    print "Not same"

帮助。

这样做也有助于:How to debug small programs (#1)

<强>演示

a  = "ff   "  # 'invisible' difference
aa = "ff"
print type(a)
print a
print type(aa)
print aa

if len(aa) != len(a):
    print "Invisible characters - length different" 
    print "'{}' vs '{}'".format(aa,a)

if aa.rstrip()==a.rstrip():
   print "same"
else:
   print "Not same"

输出:

<type 'str'>
ff   
<type 'str'>
ff
Invisible characters - length different
'ff' vs 'ff   ' 
same