I detta inlägg börjar vi titta på några fundamentala delar i Python gällande lagring av information. Vi ska göra det så praktiskt och icke-akademiskt som möjligt. Här har vi inte tid att introducera för mycket teori så det blir tråkigt.
I datorprogram måste vi lagra information.
- variabler
- listor
- datastrukter i sin generella form
är olika namn för att kunna göra detta.
Till en början ska vi titta på
- Variabler som lagringsplats
- Lagra data i listor och tupler
Du behöver ha installerat Python och kunna starta upp IDLE för att fortsätta följa med. En bra början är följande länk: Hur du installerar Python och PyCharm på din dator
Dags att kicka igång
Titta på följande kod och kopiera den till IDLE eller din editor.
Kör programmet. Vad ser du?
Name: ex1.py. namn = 'Karl' riktning = 'Nordlig' kostnad = 200 print(namn) print(riktning) print(kostnad)
Om du inte fick några fel borde du se tre rader som motsvarar de tre variablerna: namn, riktning, kostnad
Detta är tre olika variabler som vardera lagrar olika typer av information.
När man skriver något inom citattecken kallas det för sträng
, som i exemplet ’Karl’ eller ’Nordlig’
Variabeln kostnad
å andra sidan innehåller ett heltal, eng: integer.
Därför behöver du komma ihåg följande:
en variabel har ett värde och datatyp
Datatyp kan vara sträng, heltal
, det finns andra typer som vi möter senare.
Projekt – En träningsapp
Nu är det dags att påbörja grunden till att skriva ett program som kan hjälpa oss i form. Vi ska jobba emot att bygga en enkel version av en träningsapp, detta gör vi för att det är viktigt att förankra kunskaper i ett riktigt projekt.
Förutom variabler behöver vi kunna lära oss en sak till just nu: listor eller tupler.
För att göra detta möjligt att börja med så kommer vi bara skriva kod med den kunskap vi har nu.
Exempel på hur man vill använda programmet är flera, nu fokuserar vi på att hålla reda på vilka övningar som ska göras, hur många gånger du ska träna och liknande uppgifter.
Så här kan man börja för att få en känsla som kan vara grunden till en riktig app för att skapa ett träningsschema.
Kopiera koden till IDLE i ett nytt script och kör programmet. Skriv ut variabeln exercises
.
Högerledet är en datastruktur som kallas tuple
i Python.
vecka = 1 schema = 'Workout A' exercises = ('Bench press', 'Deadlift', 'Squat', 'Biceps curl')
Denna tuple innehåller fyra element. Det finns ingen gräns på hur många element du kan ha, borträknat din dators kapacitet förstås.
Nu har vi ett exempel på ett träningsschema för vecka 1. Vi har tre variabler: vecka, schema, exercises som programmet använder för att hålla reda på information.
Nu kan vi alltid köra detta program och låtsats som att det är vår färdiga app.
Men det hade väl varit roligare om vi kunde köra detta för flera veckor, inte sant?
Innan vi gör det, prova följande övning.
Uppgift: lägg till en variabel frequency
som anger hur många gånger per vecka man tränar. Kom ihåg att du bara har fyra övningar, så ett giltigt värde kan egentligen vara något mellan 1-4 – du får bestämma!
Kom ihåg att vi inte heller varit noggranna med hur ett träningsupplägg kan se ut, därför måste du veta om hur programmet ska användas, eller bestämma hur det ska användas också.
Att översätta önskemål till kod är en stor del av att kunna skriva bra program. Detta är också anledningen till att vi tidigt börjar med ett exempel.
Direkt börjar man fundera på vilka frågor som är relevanta för att programmet ska fungera som man själv vill. Detta kommer vara en återkommande fråga i denna introduktion. Det är viktigt att tänka i dessa banor tidigt så att man inte bygger ”fel” program.
Uppgift: lägg till följande rad i ditt program. Kör programmet, tryck Enter för att återgå/avsluta programmet.
input('Vill du se alla övningar i träningsschemat?')
Denna förändring ger användaren möjlighet att mata in ett svar till programmet, hur svaret hanteras avgör programmets beteende.
Prova att köra programmet.
Tryck på Enter för att komma vidare ifrån frågan.
När programmet körs så kommer det att stanna och vänta på användarens svar.
Väljer du att inte trycka på någon tanget så kan programmet stå i all evighet. Prova därför att trycka på Enter och se ditt program köra klart.
input
kallas en inbyggd Python funktion.
senare kommer vi skriva våra egna funktioner.
Funktioner är paketerade lösningar på vanliga problem som en programmerare behöver
Föreställ dig en snickare som ska kapa en träregel, han kan då använda sig av en såg (funktion) som är ett verktyg, för att hjälpa snickaren. En elektrisk såg är ännu bättre, men också exempel på en funktion för att hjälpa snickaren.
Anledningen till att print
och input
är inbyggda funktioner har att göra med att det är komplext att hantera hur en dator ”pratar” med en användare och skulle vara slöseri med tid om man behövde programmera den logiken själv.
Funktioner döljer komplex logik i ett enkelt format för att programmeraren ska ha ett roligare och enklare liv.
svar = input('Vill du se alla övningar i träningsschemat?') print(svar) # Skriver ut svaret från användaren
I denna kod har vi lagt till en variabel svar
till vänster om uttrycket för input
. Detta sätt gör att varibelns värde kommer att bli precis det som användaren skriver in. Prova att köra programmet och skriva in ett svar och tryck Enter. Vad ser du?
Flödet ser ut som följande
Programmet ställer en fråga –> Användaren svarar på frågan –> Programmet sparar svaret (returvärdet) från funktionen i variabeln svar
.
Nu har vi ett fungerande exempel där vi kan ställa en fråga och spara undan ett svar, sista raden skriver ut variabeln.
Bra att veta: om vi betraktar två olika tilldelningar som vi sett tidigare
vecka = 1 svar = input('Vill du se alla övningar i träningsschemat?')
Om vi jämför dessa två högerled, kallas 1 för ett konstant värde. Det vi måste känna till är att även input representerar ett värde och det står inte i koden som en siffra, däremot kommer det uttrycket garantera att det blir ett värde som går att spara i en variabel (svar
). Det är upp till programmeraren att undersöka värdet, det är anledningen till att vi skriver vi ut det med print
ovan.
Fram till nu och en bra bit framöver räcker det med att förstå och anta att det som står till höger om likheten måste vara ett uttryck som resulterar i ett värde.
Viktiga termer: funktion, tuple, variabel, sträng, returvärde
Prova att formulera om meddelandet till att förtydliga för användaren att man bara kan mata in ”Ja” eller ”Nej”. Kom ihåg det är texten inom citattecknen som ska ändras.
Kör om programmet och försäkra dig om att rätt svar skrivs ut.
Det här är hela programmet.
vecka = 1 schema = 'Workout A' exercises = ('Bench press', 'Deadlift', 'Squat', 'Biceps curl') svar = input('Vill du se alla övningar i träningsschemat? (Ja/Nej)') print(svar) # Skriver ut svaret från användaren
Uppgift
- [] Lägg till en ny fråga till användaren genom att använda
input
och frågan Vilken övning vill du veta mer om? - [] Skriv ut resultatet (värdet) från den inmatningen.
Summering
I denna del har vi gått igenom koncept som man kan använda för att bygga väldigt många olika program med. Du har fått öva på Pythons egna funktioner samt sparat undan information i ett program.
Vi har gått igenom en enklare process för hur ett program kan utvecklas. Vi började med en presentationstext och utökade det i flera steg med att ställa fråga till användaren, vi har även skrivit ut användarens svar. På detta sätt programmerar man till en början, olika delar växer fram i olika takt, det är inte lätt att utföra allt på en gång, därför är det bra att tidigt tänka sig att denna process är normal. Om någon vill göra allt på en gång, ta för vana att undvika dessa personligheter.
I nästa del ska vi se hur man kan styra flödet i ett program på olika sätt. och hur man kan använda fler av Pythons funktioner för att läsa in textfiler.
Fundera på hur du vill utveckla ditt program. Efter att användaren har skrivit in ett svar kan man exempelvis göra programmet lite mer användarvänligt och be om detaljer för en övning.
Vi ses i nästa del!