2012-03-07 28 views
16

Tamam, pes ediyorum.Dize eşitliği hatası. Ne verir?

message.dest = message.dest.strip() 
print type(message.dest) 
print message.dest 
if message.dest == 'UI': 
    print "Equal!" 
else: 
    print "Not Equal!" 

nasılsa benim çıkışı: Burada ne olup bittiğini üzerinde

<type 'str'> 
UI 
Not Equal! 

herhangi bir fikir Ben şu koddan alıyorum sonucu (Python 2.6.6) anlayamıyorum?

+8

'repr (message.dest)' basmayı deneyin. Downvoters kendilerini açıklamak için –

+5

iyi olurdu. – Simon

+0

@Simon: benim cevap görüyorum ama kısaca: Kendi sorunu çözmek için hiçbir çaba, bu sadece OP, hiç kimse başka yararlanabilir. – Marcin

cevap

-2

message.dest'UI' eşit bir amacı değildir. Burada olan budur.

message.dest numaralı lisansı yazdırmak veya programınızdaki verilerin ne olduğunu tahmin etmek için Stackoverflow'a sormak yerine kodunuzu bir hata ayıklayıcıda araştırmak isteyebilirsiniz.

+7

Bazı pedagojinin cevabınıza hoş geleceğini düşünüyorum. – Simon

+0

Azalan "yardım" için teşekkürler. – kamek

+0

@Simon Ben hem 'repr' ve hata ayıklayıcıları OP için haber olduğunu hayal ediyorum. – Marcin

5

Başlangıçta söz gövdesinde OP tarafından gönderildi. Topluluk wiki yanıtına dönüştürüldü.

Sadece takip etmek sorun durumda herkes ne ile başka benzer bir durumda kendilerini bulur istedi. Sorun message.dest oldu

Şahsen benim karışıklık nesne türü <type 'str'> olmasından çoğunlukla kaynaklandı

>>> repr(message.dest) 
"'\\x00UI'" 
>>> print message.dest 
UI 

dizede ASCII kodlu karakter, örneğin vardı. Bu, hata ayıklama aracı olarak print ifadelerini kullanma tehlikesini vurgular.