파이썬 코드 질문

조회수 3318회

16진수 글자 하나 입력하면 16진수인지 아닌지 구분하는 코드 작성하려는데 if else문이랑 and,or 사용해서

16진수이면 10진수로 변환되고 아니면 16진수 아닙니다 라고 나오려면 어떻게 해야하나요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 16진수는 0-9, a-f 까지 문자를 표현하니까 16진수인지는 이렇게 판별하겠네요.

    import re
    
    def is_hex(c):
        p = re.compile('[0-9a-fA-F]')
        return p.match(c) != None
    

    16진수 => 10진수 변환은 이렇게 하지 않을까요?

    def hex2dec(c):
        return int(c, 16)
    

    그래서 모두 합쳐 놓으면 이거겠죠.

    import re
    
    def is_hex(c):
        p = re.compile('[0-9a-fA-F]')
        return p.match(c) != None
    
    def hex2dec(c):
        return int(c, 16)
    
    string = input('숫자를 입력하세요')
    if is_hex(string):
        print('16진수입니다. 10진수로 {0} 입니다.'.format(hex2dec(string)))
    else:
        print('16진수가 아닙니다.')
    
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)