Introduktion
Du har nu fått lära dig om variabler och print samt hur du hanterar Python-programmet. Det kanske känns som lite och otillräcklig kunskap, men med hjälp av informationen du får i denna lektion så kommer du att kunna börja skapa fantastiska projekt. Vi på KlassKlur har till exempel kodat en fungerande miniräknare bara med hjälp av det du har lärt dig och kommer att lära dig nu.
Få användaren att göra och välja saker
Spel och andra program bygger oftast på det som användaren väljer och vill. Med hjälp av print kan vi få en sak att skrivas ut, men det går att få den som kör programmet att skriva in vad den vill med hjälp av input. Input liknar print mycket, men det finns några skillnader. Läs vidare för att lära dig mer.
Skriv ett input-kommando
Ett input-kommando skrivs ungefär som print, men det användaren skriver måste lagras i en variabel. Därför så måste du välja ett variabelnamn, t.ex. "test" och sedan lägga till ett = - tecken vilket berättar att variabeln innehåller det som vi skriver efter tecknet. Detta gick vi igenom i förra lektionen. När du har skrivit in variabelns namn så är det bara att lägga till input-kommandot. Input skrivs så här: input("Din fråga här"). Som du ser så liknar kommandot print väldigt mycket, men du kommer att märka skillnad när du kör koden. Testa med denna kod:
Kod för att fråga efter ditt namn med input
Denna kod berättar att programmet ska fråga efter användarens namn och sedan lagra svaret i variabeln "namn". När du kör koden så kommer programmet att ställa frågan och sedan avsluta processen helt när du trycker på enter för att bekräfta att ditt svar är klart. För att lägga in något som visar att ditt svar sparats kan vi lägga till ett print - kommando efter att input-kommandot körts. Prova med denna kod:
Kod som skriver ut variabeln namn
Och om du provar att köra kommandot och skriva in ett namn så kommer du märka att det fungerar.
Frågan ställs, svaret printas ut och programmet avslutas. Allt fungerar som det ska. Nu när du har lärt dig om input så kan du gå vidare till att lära dig om logik. Med bara kunskap om hur du använder programmeringslogik på rätt sätt så kan du bygga program som är komplexa och kan "tänka själv"
Logik
Logik. Man kan beskriva logik som en kod som gör att datorn kan tänka och göra egna val beroende på olika saker. I logik använder man sig av olika slags loopar. Information om alla loopar och hur du använder dem finns här nedanför.
Tänk på detta:
När du har skrivit ut en loop i ditt program så kommer i vanliga fall innehållet i loopen (koden som ska köras i loopen) att "tabbas" in. Det innebär att koden kommer att hamna längre in än vanligt. Det är normalt, och om innehållet av någon anledning inte tabbas in automatiskt så kan du trycka på "tab"-knappen på ditt tangentbord. En loop med tabbat innehåll ser ut så här:
Det är mycket viktigt att du inte glömmer detta. Om något är tabbat fel så kommer Python att säga "Unexpected indent".
if (om)
En if-loop är en loop som kontrollerar om det som loopen ska kontrollera stämmer och om det gör det så kör den koden som finns inuti loopen. Du skriver en if-loop ungefär så här: if siffra/variabel (matematik) siffra/variabel: If-loopen består alltså av tre delar: först "if" som berättar att loopen är en if-loop. Sedan så består den av en eller flera variabler eller siffror. "Matematik" i mitten betyder att det är där du ska bestämma hur loopen ska jämföra variablerna. Det kan vara att den ska kolla om variablerna är detsamma (==), om den ena är större än den andra (> eller <) eller någon helt annan matematisk uträkning. En if-loop jämför alltså det som du skriver efter if, och om det stämmer så kör den koden som finns inuti if-loopen. Testa att skriva såhär:
Testa hur if-loopar fungerar
Detta program skapar en variabel som heter "nummer" och frågar användaren att skriva ett valfritt nummer. Svaret lagras i variabeln "nummer". Int används för att göra om det du skrivit in till en siffra. Efter det så kontrollerar if-loopen om numret användaren skrivit in är ett (1). Om det är det så kommer den att printa ut "Du skrev siffran ett som nummer!" Testa att köra koden och att skriva in lite olika nummer.
Detta händer om du skriver in "1" som nummer:
Och om du inte skriver in "1" som nummer stängs programmet av och printar inte ut någonting:
Bra, allt fungerar! Nu ska vi gå vidare till att lära oss ännu mer om if-loopar samt andra loopar.
else och elif:
Det är många gånger som du kanske vill göra något annat om det som if-blocket kontrollerar inte stämmer. I koden ovan så frågar vi användaren om att skriva in ett nummer, och om numret är två så printas en text ut. Men om du istället skriver in något annat nummer än två så stängs bara programmet av. Det är där som else och elif kommer in i bilden.
else:
"Else" betyder "Annars" på Svenska och det är precis vad else är för något. Du lägger till else på en ny rad efter din kod som ska köras i if-blocket, och else får inte vara in-tabbat som koden i if-blocket ska vara, utan else måste vara lika mycket in-tabbat som if-blocket det tillhör. När du skriver else så skriver du så här:
Kod där "else" har lags till efter
Som du ser så har vi koden som vi arbetade på i if-guiden, fast vi har lagt till "else:" på slutet. Nu så kommer det inte att göra någonting, men om vi lägger in ett print-kommando under else så kommer vi att se ett resultat. Prova att själv skriva den koden genom att fortsätta på koden här ovanför!
Har du provat att skriva koden? Du vore ha skrivit en kod som liknar den här:
Kod som frågar efter ett nummer och skriver ut olika textsträngar beroende på vad användaren skriver in som nummer.
Prova nu att köra koden och skriva in lite olika siffror och tal.
Som du ser så printas nu alltid en text ut, oavsett vilket nummer du skriver (bara inte du skriver någon text, utan bara siffror.). Om du skriver in siffran ett så skriver programmet ut det, annars så berättar programmet att du inte skrev siffran ett som nummer.
elif:
Elif fungerar ungefär som else, den enda skillnaden är att koden som är i ett else-kommando kommer att köras om det som if-blocket kontrollerar inte stämmer. Det innebär att om if-blocket ska kontrollera om en variabel är 1, så kommer elif-koden att köras om variabeln inte är 1, oavsett vad variabeln är. Om du t.ex. vill låta en användare välja mellan flera val, t.ex. 1 och 2, så kan du använda elif för att gå vidare efter if-koden och kolla om elif-koden stämmer istället.
Det är lite krångligt och svårt att förklara, men elif körs alltså om det som if-blocket kontrollerar inte stämmer, och elif kontrollerar också om något annat kan stämma, t.ex att variabeln är lika med två, och kör koden som finns "inuti" elif-kommandot. Du skriver elif precis som en if loop, men du skriver elif i början istället för if.
Det är lite krångligt och svårt att förklara, men elif körs alltså om det som if-blocket kontrollerar inte stämmer, och elif kontrollerar också om något annat kan stämma, t.ex att variabeln är lika med två, och kör koden som finns "inuti" elif-kommandot. Du skriver elif precis som en if loop, men du skriver elif i början istället för if.
Vad är fördelen med elif?
Fördelen med elif är riktigt bra. I denna exempelkod nedan frågar programmet ett lösenord, och om lösenordet är 12345 eller 54321 så kommer en text att printas ut, annars så stängs programmet av. Så här skulle koden sett ut om den var skriven med hjälp av if och else:
Kod för att visa fördelen med elif.
Först så frågar programmet efter ett lösenord, sedan så kontrollerar det om lösenordet är "12345". Om lösenordet inte är "12345" så går programmet vidare till den första else-loopen och kontrollerar om lösenordet är "54321". Om lösenorden stämemr så printas en text ut som berättar att användaren skrivit in rätt lösenord. Om det inte är det så aktiveras en andra else-loop och då printas "Fel lösenord, försök igen." ut. Denna kod fungerar, men den går att göra effektivare. Alla olika tabs kan vara krångliga och else-loopen används på fler ställen vilket kan göra koden svår att följa korrekt. Kolla bara på denna kod:
En effektivare kod där "elif" används.
Fördelen med denna kod är att den är mycket enklare att skriva då det bara behövs tre loopar och inte fyra stycken som i det första exemplet. Dessutom så är koden enklare att läsa och den består inte heller av en massa tabs.
Använd or eller and för att kontrollera flera saker i samma loop:
Tänk om det skulle gå att göra koden här ovan ännu kortare? Det går! Du kan nämligen lägga till fler saker som if-blocket ska kontrollera i samma if-block. Därför så kan vi skriva om koden här ovan genom att använda oss av or. Or fungerar precis som elif, men du lägger till or direkt i if-blocket istället för att behöva byta rad och skriva ut en ny loop. Nu kanske du undrar vart man skriver "or" någonstans. Jo, du lägger bara till "or" efter där du har skrivit vad if-loopen ska kontrollera och efter det så lägger du till något mer som loopen ska kontrollera. Det är så svårt att förklara, så det är bättre att visa det istället.
Kod där or-används.
or används alltså för att kontrollera flera saker i en och samma loop. Detta gör att vår kod nu endast är fem rader lång och enklare att felsöka.
and:
and fungerar lite annorlunda än or. or fungerar som en elif-loop som kontrollerar om det kan finnas något annat som stämmer om det första som kontrollerats inte stämmer. And kontrollerar om allt som if-loopen kontrollerar stämmer. Det är användbart om flera saker måste stämma för att en viss kod ska köras. Prova nu att göra uppgifterna nedan för att kontrollera om du har lärt dig något!
Uppgifter:
Här nedan finns uppgifter som relaterar till det du lärt dig i denna lektion! Du behöver inte göra alla uppgifter, men försök så gott du kan!
Uppgifter kring input
- Kan du skriva ett program som frågar efter ditt namn och sedan printar ut det?
- När du är klar med den första uppgiften, utveckla ditt program så att det frågar efter flera olika saker, t.ex. din favoritfärg, ditt favoritämne m.m.
Uppgifter kring input och if
- Gör ett program som ställer ett antal frågor och ger dig poäng för om du har svarat rätt på frågan och ger dig minuspoäng om du svarar fel. Lägg också till:
-En möjlighet för användaren att välja namn.
-En möjlighet för användaren att välja vilka frågor hen vill besvara.
-En funktion som gör det möjligt att skriva egna frågor.
- Bygg ett eget, valfritt spel som använder sig av input, if och and.
- Kan du skriva ett avancerat program som gissar användarens humör med hjälp av frågor, variabler, input och if?
- Är det möjligt att korta ner koden i något av programmen ovan? Kan du göra det?
- Det finns oändligt många olika, roliga saker som du kan bygga inom Programmering. Gör det häftigaste program du vet och kan med hjälp av det du hittills lärt dig inom Programmering!
Exempelfiler
Miniräknare med if, input och variabler:
En miniräknare programmerad med hjälp av if, input och variabler med en tydlig kod och fyra grundfunktioner. Kopiera koden och klistra in den i en ny Python-fil.
Miniräknare med if, input och variabler - kod.