NemProgrammering.dk logo

Betinget udtryk i Python

Lær Python programmering » Betinget udtryk i Python # 5
Inkluderet:
Livstidsadgang
27 videolektioner
7 timers undervisning
Stil spørgsmål
Kursusbevis

Information om denne video

Underviser: Simon Rotendahl   Video: 20:40   Lektion nr. 5 af 27

Hvordan tager jeg beslutninger?

I videoen her skal vi lære om betinget udtryk, et emne som for nogen er super nemt, men for de fleste kan det blive fustrende logisk. I vores daglige liv tager vi sjældent en tilfældig beslutning, du går ud af døren 10:15, da bussen kører 10:30, og du bor et kvarter væk, du drikker ikke en øl, da dit variable siger du har fået mere end rigligt osv. Det samme gælder programmering, vi vil tit gerne foretage os noget, baseret på noget. Et betinget udtryk, betyder at vi vil gøre noget, baseret på en betingelse.

Vi skal lære dette, da vi ellers aldrig kan håndtere flere muligheder, når GPS’en i bilen spørg sateliten, “hvor er jeg?”, så skal den kunne agere ud fra det svar.

Næste video bliver en opsamling, på ting vi har lært indtil nu, så i lige kan få øvet jer lidt.

Spørgsmål og kommentarer

Kun medlemmer med adgang til dette kursus kan stille spørgsmål og kommentere. Bliv medlem her!

  • Jonas C. siger:

    Hej Simon.

    Tak for videoen.
    Jeg tænkte på to ting.
    Den ene fik jeg svar på mens jeg ville finde eksempler på det jeg ikke forstod.
    Så hvis andre tænker over det tager koden alt i rækkefølge og “elif” og finder ikke den der passer bedst, eller kommer nærmest.
    fx:
    x=3

    if x<2:
    print ("ramte if")
    elif x<5:
    print ("ramte elif1")

    elif x<4:
    print ("ramte elif2")

    Giver : ramte elif1

    Men det affødte så et andet spørgsmål, er det muligt at få koden til at undersøge videre og altså finde den løsning der kommer nærmest? Jeg gætter på at det er en hel anden funktion/kode end boolians.

    For det andet:
    Har elif(1) eller elif(0) en praktisk anvendelse, altså fx hvis else i dit eksempel kan tilgås af en anden vej. Eller er det en måde hvor man lukker en vej helt af, hvis jeg nu har en lang kode og på et tidspunkt vil have atom til at se bort fra en del af koden.
    Jeg håber det gav mening.
    Vh Jonas

    1. Simon R. siger:

      Hej Jonas,

      Tak for spørgsmålet.

      Ja det kan være lidt svært i starten, da der er mange ting man lige skal have i hovedet, på en gang. Mht. det med rækkefølge, hvis du lige vil være sikker på at din forståelse er rigtig så kan du evt. gense lidt af video 3, hvor jeg snakker om at Python er et fortolket sprog, bid mærke i at den oversætter/udføre koden linje for linje, eller video 2 omkring 11:20, hvor jeg får en fejl, men linjerne optil fejlen bliver stadig udført. Hvis vi tager koden i din kommentar som et eksempel, så vil den ramme elif1, elif2 passer måske “bedre”, men Python “ser” slet ikke elif2, da når den rammer eilf1, så er den færdig og springer resten over. Tænk på rundkørsel eksemplet, hvis du ser en afkørsel der går til den rigtige by, så tager du den afkørsel, selvom den næste afkørsel måske er kortere, fordi den næste afkørsel har du ikke set. Det virker til at du har forstået det rigtigt, men jeg ville lige udvide lidt på det for at være sikker på at der ikke er en misforståelse :)

      Mht. det andet spørgsmål omkring “den nærmeste/bedste løsning”, så bliver det lidt situations bestemt. F.eks så er x<4 ikke et bedre "svar" end x<5 når x = 3, begge udtryk er sande, og de blive ikke "mindre" sande fordi x bliver mindre, JEG forstår godt hvad du mener når du siger at x<4 er et bedre svar, men det gør computeren ikke. Hvis man kommer ud i sådan en situation, så er der ikke en generel løsning, det er situation til situation. Hernede under kommer der et eksempel, på en sådan situation, det giver nok først rigtig mening efter du har set video 8 og 9, men du får det lige så du har det til den tid.

      F.eks hvis du vil finde det mindste tal i en mængde af tal, lad os sige at mængden af tal hedder A
      Du kan se koden på linket her.
      https://pastebin.com/thKbF1Nb

      Du kan prøve at kopiere koden herover og køre den. De to print linjer er ikke nødvendige det er bare så du kan se hvad der sker, "for tal in A" lære du i video 9, og "A = …", samt "A[0]" lære du i video 8.

      Jeg håber det hjalp, det var dog en lang kommentar, så du må endelig sige til hvis der er noget i den som ikke lige giver mening :)

      Mvh.
      Simon

  • Henrik H. siger:

    Hvor er det dog dumt at smide noget ind i en opgave elif (1) når man ikke har lært det. Det betyder som underviser at du sikrer dig at dine elever sidder med en følelse af fiasko.
    Tak for lort

    1. Simon R. siger:

      Hej Henrik,

      Jeg må lige nød til at starte med at sige at jeg ikke syntes din tone er okay, jeg syntes ikke det er en særlig pæn måde at give kritik på.

      Mht. Til din kommentar. Ideen med elif (1), var faktisk lige netop at minde jer om noget i havde lært, og udvide jeres forståelse. Hvis du kigger i videoen omkring 1:10-1:20 så siger jeg nemlig at true er det samme som 1 og false er det samme som 0. Så meningen var at slå den forståelse bedre fast.

      Jeg kan godt se at det blev nævnt kort, men det syntes jeg ikke gør den tone i orden.