Программа неправильно сравнивает два числа

#python #python-3.x #if-statement #output #comparison

Вопрос:

Оператор сравнения работает неправильно

 class Solution:
    def romanToInt(self, s: str) -> int:
        dic = {"I":1,"V":5,"X":10,"L":50,"C":100,"D":500,"M":1000}
        result = 0
        s = list(s)
        while True:
            if len(s) == 1:
                x = s.pop(0)
                result =dic[x]
                break
            elif len(s) == 0:
                break
            else:
 

Оператор сравнения работает неправильно

                 if (dic[s[0]] < dic[s[1]]) == True: #gives true for 1000<10
                    result  = dic[s[1]] - dic[s[0]]
                    s.pop(0)
                    s.pop(0)
 

Он прямо прыгает сюда

                 elif (dic[s[0]] >= dic[s[1]] )== True:
                    result  = dic[s[1]]   dic[s[0]]
                    s.pop(0)
                    s.pop(0)

        return result


o = Solution()
print(o.romanToInt("MCMXCIV"))
 

Комментарии:

1. 1000 < 10 == True это ложь . Вот почему он прыгает в elif блок. Понятно, почему вы думаете, что это «дает истину за 1000 Если бы это оценивалось True как если бы не перескакивало на elif блок.