Код Python для Bin, Dec, Hex string Identifier & Converter

Мне нужен код Python, который принимает числовой ввод в виде строки и определяет, является ли он двоичным, десятичным или шестнадцатеричным.

Также я хочу преобразовать его в другие два типа без использования команд bin(),dec(),hex(),int().

2 ответа

Решение
if my_num[0:2] == "0x" or my_num[0] == "x":print "hex"
elif my_num[0:2] == "0b" or my_num[0] == "b" and all(x in "01" for x in my_num):print "bin"
elif my_num[0] in "0O": print "oct"
elif re.match("^[0-9]+$",my_num): print "dec"
else: print "I dont know i guess its just a string ... or maybe base64"

вдали...

Это скажет вам, является ли входная строка bin, dec или hex

ПРИМЕЧАНИЕ. Согласно комментарию Стеффано, вам нужно написать что-то еще, чтобы классифицировать число, например 10, - это может быть bin/dec/hex. Только одна из следующих функций должна принимать значение true, иначе вы ошибаетесь. Попробуйте поставить этот чек.

import re

def isBinary(strNum):
    keyword = "^[0-1]*$"
    re.compile(keyword)
    if(re.match(keyword, strNum)) :
        return True
    else : 
        return False

def isDecimal(strNum):
    keyword = "^[0-9]*$"
    re.compile(keyword)
    if(re.match(keyword, strNum)) :
        return True
    else : 
        return False

def isHexa(strNum):
    keyword = "^[0-9a-fA-f]*$"
    re.compile(keyword)
    if(re.match(keyword, strNum)) :
        return True
    else : 
        return False
#Tests
print isHexa("AAD");
print isDecimal("11B")
print isBinary("0110a")

Выход этого:

True
False
False
Другие вопросы по тегам