Programmeringskurs: 2.3 If-tester
Hvis
Tør du å sette deg inn i en selvkjørende bil? Mye av skepsisen mot selvkjørende biler handler om at vi ikke helt klarer å tro at de vil ta de rette valgene i kritiske situasjoner. Hva vil bilen velge om den får rødt lys før en jernbaneovergang, samtidig som det kommer en trailer i full fart bakfra? Stoppe og risikere krasj, eller kjøre videre og risikere krasj? Hva den velger, vil avgjøres av koden som er skrevet for å kontrollere bilen. Koden vil være full av det vi kaller logiske tester.
En if-test sjekker om noe er sant eller ikke, eller om en bestemt forutsetning er til stede. Vi sier da at if-testen slår til. Hvis den gjør det, skal programmet gjøre et eller annet. Hvis en bil kommer kjørende mot et trafikklys, og det er rødt, må den stoppe. Vi kan beskrive dette slik:
Stopp bilen hvis det er rødt lys
Dette forstår ikke datamaskinen, men vi kan stokke litt om:
Hvis det er rødt lys – stopp bilen
Hvis vi oversetter dette til Python, blir det slik:
if redLight:
stopCar()
I denne koden er redLight det vi kaller en boolsk verdi. Den er enten sann (True) eller usann (False). Enten er det rødt lys, eller så er det ikke rødt lys.
En if-test fungerer slik:
if betingelse :
handling
Hvis betingelsen er True, utføres handlingen. Merk at vi setter kolon etter betingelsen, og at handlingen skal skrives med innrykk . Innrykket skjer stort sett automatisk når vi bruker en kode-editor, eller vi kan bruke tabulator-tasten.
I alle if-tester sjekker vi om en betingelse er sann eller ikke, og da bruker vi som oftest logiske sammenlikninger. En if-test fungerer slik:
Lag et spørsmål med et regnestykke. Brukeren skal skrive inn svaret. Hvis brukeren svarer riktig, skal «Riktig!» skrives på skjermen.
Løsning
Vi lager programmet slik:
Programmet ber brukeren svare på spørsmålet «Hva blir 2 + 2*2 ?». Hvis og bare hvis brukeren svarer med tallet 6, vil if-testen slå til. Hvis brukeren skriver noe annet, skjer ingenting, og programmet avsluttes. Betingelsen her er dermed at svaret er lik tallet 6, og bare da utføres handlingen print("Riktig!"). Her ser du to resultater:
|
|