Me teame juba, kuidas paigaldada IDE ning kuidas taandada korrektselt programmikoodi koodi. Nüüd hakkame päriselt pihta. Selleks et programmile reegleid ette ütlema hakata on vaja need kirja panna. Sellist kirjapanekut nimetatakse programmeerimise maailmas defineerimiseks. Mida siis saab defineerida? Muutujaid! Muutujad ei tähenda muidugi seda, et nad oleks koguaeg muutumises, aga iseenesest nad võivad olla vägagi muutuvad. Mitte keegi ei keela, kui just ei ole keelatud. Selliseid muutujaid, mis kunagi ei muutu nimetatakse konstantideks. Tuleb varasemast füüsikast ja matemaatikast ette ehk? Ning selliseid, mis muutuvad, need ongi muutujad, nii nagu matemaatikas on mitme muutujaga võrrandid sisaldades tuttavaid märgistusi x ja y näiteks.
Muutuja defineerimiseks tuleb see lihtsalt kirja panna. Kõige raskem selle asja juures ongi muutuja nime välja mõtlemine. Matemaatkas tehakse seda lihtsalt x ja y ning ongi kõik, nad on tundmatud väärtused ja neile sobivad ka lühikesed ja arusaamatud nimetused. Muutuja nimetamisel programmikoodis on aga mõned lihtsad reeglid. Nimi peab olema nii lühike kui saab, aga piisavalt pikk, et oleks arusaadav. Nimi peab olema kirjeldav. Lihtne eks. Siinkohal märgin ära, et muutuja peab olema üks! sõna, st. me ei saa kasutada muutuja nimes tühikuid. Selleks, et pikkade kirjeldavate muutujanimetuste lugemist lihtsamaks muuta, kasutatakse peamiselt kahte moodust. Nimetan need alljärgnevalt inglisekeelsena, kuna kõike pole võimalik mõistlikult tõlkida, aga proovin ka tõlkida.
Pythoni puhul kõige tavalisemad nimetamisviisid on “flat case” ehk siis kõikväiksedtähedilmatühikuteta. Agaeiolevistvägalihtnelugeda? Või “snake case” ehk siis nagu_uss_lookleks ja nii on juba õnad eraldatud ja lugemine lihtsam. Teistes programmeerimiskeeltes nagu näiteks Java on väga populaarne hoopiski “Camel Case” ehkNaguKaamliKüürudegaKiri. Need võiks siis olla põhilised, mida kasutada. Ja siis on veel igasugu hübriide nagu “Camel snake case” ehk kaamliKüüruJa_mao_segu. siit saab vist ainult veel imelikumaks minna.
Näiteks paneme muutujale kasutades flat case’i (või snake case, ühe sõna puhul ei ole aru saada, mida me siis kasutamegi) nimeks “tere” ning väärtustame tema = märgi järel millegagi, praegusel juhul on selleks sõne “Tere”. Oot misasi?! Sõne?! Vaata pilt ära ja siis liigume jutuga edasi.

Nagu näed, on pildil neli täiesti erinevat muutujat. Igaüks on kuidagi erinev. Ka PyCharm värvib nad erivärvi, noh peaaegu, nagu näed siis muutujate yks ja null_koma_kaks värv on sama, aga sa said isegi aru mis neil ühist on nad on mõlemad arvud. Vot, aga see esimene ja roheline, tema ongi sõne ehk sõnatarvitusjuhtum (oh see ilus eesti keel) inglise keeles on ta lihtsalt string. Ehk siis ülaltoodud lahti nimedates järgnevalt:
- Sõne ehk string (näiteks “Tere”, pane tähele et sõne ümbritsevad alati jutumärgid)
- Täisarv ehk integer (1 ja 2 ja 3 jne.)
- Tõeväärtus ehk boolean (tema väärtus on siis alati kas tõene või väär ehk True or False)
- Ujukomaarv ehk float (sisaldab siis jäägiga arve kus koma asemel kasutatakse punkti . )
Miks meil seda kõike vaja on? Jällegi tulevad mängu reeglid. Selleks, et arvutile kõige paremini selgeks teha, mida ta tegema peab, on vaja kehtestada väga ranged reeglid. Toome elulise näite koolitundidest:
Emakeele tund, etteütlus. Õpetaja palub kirjutada (liita, sest tegemist on siiski tähemärkide liitmistehtega) telefoninumbri: “5 5 5…”. Mida teie kirjutate, muidugi 555… See ongi korrektne käitumine. Aga nüüd näiteks matemaatika tund. Õpetaja palub liita arvud 5 5 5. Sa saad vastuseks ju 15. Sulle oli varem reegleid selgitatud ning sa tead kuidas ühes või teises tunnis käituda. Sama on programmiga, alati kehtestame reeglid. Selleks defineerime alguses muutujad ja teeme seda kasutades õigeid andmetüüpe, nii saame olla kindlad, et meie programmikoodis ei esine vigu, ehk bugisid. Õnneks on Python väga pirtsakas ning “5” + 5 tehe lõppeb veaga.

Joonisel näeme jällegi, kui abivalmis on kompilaator. Esiteks värvib IDE juba koodi osas ära võimaliku probleemse koha. Ning koodi käivitamisel Ütleb kompilaator juba täpsemalt. Et vaata nüüd seda koodirida, nende kahe andmetüübi int (täisarv) ja str (sõne) omavahel liitmine ei ole lubatud. Isegi kui oleks lubatud, nagu näiteks JavaScript seda teeb, siis ütlen ausalt, midagi head see küll endaga kaasa ei too.
Edaspidi mõtleme hoolikalt läbi, mida me soovime arvutile algandmeteks ette anda. Kas soovime panna kokku sõnadest lauset, siis kasutama sõnesid (ja ikka alati jutumärkides) “Kes”+”elab”+”metsa”+”sees”=”Keselabmetsasees”. Või kui soovime vastust matemaatilisele liitmistehtele siis kasutame kas täis- või ujukomaarve 5+4+9.3=18.3