Oddetall eller partall i Python

Dette er en oppgave for nybegynnere i programmering i Python. Les her hvordan å komme i gang med Python.

Hele oppgaven

Spør bruker å skrive inn et tall. Avhengig av om tallet er et oddetall (1, 3, 5 osv) eller partall (2, 4, 6 osv) skriv ut en melding: “Dette er et oddetall!” eller “Dette er et partall!”.

Tips: tenk hvilke tall kan deles på 2.

Klarer du å få dette til trenger du ikke lese “Oppgaven steg for steg”:
resultat oppgave1

Oppgaven steg for steg

Steg 1. Ta imot input fra tastaturet

For å ta imot input i Python bruker du funksjon input().
skriv inn et tall

Steg 2. Bruk variabel for å huske tallet

Variabel er en boks der du lagrer ting. I Python kan du lagre tall og tekst i disse boksene. For å sette et tall eller en tekst inn i variabel bruker du “=” tegn.
variabler i Python

Steg 3. Åpen IDLE

Videre skal vi skrive flere kodelinjer så det svarte Python vinduet kan ikke brukes lenger.

Vi skal åpne et annet Python kodeprogram – IDLE. Søk opp “IDLE” i søkefeltet og start programmet:
python idle

Dette “kjørevidnu” skal du se når du åpner IDLE:
python idle start

Åpne nytt kodevindu der vi skal skrive selve programmet ved å velge File -> New File:
ny kodevindu python

Kodevindu:

Du skal skrive kode i et kodevindu. Koden skal kjøres deretter i et kjørevindu:
vinduer python

Steg 4. Start å skrive et kodeprogram i Python

Lag kode som tar imot tallet og lagrer det i en variabel med navnet “tallet”:

For å skrive ut noe på skjermen brukes funksjonen print().

tallet = input("Skriv inn et tall: ")
print("Tallet er" + tallet)

python

Kjør koden ved å velge Run -> Run Module (eller F5):
run tallet 1

Steg 5. Finn på en algoritme

Hvordan skal programmet vite om tallet er et oddetall eller et partall?

Vi vet at alle partall kan deles på 2 uten at det blir desimaltall i resultatet. Det kan ikke oddetall:

122 : 2 = 61
333 : 2 = 166,5

Steg 6. Modulo-operasjon i Python

Vi kan enkle matematiske operasjoner (addisjon, subtraksjon, multiplikasjon, divisjon) siden barneskolen. Men i programmering er det ofte ikke svaret på et divisjonsproblem vi trenger, men å vite resten når vi gjør en divisjonsoperasjon. Denne operasjonen kalles “modulo-operasjon“. For eksempel, når jeg deler 5 med 3, er resten 2, og setningen blir slik: “5 modulo 3 er 2.”

I Python er “%” en modulo operator. Prøv den i det svarte vinduet:
modulo eksempel python

Steg 7. If … else – forgrening

Når en datamaskin (eller et program) må bestemme noe, kontrollerer den om en betingelse er oppfylt, og det er her begrepene betinget og forgrening kommer fra. Hvis Ole ble født i Oslo, har han et norsk pass. Denne setningen er en betinget (hvis-setning) som i dette tilfellet er sann. I Python fungerer dette på samme måte:

if alder > 18: 
  print("Jeg er voksen")
elif alder < 18 and alder > 13:
  print("Jeg er tenåring")
else: 
  print("Jeg er barn")

Når programmet kommer til if -setningen, vil det sjekke verdien av variabelen som kalles alder mot alle betingelsene, i rekkefølge fra topp og nedover, og vil skrive ut resultatet på skjermen. Legg merke til at elif betyr “else” og “if” eller “ellers hvis”. Så hvis den variabelen alder inneholder verdien 15, vil utsagnet “Jeg er tenåring” bli skrevet ut på skjermen.

Steg 8. Sjekk for likhet

En grunnleggende ting du vil gjøre med programmet ditt er å sjekke om et nummer er lik et annet. La oss si at brukeren forteller deg hvor mange spørsmål de svarte feil på en eksamen, og avhengig av antall korrekt besvarte spørsmål, kan du foreslå en karakter. For tall og strenger gjøres dette med en enkel syntaks: “==”. Hvis du eksplisitt vil kontrollere ulikhet, bruker du “!=”.

if a == 3: 
  print("Verdien er 3")
elif a != 3:
  print("Verdien er ikke 3")

Legg merke til at betingelsen “a != 3” er overflødig i dette eksemplet. I den første betingelsen sjekker vi om variabelen a har verdien 3, og i den andre kontrollerer vi om a IKKE har verdien 3. Men hvis den første betingelsen ikke er sann (a er faktisk ikke 3), er den andre betingelsen per definisjon sann. Så en mer effektiv måte å skrive ovennevnte betinget er slik:

if a == 3: 
  print("Verdien er 3")
else:
  print("Verdien er ikke 3")

Steg 9. Sjekk om tallet er et oddetall eller partall

Tidligere har vi lagret tallet i en variabel “tallet”. Nå skal vi bruke denne variabelen for å sjekke om det er et oddetall eller et partall.

tallet = input("Skriv inn et tall: ")

Det som blir lagret i variabel “tallet” er en verdi av type “string”. Programmet vet ikke om du skrev et tall eller et ord.

For å fortelle Python at du forventer et tall, må du konvertere tallet om til en verdi av type “integer” – heltall:

tallet = input("Skriv inn et tall: ")
heltall = int(tallet)

Nå kan vi finne resten av divisjonen mellom tallet og 2:

tallet = input("Skriv inn et tall: ")
heltall = int(tallet)
resten = heltall % 2

Det som gjenstår er å sjekke om “resten” er 0 eller ikke:

tallet = input("Skriv inn et tall: ")
heltall = int(tallet)
resten = heltall % 2

if resten == 0:
  print("Dette er et partall!")
else:
  print("Dette er et oddetall!")

losning