Больше, чем меньше, python

Я занимаюсь типом ранжирования, что происходит, я сравниваю оценку с текущим счетом, и если оценка ниже, чем текущая, то игрок получает высокий балл, но при использовании этого кода здесь

        print "Score = " + str(score) + ", Compared to = " + str(array[x])
        if score < array[x]:
                #Do stuff here

Но даже если оценка равна 4, а массив [x] равен 2, оператор if все еще выполняется?

Я что-то делаю неправильно?

Я понимаю, что если оценка 4 и массив [x] равны 2, то 4 больше 2, что означает, что он возвращается False?


Получает полный код

def getRank(array, score):
    rank = 0
    rankSet = False
    for x in range(0, len(array)):
        print "Score = " + str(score) + ", Compared to = " + str(array[x])
        if score < array[x]:
            if not rankSet:
                rank = x
                print "Set rank to: " + str(rank)
                rankSet = True
        elif score == array[x] or score > array[x]:
            rank += 1
            print "Rank higher than " + str(x)
    print "Rank = " + str(rank)
    return rank

он печатает это, если score = 4, и массив состоит из [1, 2]

Score = 4, Compared to = 1
Set rank to: 0
Score = 4, Compared to = 2
Rank = 0

Ответ 1

Проверьте, чтобы оба показателя и массив [x] были численными. Возможно, вы сравниваете целое число со строкой... что в Python 2.x возможно невероятно.

>>> 2 < "2"
True
>>> 2 > "2"
False
>>> 2 == "2"
False

Изменить

Дальнейшее объяснение: Как Python сравнивает строку и int?