我有這樣的代碼轉換二進制到十六進制十六進制轉換器的幫助 - Python的
## The Input part
l = raw_input('Input 8-bit number: ')
j = list(l)
## Value Error part
t = [int(x) for x in j]
if len(t) != 8 or len([n for n in t if n not in (1, 0)]) != 0:
raise ValueError('NOT 1 OR 0, or NOT CORRECT LENGTH')
## The Conversion part
a = l[0]
b = l[1]
c = l[2]
d = l[3]
e = l[4]
f = l[5]
g = l[6]
h = l[7]
p = a+b+c+d
q = e+f+g+h
y = hex(int(p, 2))[2:]
z = hex(int(q, 2))[2:]
## The Results part
print
print 'Results'
print 'Binary: ',l
print 'Hex: ',y+z
我的整個轉換部分是出奇的長,因爲每當我嘗試轉換一個數字,在它的前面有0000它不打印0,我需要它打印0是否有辦法做到這一點,沒有做很長的過程
請將所有作業問題標記爲家庭作業。 – agf
Smartass答案是:'from binascii import hexlify'。如果我要爲作業評分,那也會得到滿分。 – Kimvais
@Jonathan M的回答有這樣的內建函數。而且,使用'a = l [0],b = 1 [1]'似乎很糟糕,只需使用l [0],l [1]或更好地使用for循環。無論如何,'a,b,c,d,e,f,g,h = l'可以代替8個分配。你可以用下面的代碼替換10行:'p = sum(map(int,l [:4])); q = sum(map(int,l [4:]))'。 – utdemir