16진수를 10진수로 바꾸는 코드를 짜는

조회수 1322회

파이썬으로 16진수를 입력받아 10진수로 바꾸는 프로그램을 짜고 있습니다


    def hexaToDecimal(hexaString):
        decimalNum = 0
        length = len(hexaString)

        for num in range(0,length):
            x=hexaString[num]
            if 'a'<=x<='f' or 'A'<=x<='F' or '0'<x<='9':
                decimalNum = decimalNum + chToHexa(x) * (16**(length-1)) 
                length = length -1   
    (중략)
    def chToHexa(x):
        if x=='A' or 'a':
            return 10
        elif x=='B' or 'b':
            return 11
        elif x=='C' or 'c':
            return 12
        elif x=='D' or 'd':
            return 13
        elif x=='E' or "e":
            return 14
        elif x=='F' or 'f':
            return 15
        else:
            return x
    ```

chToHexa는 입력받은 16진수에 알파벳이 있을 경우 숫자로 고쳐주기 위한 코드인데 

어떤 숫자, 알파벳을 넣어도 chToHexa에서 10이라는 값만 return 됩니다

코드를 고치기는 했지만 왜 숫자가 10만 return되었는지 궁금합니다

(미리보기와 다르게 밑에 글이 코드 써놓은 칸에 같이 뜨네요..ㅠ)

2 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)