2015-02-22 3 views
0
test = struct.unpack('>%dH' % 1, '\x00\x44') 

Меня смущает. Я думал, что это означает взять первые 8 байтов и рассматривать их как двойные, а затем взять следующие два и рассматривать их как короткие и делать все это одно время. Но это означает что-то еще, и я не могу понять, что. Кажется, он понимает, что нет двойного присутствия и преобразует эти два байта в одно число.Понимание struct.unpack python

Этот код

test = struct.unpack('>1dH' , '\x00\x44') 

Выдает ошибку, потому что он ожидает найти двойной ...

Может кто-нибудь сказать мне, что разница между этими двумя есть?

Благодаря

ответ

2

'>%dH' % 1 эквивалентно '>1H'.

>>> '>%dH' % 1 
'>1H' 

'>%dH' % 1 использует old-style string formatting заменить %d с 1.

Таким образом, формат структуры задает двухбайтовый беззнаковый короткий.