Bin,Dec,Hex字符串标识符的Python代码&变流器

时间:2015-05-19 21:07:36

标签: python base-conversion

我需要Python代码,它将数字输入作为字符串,检测,如果它是二进制,十进制或十六进制。

另外,我想使用bin(),dec(),hex(),int()命令转换为而不是

2 个答案:

答案 0 :(得分:1)

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"

是一种方式......

答案 1 :(得分:0)

这将告诉您输入字符串是bin,dec还是hex

注意:根据steffano的评论,你必须写更多内容来分类一个像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