Class3 hexdump házi

1. tohex2(byte) függvény máshogy

Az új tohex2() a beépített hex() függvényt használja, de csak egyszer! (a tohex1()-et egyszer se!)

Segítség: a hex() függvény eredménye majdnem jó, de azért még kell az eredményen alakítani utólag, mert

  • elé rak egy '0x'-et (megoldás: string slice)
  • 10-15 közti számjegyek kisbetűsek (pedig nagybetűsnek szeretnénk - upper())
  • 0-15-ig a számokat egyjegyűként konvertálja (mi mindig két jegyűként szeretnénk, még ha az első '0' is)

In [1]:
def tohex2(byte):
    # ez még nem jó, de már közel van - javítsd ki!
    return hex(byte)


def expect(result, actual_result):
    '''
    assert helyett - ez kiírja a várt értéket és a kapott eredményt
    '''
    assert actual_result == result, (
        'Got %r instead of %r' % (actual_result, result))

expect('80', tohex2(128))
expect('FF', tohex2(255))
expect('01', tohex2(1))
expect('0B', tohex2(11))


---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-1-d9e4b063b3d3> in <module>()
     11         'Got %r instead of %r' % (actual_result, result))
     12 
---> 13 expect('80', tohex2(128))
     14 expect('FF', tohex2(255))
     15 expect('01', tohex2(1))

<ipython-input-1-d9e4b063b3d3> in expect(result, actual_result)
      9     '''
     10     assert actual_result == result, (
---> 11         'Got %r instead of %r' % (actual_result, result))
     12 
     13 expect('80', tohex2(128))

AssertionError: Got '0x80' instead of '80'

2. tohex8(bytes)

(for loop és stringek kezelésének gyakorlása, unit 8 után mennie kell)


In [ ]:
def tohex8(bytes):
    assert len(bytes) == 8
    # ennél bonyolultabb a megoldás - cseréld le!
    return ' 00 00 00 00 00 00 00 00'


expect(' 00 00 00 00 00 00 00 00', tohex8([0, 0, 0, 0, 0, 0, 0, 0]))
expect(' 00 01 0F 00 00 00 80 FF', tohex8([0, 1, 15, 0, 0, 0, 128, 255]))