我怎样才能使我的程序更有效率?现在它充满了if语句。你知道吗
import copy
def hexadecimal(a):
z = a.replace('0b','')
y = z.rjust(8,'0')
list1 = list(y)
newlist = []
for i in range(1,5):
nig = list1.pop(0)
newlist.append(nig)
if newlist == ['0','0','0','0']:
valuenew = ''
if newlist == ['0','0','0','1']:
valuenew = '1'
if newlist == ['0','0','1','0']:
valuenew = '2'
if newlist == ['0','1','0','0']:
valuenew = '4'
if newlist == ['1','0','0','0']:
valuenew = '8'
if newlist == ['0','0','1','1']:
valuenew = '3'
if newlist == ['0','1','1','1']:
valuenew = '7'
if newlist == ['0','1','0','1']:
valuenew = '5'
if newlist == ['0','1','1','0']:
valuenew = '6'
if newlist == ['1','0','0','1']:
valuenew = '9'
if newlist == ['1','0','1','0']:
valuenew = 'A'
if newlist == ['1','0','1','1']:
valuenew = 'B'
if newlist == ['1','1','0','0']:
valuenew = 'C'
if newlist == ['1','1','0','1']:
valuenew = 'D'
if newlist == ['1','1','1','0']:
valuenew = 'E'
if newlist == ['1','1','1','1']:
valuenew = 'F'
if list1 == ['0','0','0','0']:
valuenew1 = ''
if list1 == ['0','0','0','1']:
valuenew1 = '1'
if list1 == ['0','0','1','0']:
valuenew1 = '2'
if list1 == ['0','1','0','0']:
valuenew1 = '4'
if list1 == ['1','0','0','0']:
valuenew1 = '8'
if list1 == ['0','0','1','1']:
valuenew1 = '3'
if list1 == ['0','1','1','1']:
valuenew1 = '7'
if list1 == ['0','1','0','1']:
valuenew1 = '5'
if list1 == ['0','1','1','0']:
valuenew1 = '6'
if list1 == ['1','0','0','1']:
valuenew1 = '9'
if list1 == ['1','0','1','0']:
valuenew1 = 'A'
if list1 == ['1','0','1','1']:
valuenew1 = 'B'
if list1 == ['1','1','0','0']:
valuenew1 = 'C'
if list1 == ['1','1','0','1']:
valuenew1 = 'D'
if list1 == ['1','1','1','0']:
valuenew1 = 'E'
if list1 == ['1','1','1','1']:
valuenew1 = 'F'
print(valuenew + valuenew1)
a = str(bin(int(input('enter a number'))))
hexadecimal(a)
该程序仅用于将二进制文件转换为8位
您可以简单地使用^{} 或^{} 函数将整数转换为十六进制字符串:
Python已经为您想要的东西内置了一些东西
hex()
。不过,如果你执意要自己动手,我已经对你的代码做了一些调整:(1)由于python没有switch语句,所以您最好尝试使用
dict
;我还介绍了一个hex_digit
函数,它基本上只是引用HEX_DIGIT
中需要的值(您实际上并不需要它,但如果将来需要替换它,它会抽象出该部分)(2)为您的填充添加一些逻辑,这样它就不仅仅适用于8位长度的数字了
可以将表示数字的任意字符串文字转换为具有给定基数的整数,然后将该整数转换为字符串。你知道吗
代码
相关问题 更多 >
编程相关推荐