Home     |     .Net Programming    |     cSharp Home    |     Sql Server Home    |     Javascript / Client Side Development     |     Ajax Programming

Ruby on Rails Development     |     Perl Programming     |     C Programming Language     |     C++ Programming     |     IT Jobs

Python Programming Language     |     Laptop Suggestions?    |     TCL Scripting     |     Fortran Programming     |     Scheme Programming Language


 
 
Cervo Technologies
The Right Source to Outsource

MS Dynamics CRM 3.0

Python Programming Language

struct.pack bug?


Hello

I find the following inconsistent:
===
 >>> sys.version
'2.4.1a0 (#2, Feb  9 2005, 12:50:04) \n[GCC 3.3.5 (Debian 1:3.3.5-8)]'
 >>> pack('>B', 256)
'\x00'
 >>> pack('<B', 256)
'\x00'
 >>> pack('B', 256)
Traceback (most recent call last):
   File "<stdin>", line 1, in ?
struct.error: ubyte format requires 0<=number<=255
 >>>
===

I was hoping that '>B' and '<B' would raise an exception,
ust as 'B' does.

On Oct 27 2006, 11:17 am, Jansson Christer reported a
different anomoly to this newsgroup, using the same
subject.

--
Jonathan

On Feb 9, 8:58 am, Jonathan Fine <j@pytex.org> wrote:

Your Python is out-of-date in two dimensions: the 2.4 series is way
past 2.4.1, and Python 2.5 has been out for a while.

Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
(Intel)] on win
32
| >>> from struct import pack
| >>> pack('<B', 256)
| __main__:1: DeprecationWarning: 'B' format requires 0 <= number <=
255
| '\x00'

Until the deprecation warning becomes an exception in 2.6, I'd suggest
doing your own checking:
assert 0 <= pack_B_candidate <= 255

HTH,
John

Add to del.icio.us | Digg this | Stumble it | Powered by Megasolutions Inc