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