Vägskälet

Programmet fattar ett beslut

För att skriva en berättelse behöver du ett verktyg till. Hittills har dina program varit linjära, de kör rad för rad, alltid i samma ordning, oavsett vad användaren skriver. En berättelse som slutar likadant oavsett vad spelaren väljer är inte ett äventyr.

Det du saknar är förmågan att välja: att låta svaret på en fråga avgöra vad som händer härnäst. Det är vad if gör, ett Villkor Ett uttryck som Python utvärderar som True eller False. Styr vilket kodblock som körs i en if-sats. Se: Vägskälet , ett kodblock som bara körs om villkoret är sant.

Den här kursen vilar på tre förmågor: att spara, att välja och att upprepa. Variablerna gav dig den första. Den här delen ger dig den andra. Den tredje väntar i nästa tema.

Du har också sett if och else skymta förbi i Tärningsduellen i Slump & moduler. Nu tittar vi närmare på dem. Den fulla behandlingen med elif-kedjor väntar i Konsten att välja i nästa tema.

Villkor och jämförelseoperatorer

En if-sats utvärderar ett villkor, ett uttryck som Python bedömer som antingen True eller False. Det är samma bool-typ vi träffade i Lådor i RAM & datatyper. Villkor skrivs med Jämförelseoperator Jämför två värden och svarar True eller False. Det finns sex: == (lika med), != (inte lika med), > (större än), < (mindre än), >= (större än eller lika med), <= (mindre än eller lika med). Hela tabellen finns i delen Vägskälet. Se: Vägskälet :

Editor

Redo.

Den sista raden är viktig, "hej" och "Hej" är inte samma sak för Python. Det kommer bli viktigt när vi jämför inmatning.

De sex jämförelseoperatorerna

Fler än så finns inte, och du kommer att använda alla sex genom hela kursen. Kom tillbaka hit när du är osäker.

OperatorBetyderSant när
==lika med5 == 5
!=inte lika med5 != 3
>större än5 > 3
<mindre än3 < 5
>=större än eller lika med5 >= 5
<=mindre än eller lika med3 <= 5

De två sista är de som glöms bort, och de är ofta precis vad du vill ha. Ska något gälla från och med 18 år är villkoret ålder >= 18, inte ålder > 18, för annars faller alla artonåringar utanför. Ett enda tecken skiljer, och felet syns aldrig som en krasch.

Villkoren går också att kombinera, så att flera saker måste stämma samtidigt. Det gör du med and, or och not, och de tar vi i Villkoret växer i nästa tema.

if och else

Editor

Redo.

Kolonet i slutet av if-raden och else-raden är obligatoriskt, Python ger SyntaxError utan det. Indrag Fyra mellanslag i början av en rad som talar om för Python att raden tillhör ett kodblock. Obligatoriskt, fel indrag ger IndentationError. Se: Vägskälet är lika obligatoriskt, det talar om för Python vad som tillhör blocket.

Jämföra inmatning

Det du främst kommer använda if/else Låter programmet välja mellan två kodblock beroende på om ett villkor är sant eller falskt. Se: Vägskälet till just nu är att svara på vad användaren skrivit med input(). Kom ihåg från Dialogen & konvertering att input() alltid returnerar en sträng, jämför därför alltid mot strängar:

Editor

Redo.

Skriver användaren "Ja" med stort J hamnar de i else-blocket, för "Ja" == "ja" är False i Python. Det är skiftlägeskänsligheten från jämförelseexemplet ovan.

Lösningen är .lower(), en strängmetod som returnerar en ny sträng med alla tecken omvandlade till gemener. Redigera koden ovan och använd .lower() på inmatningen innan jämförelsen.

svar.lower() ändrar inte variabeln svar, det returnerar ett nytt värde. Precis som int() och str() i Dialogen & konvertering.

Ingen uppgift i den här delen, för nästa del är uppgiften: milstolpen där du bygger äventyret. Kör quizfrågorna så att verktygen sitter först.