Python实现进制转换

2021/10/28 22:39:58

本文主要是介绍Python实现进制转换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

废话不多说了,直接上代码

##输入的非限制数字会被报错
##while True语句写这里是为了达到死循环的目的
##因此不要break
##3就不限制了,写不出来
##只是代码长 实际有手就行,初学者都能打……
while True:
    print(' 1.十转二、八、十六进制')
    print(' 2.二转八、十、十六进制')
    print(' 3.八转二、十、十六进制')
    print(' 4.十六转二、八、十进制')
    a=input(' 请输入:')
    if a==str(1) or a==str(2) or a==str(3) or a==str(4):
        pass
    else:
        print('键入无效')
        input(' 任意键重新输入')
        print("\n" * 37)
    if int(a)==1:    
##if int(a)你可以str2化同样可以实现        
        b=input('请输入任意十进制数:')
        if b.isdigit()==False:
            print('输入的数不是有效的十进制')
            input('任意键继续')
            print("\n" * 37)    
        else:
##直接通过内部命令得到二、八、十六进制数
            b=int(b)
            binb=bin(b)
            octb=oct(b)
            hexb=hex(b)
            print(' 十进制'+str(b))
            print(' 二进制:'+str(binb))
            print(' 八进制:'+str(octb))
            print(' 十六进制:'+str(hexb))
            input(' 任意键重新输入')
            print("\n" * 37)          
##如果运行在windows这里可以直接引用os的cls命令
##这里的清屏命令原理是直接输出37个换行符 ,确实离谱
    if int(a)==2:
        b=input(' 请输入任意二进制数:')
        c = {'0','1'}
        t = set(b)
        if c == t or t == {'0'} or t == {'1'}:
##先用int函数把二进制数转十进制数
##再把上面十转二、八、十六复制下来,修改部分变量名即可  
            decb=int(b,2)
            binb=bin(decb)
            octb=oct(decb)
            hexb=hex(decb)
            print(' 二进制:'+str(binb))
            print(' 十进制:'+str(decb))
            print(' 八进制:'+str(octb))
            print(' 十六进制:'+str(hexb))
            input(' 任意键重新输入')
            print("\n" * 37)
        else:
             print('输入的数不是有效的二进制')
             input('任意键继续')
             print("\n" * 37) 
##先用int把八进制转十进制
##继续复制就完事了    
    if int(a)==3:
        b=input(' 请输入任意八进制数:')
##怎么判断输入的是不是8进制,且能运行在qpython上……真不会
        decb=int(b,8)
        binb=bin(decb)
        octb=oct(decb)
        hexb=hex(decb)
        print(' 二进制:'+str(binb))
        print(' 十进制:'+str(decb))
        print(' 八进制:'+str(octb))
        print(' 十六进制:'+str(hexb))
        input(' 任意键重新输入')
        print("\n" * 37)
##十六进制判断的也写不来,这拉胯qpython的兼容性太差        
##和八转二、十、十六同理        
    if int(a)==4:
        b=input(' 请输入任意十六进制数:')
        decb=int(b,16)
        binb=bin(decb)
        octb=oct(decb)
        hexb=hex(decb)
        print(' 二进制:'+str(binb))
        print(' 十进制:'+str(decb))
        print(' 八进制:'+str(octb))
        print(' 十六进制:'+str(hexb))
        input(' 任意键重新输入')
        print("\n" * 37)
    


这篇关于Python实现进制转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程