Python kezdőknek, egyszerűen, 5 percben: 2. rész
Ebben a részben megismerkedünk a repl.it online fejlesztői környezettel és értekezünk arról, hogy mi is egy program és ehhez hasonló finomságok. Nyamm.
A repl.it egy remek online eszköz, amit arra találtak ki, hogy egyszerűen, online tudj dolgozni komplex nyelvekkel, mint például a Pythonnal. De van számos másik fejlesztői környezet, én például kifejezetten szeretem a PyCharm-ot, aminek a Community Edition verziója teljesen ingyenes (ahogy a repl.it is az)
Például létrehozhatunk egy firstprogram.py nevű fájlt a replit segítségével. Megállapodás szerint azok a
fájloknak, amelyek Python programot tartalmaznak a nevük .py kiterjesztésre végződik.
Hogy végrehajtsuk a programot csak a replit Run (Futtatás) gombjára kell kattintanunk:
Ne aggódj, a legtöbb program sokkal érdekesebb, mint ez.
Közvetlenül a parancsértelmezőben dolgozni kényelmes, ha rövid kódokat tesztelünk, mert így azonnali visszajelzést kapunk. Gondolj úgy erre, mint egy vázlatpapírra gondoltál korábban, amely segít a probléma kidolgozásában. Minden, ami pár sornál hosszabb lehetőleg a szkript fájlba kerüljön.
A program az utasítások sorozata, amelyek azt határozzák meg, hogyan kell elvégezni egy számítást. A számítás lehet valami matematikai jellegű, mint például egyenletrendszerek megoldása vagy egy egyenlet gyökeinek megtalálása, de lehet szimbolikus számítás is, mint például megkeresni és kicserélni egy szöveget egy dokumentumban vagy (elég különleges módon) fordítani egy programot.
Mi egy program?
A részletek különböző módon néznek ki különböző nyelveken, de néhány alapvető utasítás megjelenik szinte minden nyelvben:
bemenet (input): Adat beolvasása billentyűzetről, egy fájlból vagy valamilyen másik eszközről.
kiment (output): Adat megjelenítése a képernyőn vagy adat küldése fájlba vagy más eszközre.
matematika: Alap matematikai műveletek végrehajtása, mint például összeadás vagy szorzás.
feltételes végrehajtás: Bizonyos feltételek ellenőrzése és ez alapján a megfelelő utasítássorozat végrehajtása.
ismétlés: Néhány tevékenység végrehajtása újra meg újra, többnyire apró változásokkal.
Hiszed vagy nem, szinte ennyi az egész. Minden program, amit valaha használtál, függetlenül attól, mennyire komplikált, többé kevésbé olyan utasításokból épül fel, mint ezek. Így tehát leírhatjuk a programozást úgy, mint egy nagy, komplex feladat kisebb és kisebb részfeladatokra osztásának folyamatát, amíg a részfeladatok elég egyszerűek nem lesznek ahhoz, hogy ezeknek az alap utasításoknak a sorozatával megadjuk őket. Ez egy kicsit még homályos lehet, de majd visszatérünk ehhez a témához, amikor az algoritmus fogalmáról fogunk
beszélni.
Mi a nyomkövetés?
A programozás egy komplex feladat és mivel emberek végzik, gyakran hibához vezet. A programozás során fellépő rendellenesség a program hiba és ennek megkeresése és kijavítása a nyomkövetés. A program hibára használt angol bug (bogár) kifejezés, ami kis mérnöki nehézséget jelent, Thomas Edisontól származik 1889-ből. Háromféle hiba jelenhet meg a programban: szintaktikai hiba, futási idejű hiba és szemantikai hiba. Fontos, hogy különbséget tegyünk köztük, azért, hogy gyorsabban lenyomozhassuk őket.
Szintaktikai hibák
A Python csak akkor tudja végrehajtani a programot, ha az szintaktikailag helyes, azaz a formai szabályoknak eleget tesz, különben a folyamat megakad és visszatér egy hibaüzenettel. A szintaxis a program szerkezetére és anna szabályaira vonatkozik. Mint például a magyar nyelvben az, hogy a mondatoknak nagybetűvel kell kezdődniük és írásjellel végződniük. tehát! ez a mondat szintaktikai hibát tartalmaz.
A legtöbb olvasó számára néhány szintaktikai hiba nem mérvadó probléma. A Python nem ennyire megbocsájtó. Ha csak egyetlen szintaktikai hiba is van a programodban, a Python egy hibaüzenetet jelenít meg és kilép, így nem tudod lefuttatni a programodat. A programozói karriered első pár hetében bizonyára sok időt fogsz azzal tölteni, hogy keresed a szintaktikai hibákat. Ahogy tapasztalatot szerzel, kevesebb hibát fogsz ejteni és gyorsabban megtalálod őket.
Futási idejű hibák
A második hibacsoport a futási idejű hiba, amit azért hívunk így, mert nem jelennek meg addig, amíg nem futtatjuk a programot. Ezeket a hibákat kivételek néven is emlegetjük, mert gyakran azt jelzik valami kivételes (és rossz) dolog történt. A futási idejű hibák ritkák az olyan egyszerű programokban, amilyeneket a viko.cloud Python sorozatának első részeiben fogsz látni, szóval beletelik egy kis időbe, míg végre összetalálkozol eggyel.
Szemantikai hibák
A harmadik hibatípus a szemantikai hiba. Ha csak szemantikai hiba van a programodban, akkor az sikeresen le fog futni, abban az értelemben, hogy nem generál egyetlen hibaüzenetet sem, de nem azt fogja csinálni, amire szántad. Valami mást fog csinálni. Kimondottan azt teszi, amit mondtál neki, hogy tegyen. A probléma az, hogy a program, amit írtál nem az a program, amit írni akartál. A program jelentése (szemantikája) más. A szemantikai hibák azonosítása trükkös, mert azt követeli meg tőled, hogy visszafelé dolgozz, nézd meg a program kimenetét és próbáld meg kitalálni mit és miért csinált.
Kísérleti nyomkövetés
Az egyik legfontosabb képesség, amit meg fogsz szerezni az a nyomkövetés, vagyis a hibakeresés és hibajavítás. Habár frusztráló lehet, a nyomkövetés az egyik intellektuálisan leggazdagabb, legnagyobb kihívást jelentő és érdekes része a programozásnak. Bizonyos tekintetben a nyomkövetés olyan, mint a nyomozói munka. Szembekerülsz bűnjelekkel és következtetned kell a folyamatokra és az eseményekre, amelyek az általad látott eredményekhez vezettek. A nyomkövetés egyfajta kísérleti tudomány. Egyszer csak van egy ötleted azzal kapcsolatban mi zajlott rosszul módosítod a programodat és újra próbálkozol. Ha a feltevésed helyes volt, akkor megjósolhatod a módosításod eredményét és egy lépéssel közelebb jutsz a működőképes programhoz. Ha a hipotézised téves, akkor elő kell állnod egy újjal.
Ahogy Sherlock Holmes is rámutatott: „Ha a lehetetlent kizártuk, ami marad, az az igazság, akármilyen valószínűtlen legyen is.” (A. Conan Doyle, A Négyek jele)
Néhány ember számára a programozás és a nyomkövetés ugyanaz a dolog. Azaz a programozás a program fokozatos nyomkövetésének a folyamata, mindaddig, amíg azt nem kapod, amit akartál. Az ötlet az, hogy kezdj egy programmal, ami csinál valamit és végezz kis módosításokat, végezz nyomkövetést, ahogy haladsz, így mindig egy működő programod lesz. Például a Linux egy operációs rendszer, ami kódsorok millióit tartalmazza, de egy egyszerű programként indult, amivel Linus Torvalds az Intel 80386-os chipjét vizsgálta. Larry Greenfield szerint Linus egyik korábbi projektjében volt egy program, amely képes volt az AAAA és a BBBB kijelzése között váltani. Később ez fejlődött a Linux operációs rendszerré, ami ma tulajdonképpen a teljes internet alapja, nélküle az megszűnne létezni ismert formájában.
Zárásnak pedig itt egy remek interjú az előbb említett zsenivel, Linus Torvalds-al, egy igazi digitális szuperhőssel, aki bár sokak számára ismeretlen, bizonyos körökben -joggal- nagyjából Istenként tekintenek rá:
Kövess!