Утверждение, кажется, не имеет никакого эффекта преобразования hex в de c - PullRequest
0 голосов
/ 03 марта 2020

Когда я пытаюсь использовать свой шестнадцатеричный преобразователь в десятичную, я получаю сообщение об ошибке для этой строки, где я назначаю 'E' для 14, это говорит, что утверждение не имеет никакого эффекта

def hex2dec(n):
res = [x for x in n]
for i in range (len(res)):
    if res[i] == 'A' or res[i] == 'a':
        res[i] = 10
    if res[i] == 'B' or res[i] == 'b':
        res[i] = 11
    if res[i] == 'C' or res[i] == 'c':
        res[i] = 12
    if res[i] == 'D' or res[i] == 'd':
        res[i] = 13
    if res[i] == 'E' or res[i] == 'E': ##no effect
        res[i] == 14
    if res[i] == 'F' or res[i] == 'f': 
        res[i] = 15
res2 = [int(x) for x in res]
return res2

1 Ответ

1 голос
/ 03 марта 2020

Это потому, что вы использовали двойной знак равенства == вместо одного =. == используется для логических вычислений, а = используется для присвоения значений переменным. Во-вторых, у вас есть опечатка в условном выражении «Е». Второе условие должно быть в меньшем регистре "е". Кроме того, рассмотрите возможность использования списков или словаря вместо 26 операторов if / else!

...