python(十进制转换成二进制、八进制、十六进制)(正则)

#coding=utf-8
import re
print("十进制转换成二进制、八进制、十六进制")

num = input("请输入一个十进制的整数:")

pattern = re.compile(r'[^0-9]+')
if(re.search(pattern,num)):
    print("输入的格式不正确")
else:
    num = int(num)
    #十六进制
    cc = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
    #a是二进制,b是八进制,c是十六进制
    alist = []
    blist = []
    clist = []

    #转成二进制
    temp = num
    while temp:
        residue = str(temp % 2)
        temp = temp // 2        
        alist.append(residue)
    alist.reverse()

    #转成八进制
    temp = num
    while temp:
        residue = str(temp % 8)
        temp = temp // 8        
        blist.append(residue)
    blist.reverse()    

    #转成十六进制
    temp = num
    while temp:
        residue = cc[temp % 16]
        temp = temp // 16        
        clist.append(residue)
    clist.reverse()    

    #输出结果
    print("转换成二进制为")
    print(''.join(alist))
    print("转换成八进制为")
    print(''.join(blist))
    print("转换成十六进制为")
    print(''.join(clist))
#coding=utf-8
print("十进制转换成二进制、八进制、十六进制")
try:
    num = int(input("请输入一个十进制的整数:\n"))
    #十六进制
    cc = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
    #a是二进制,b是八进制,c是十六进制
    alist = []
    blist = []
    clist = []
    
    #转成二进制
    temp = num
    while temp:
        residue = str(temp % 2)
        temp = temp // 2        
        alist.append(residue)
    alist.reverse()
    
    #转成八进制
    temp = num
    while temp:
        residue = str(temp % 8)
        temp = temp // 8        
        blist.append(residue)
    blist.reverse()    
    
    #转成十六进制
    temp = num
    while temp:
        residue = cc[temp % 16]
        temp = temp // 16        
        clist.append(residue)
    clist.reverse()    
    
    #输出结果
    print("转换成二进制为")
    print(''.join(alist))
    print("转换成八进制为")
    print(''.join(blist))
    print("转换成十六进制为")
    print(''.join(clist))
    
except:
    print("输入的格式不正确")

猜你喜欢

转载自blog.csdn.net/weixin_41671390/article/details/84965052
今日推荐