python string-Vergleich (==) funktioniert nicht

Warum die folgenden String-Vergleich funktioniert nicht?
Ich habe den folgenden code (angepasst ich es zu machen ist einfacher). Bekomme ich einen Spieler aus der Datenbank und das hinzufügen zu einer Liste von Spielern. Dann habe ich die loop auf der Liste der Spieler und versuchen, es zu finden, und sogar tho' der string ist der gleiche, der Vergleich false zurück..

def findPlayer2(self, protocol, playerId):
    cur = self.conn.cursor()
    cur.execute("SELECT playerId, playerName, rating FROM players WHERE playerId LIKE (%s)", [playerId])
    nbResult = cur.rowcount
    result = cur.fetchone()
    cur.close()

    if nbResult > 0:
        player = Player(protocol, str(result[0]), str(result[1]), result[2])
        self.players.append(player)

    for player in self.players:
        id1 = str(player.playerId)
        id2 = str(playerId)
        print type(id1)
        print type(id2)
        print "Comparing '%s' with '%s'" % (id1, id2)

# HERE IS THE COMPARISON

        if id1 == id2:
            print "Equal! Player found!"
            return player
        else:
            print "Not equal :("

Geben das folgende Ergebnis:

<type 'str'>
<type 'str'>
Comparing '11111111' with '11111111'
Not equal :(
Verwenden %r statt '%s'. Vielleicht haben einige nicht-druckbare Zeichen oder Plagiate.
Scheint, wie Sie haben Recht, hier ist das neue Ergebnis: Vergleich von "11111111" mit "11111111\x00". Wissen Sie, warum dies geschehen?
was war der Typ playerID, dass war an die Funktion gesendet werden? welche python version?

InformationsquelleAutor Henri Lapierre | 2013-06-05

Schreibe einen Kommentar