Новичок здесь.
Я пытаюсь получить шестнадцатеричную контрольную сумму XOR строки; и у меня есть следующий код Python 2.7:
def getCheckSum(sentence):
calc_cksum = 0
for s in sentence:
calc_cksum ^= ord(s)
return str(hex(calc_cksum)).strip('0x')
print getCheckSum('SOME,1.948.090,SENTENCE,H,ERE')
Теперь это прекрасно работает как ДЕСЯТКА, КРОМЕ того, когда результат содержит 0
. Если конечное значение равно 02
или 20
, будет напечатано только 2
. Я думал о реализации .zfill(2)
, но это применимо только к случаям, когда 0
предшествует цифре; поэтому не надежный.
Любое решение, почему это может быть и как решить?