MENÜ

Honlap címe

Előző - #6 Sorrendi utótag | Tartalomjegyzék | Következő - #8 Olvassa el a Fájl írását

7. GYAKORLAT: ASCII TÁBLÁZAT

 

Az ASCII az American Standard Code for Information Interchange rövidítése . A számítógépek csak számokat tudnak tárolni, így minden betűhöz, számhoz, írásjelhez és minden más karakterhez egy kódpontnak nevezett szám tartozik . Az ASCII a szöveges karakterek számokhoz való közkedvelt szabványos leképezése volt. Például a „Hello” a 72, 101, 108, 108, 111 számokkal jelölhető. Pontosabban, a számítógépek csak a bináris számok egyeseit és nulláit tárolják. Ezek a decimális számok binárisan 01001000, 01100101, 01101100, 01101100, 01101111. Egy ASCII-tábla az összes karaktert és a hozzájuk rendelt ASCII-számértékeket mutatta.

Az ASCII azonban egy régi és kissé korlátozott szabvány: például nem rendelt számokat cirill vagy kínai karakterekhez. És ez egy amerikai szabvány: van kódpontja a dollárjelhez (36-os kódpont), de nincs az angol font jeléhez.

Az ASCII már nem elég most, hogy az internet mindennapossá tette a globális kommunikációt. Az újabb Unicode karakterkészlet minden karakterhez kódpontokat biztosít, és ezt használja a Python karakterláncértékeihez. Az Unicode kódpontjai visszafelé kompatibilisek az ASCII-vel, így továbbra is könnyedén használhatjuk a Pythont az ASCII-táblázat megjelenítésére.

Ebben a gyakorlatban megtanulhatja, hogyan kell használni a ord() és chr()függvényeket egész számok és szöveges karakterek közötti fordításhoz.

Gyakorlat leírása

Írjon egy printASCIITable()függvényt, amely megjeleníti az ASCII számot és a hozzá tartozó szövegkaraktereket 32 ​​és 126 között. (Ezeket nyomtatható ASCII karaktereknek nevezzük .)

A megoldás helyes, ha a hívás printASCIITable() a következőképpen néz ki:

32 

33 !

34"

35 #

--több--

124 |

125 }

126 ~

Ne feledje, hogy a 32-es ASCII-érték karaktere a szóköz, ezért úgy tűnik, hogy a kimenetben semmi sem található a 32 mellett.

Próbáljon megoldást írni a leírásban szereplő információk alapján. Ha továbbra is problémái vannak ennek a gyakorlatnak a megoldásával, további tippekért olvassa el a Megoldástervezés és a Különleges esetek és Gotchák című részt.

Előfeltétel fogalmak: forciklusok, range() két argumentummal,chr()

Megoldás tervezése

A Python beépített chr()függvénye elfogadja egy kódpont egész argumentumát, és visszaadja az adott kódpont karakterének sztringjét. A ord()függvény az ellenkezőjét teszi: elfogad egy karakterláncot, és visszaadja annak egész kódpontját. Az „ord” a „sorrend” rövidítése.

Például írja be a következőket az interaktív héjba:

>>> ord('A')

65

>>> chr(65)

"A"

>>> ord('B')

66

>>> ord('!')

33

>>> 'Hello' + chr(33)

'Helló!'

A printASCIITable()függvénynek szüksége van egy ciklusra, amely a 32for egész számmal kezdődik és felfelé tart . Ezután a cikluson belül írja ki az egész ciklusváltozót, és azt, hogy a függvény mit ad vissza az adott egész ciklusváltozóhoz.126chr()

Különleges esetek és Gotchák

A függvény felső határértéke range() nem tartalmazza magát a számot. Ez azt jelenti, hogy i esetén a(32, 126) tartományban: az egész számok tartományát fedi le 32legfeljebb -tól, de nem tartalmazza 126. Ha bele akarunk foglalni 126(amit ebben a gyakorlatban meg is teszünk), adja át a range()127 második argumentumát .

Most próbáljon meg egy megoldást írni az előző szakaszok információi alapján. Ha továbbra is problémái vannak a gyakorlat megoldásával, olvassa el a Megoldássablon részt további tippekért.

Megoldás sablon

Próbáljon először megoldást írni a semmiből. De ha nehézségei vannak, akkor a következő részprogramot használhatja kiindulási helynek. Másolja ki a következő kódot a https://invpy.com/asciitable-template.py webhelyről , és illessze be a kódszerkesztőbe. Cserélje ki az aláhúzást kódra, hogy működő programot készítsen:

def printASCIITable():

    # Hurok 32-től 126-ig bezárólag:

    i tartományban (____, ____):

        # Nyomtassa ki az egész számot és az ASCII-szöveg karakterét:

        nyomtatás (i, ____(i))

 

printASCIITable()

A gyakorlat teljes megoldását az A függelék és a https://invpy.com/asciitable.py tartalmazza . A program minden lépését megtekintheti, amint az egy hibakereső alatt fut a https://invpy.com/asciitable-debug/ oldalon .

További irodalom

Ha többet szeretne megtudni az Unicode-ról, ajánlom Ned Batchelder „Pragmatic Unicode” blogbejegyzését a https://nedbatchelder.com/text/unipain.html címen . Ezen a blogbejegyzésen alapuló PyCon-előadást is tartott, amelyet a https://youtu.be/sgHbC6udIqc oldalon tekinthet meg . A Unicode-ot gyakran bonyolult témának tekintik, de Ned érthető részekre bontja, és mit kell tudnia a Python programozóknak.

A https://en.wikipedia.org/wiki/ASCII címen saját maga is megtekinthet egy ASCII-táblázatot .

Előző - #6 Sorrendi utótag | Tartalomjegyzék | Következő - #8 Olvassa el a Fájl írását

 

Asztali nézet