3. Muutujad
Sageli kasutame samu andmeid (näiteks nimi, valuutakurss vms) koodis korduvalt, sellisel juhul pole otstarbekas infot dubleerida: mitmes kohas muutuste tegemine on ajamahukas ja keeruline, suureneb vigade oht. Seetõttu kasutatakse muutujaid.
Muutujat võime ette kujutada kui karpi, mis sisaldab mingit teavet: nimi, vanus jne. Igal muutujal on oma nimi, mille järgi saame teda eristada teistest. Pythonis võib muutujate nimes olla tähed, numbrid ja alakriipsud, esimene märk peab olema täht või alakriips. Eristatakse suuri ja väikseid tähti, s. t. muutuja nimega "vanus" pole sama mis muutuja nimega "Vanus" jne. On olemas ka rida nn. võtmesõnu, mida samuti ei tohi muutujate nimedena kasutada. Nimed valitakse sellised, et ühest küljest iseloomustaksid need hästi andmeid, mida sisaldavad, teisest küljest aga poleks ka ülearu pikad.
Muutujaga seotakse (e. muutujale omistatakse) mingi info, kasutades võrdusmärki. Info võib olla nii tekstiline (sel juhul ümbritseme selle jutumärkidega) kui ka arvuline.
perekonnanimi = "Susi" # Muutujale "perekonnanimi" omistatakse väärtus "Susi" vanus = 15 # Muutujale "vanus" omistatakse väärtus 15 pikkus = 1.85 # Muutujale "pikkus" omistatakse väärtus 1,85 (kümnendkoha eraldajaks on punkt, mitte koma!)
Muutujale omistatud väärtust saab hiljem muuta.
eesnimi = "Siim" print(eesnimi) # Väljund: Siim eesnimi = "Juta" print(eesnimi) # Väljund: Juta
Üldiselt
- Väärtuse omistamine
<muutuja_nimi> = <väärtus>
- Mitmele muutujale korraga väärtuste omistamine
<muutuja_nimi_1>, <muutuja_nimi_2> = <väärtus_1>, <väärtus_2>
- Mitmele muutujale sama väärtuse omistamine
<muutuja_nimi_1> = <muutuja_nimi_2> = <väärtus>
Näidisülesanne
Ülesanne. Olgu antud ristküliku küljed pikkustega 6 ja 8. Leia ja väljasta ristküliku pindala ja ümbermõõt.
Lahendus. Võtame kasutusele kaks muutujat (näiteks matemaatikast tuntud a ja b, kuid keerulisemates programmides peaksid need olema iseloomulikumad) ning omistame neile väärtused:
a = 6 b = 8
Teeme arvutused ning omistame tulemused uutele muutujatele:
pindala = a * b umbermoot = 2 * (a + b)
Me võiksime hakkama saada ka ilma muutujateta a ja b ning kirjutada arvud otse valemitesse, kuid enamasti on meil hiljem vaja sisendandmeid muuta (uued arvud või hoopis kasutajalt saadavad andmed) ning siis peaksime igas valemis muutusi tegema.
Nüüd väljastame tulemused:
print("Ristkülik külgedega", a, "ja", b, "pindala on", pindala, "ning ümbermõõt", umbermoot)
Nagu näeme, on selles print-funktsioonis argumentide eraldamiseks kasutatud komasid, mis lisavad ka tühikud mõlemale poole muutujaid (seepärast jutumärkides oleva teksti "ümber" tühikuid polegi). Kui tahame täpsemalt kontrollida tühikute kasutamist (mõnikord pole neid argumentide vahele vaja), võime kasutada koma asemel pluss-märki (see tähendab sõnede ühendamist), kuid siis peame arvulised väärtused teisendama sõnedeks (funktsiooniga str()). Järgnev rida on analoog eelmisele print-funktsioonile:
print("Ristkülik külgedega " + str(a) + " ja " + str(b) + " pindala on " + str(pindala) + " ning ümbermõõt " + str(umbermoot))
Lisamaterjalid
Creative Commons litsentsiga Autorile viitamine + Mitteäriline eesmärk 3.0 Eesti (CC BY-NC 3.0 EE) - https://creativecommons.org/licenses/by-nc/3.0/ee/