본문 바로가기
프로그램

[파이썬] 문제 : 16진수를 10진수로 변환 h2d 함수 (정규표현식)

by 오디세이99 2022. 12. 3.
728x90
반응형

import re

def h2d(hc):
    if hc[:2] == '0x' or hc[:2] == '0X':     # '0x' 또느 '0X' 로 시작하는 경우
        p = re.compile('[0-9a-fA-F]')         # 수자문자, 알파벳 대소문자 인지 정규표현식 사용
        if p.match(hc[2:]) != None:          # '0x' 제외 문자가 16진수 문자규정인지 확인. 
            return int(hc, 16)               # 16진수를 10진수로 변경해서 리턴
        else:                                 # 16진수문자규정이 아니면 -1 리턴
            return -1
    else:                                     # '0x' 또느 '0X' 로 시작하지 않는 경우 -1 리턴
        return -1
    
print(h2d('0xfe'))
print(h2d('FE'))
print(h2d('0xOm'))
print(h2d('0xABCD'))

728x90
반응형

댓글