Python er eit programspråk som er velegna for å læra koding fordi det er lettlest og har ein enkel syntaks. Det er fritt, open-source og har eit stort standardbiliotek. Her kan du lesa meir om fordelene med Python. På mange områder er Python veldig likt mange andre språk, med dei same, eller liknande, navn og konstruksjonar. Du kan samanlikna Python med Javascript og PHP her. Men det er eit par ting som kanskje er spesielle ved Python:
Ei kodeblokk kan vi laust definera som ei eller fleire kodelinjer som blir utført (eller ikkje utført) som ein enhet. Med andre ord: Bare deler av ei kodeblokk kan ikkje bli utført. Python bruker innrykk for å beskriva ei kodeblokk.Det er forskjellig frå dei fleste (alle?) andre. Eksempelvis kan vi ha eit program som skriv ut "Husk å tippa", hvis variabelen dag er lik "Wednesday". Det kan sjå slik ut.
if dag == "Wednesday":
print("Husk å tippa Vikinglotto!")
andre instruksjonar
osv ...
Her er har den første printsetningen innrykk, så den vil bare bli skriven ut hvis det er onsdag. Den andre printsetningen har ikkje innrykk, så den vil alltid bli skriven ut fordi den ikkje høyrer til blokka (som bare er på ein setning her, men som kunne ha vore mange) som blir utført hvis vi får tilslag på if-testen.
I PHP kunne vi ha skrive det samme på denne måten:
if($dag == "Wed"){
echo "Husk å tippa Vikinglotto!";
andre instruksjonar
}
osv ...
Ei blokk må ha ein måte å beskriva starten og slutten. I PHP og mange andre språk som C og JavaScript, er blokka definert ved parentesane {}, mens Pascal bruker begin og end i staden for. Den store forskjellen mellom Python sin måte og dei andre, er at Python tvingar deg til å skriva lesbar kode. I PHP er innrykk optional. Det er ingen som tvinger deg til å bruka innrykk i PHP, men hvis du har mange if-testar og løkker inne i kvarandre, vil koden fort bli uleselig. Derfor er det normalt å bruka innrykk også i andre språk. Det er ein diskusjon blant programmerarar om ein skal bruka mellomrom eller tab for innrykk. Begge variantar er mulig, men det blir advart mot å mixa dei. Legg også merke til at mens PHP bruker semikolon for å avslutta ei linje, så treng vi ikkje det i Python.
I somme språk, som Java, må du spesifisera kva type variabelen du skal bruka er, dvs om det er ein streng, heiltal eller andre typar. Det kallast å deklarera variabelen. Det betyr at du må eksplisitt forklara programmet om variabelen er heiltal eller ein annan type. Og hvis du har deklarert variabelen "tall" som heiltall: (int tall) så kan du ikkje seinare feks. setta tall = "fem". Men i Python er det ikkje slik. Varablar treng ikkje deklarerast fordi dei kan innehalda både heiltal, flyttall og tekstrengar. Første gang du bruker ein variabel, må den få ein verdi, feks tall = 2. Dette kallast initialisering. Men det går heilt bra hvis du seinare set tall = "fem". Denne måten å bruka variable på kallast "Dynamic typing". Dette kan vera ganske greit, men det kan også gjera Python-program litt saktare enn tilsvarande i andre språk.
Dynamic typing kan bli eit problem for deg hvis du ikkje held rede på ka slags type variablane dine har.For Python er ikkje så ettergivande som feks. JavaScript er. JavaScript har automatisk konvertering av typer. Det betyr at du kan skriva noko slikt som a = "3" + 5, og då vil talet 5 automatisk bli konvertert til "5" og resultatet vil bli tekststrengen "35". Men i Python går ikkje dette, og du vil få ein feil, som "TypeError: must be str, not int". Merk at Merk at skript kan innehalda slike typefeil uten å bli oppdaga, hvis ikkje koden blir kjørt. Så i Python må du sjøl eksplisitt konvertera typen. Dette kallast typecasting: "3" + str(5) gir strengen "35" og int("3") + 5 gir 8. I verkeligheten vil du gjera det med variable, og spesielt hvis du har eit program som ber brukaren oppgi eit tal, så blir det lest vha. "input"-funksjonen som tekst, og du må sjøl konvertera det til tal, dvs. slik: tall = int(input("Skriv inn tal: "))
Refernse / verdi
Vi skal bruka siste versjon av Python. (Min Anaconda har versjon 3.6.3.) Dessverre er ikkje versjon 3 kompatibel med versjon 2, så det kan vera at program-eksempel som du finn på nett eller i bøker ikkje virkar uten vidare. Spesielt er print no ein funksjon i versjon 3. I versjon 2 ville ein gjera utskriften over slik: print "Husk å tippa Vikinglotto!", men vi vil skriva det som print ("Husk å tippa Vikinglotto!"). Dette er eit vanlig problem når vi kopierer program frå nett. Eldre versjonar bruker også kommandoen raw_input(), men i versjon 3 er dette erstatta med input(). Sjå ellers: What’s New In Python 3.0
Installation of Python, Spyder, Numpy, Sympy, Scipy, Pytest, Matplotlib via Anaconda (2016).