Вы не можете установить целое число как 00
, оно всегда будет уменьшаться до 0
, добавлено к этому факту, в Python 2.x, помещая 0
перед целым числом (например, 0123
), будет сказаноpython вы хотите, чтобы это число оценивалось как octal
!вызывающе не то, что вы хотите.В Python 3.x 0integer
вообще не разрешено!
вам нужно использовать строки, если вы хотите 00
вместо 0
.
Из интереса, выпытаюсь сгенерировать диапазон мач между mac1
и mac2
, если так, то я подозреваю, что у меня есть более элегантное решение, если вам интересно.
РЕДАКТИРОВАТЬ:
Рабочий растворвыведет шестнадцатеричные значения mac-адреса между началом и концом, поскольку он работает внутренне с целыми числами между 0 and 255
, значения start
и end
являются целыми числами, а не шестнадцатеричными значениями.
start = [0,11,22,33,44,55]
end = [0,11,22,33,46,95]
def generate_range(start, end):
cur = start
while cur < end:
cur[5] = int(cur[5]) + 1
for pos in range(len(cur)-1, -1, -1):
if cur[pos] == 255:
cur[pos] = 0
cur[pos-1] = int(cur[pos-1]) + 1
yield ':'.join("{0:02X}".format(cur[i]) for i in range(0,len(cur)))
for x in generate_range(start, end):
print (x)