Programmeringskurs: 1.3 Variabler

Teori Definere type input

Når vi bruker input, vil det brukeren skriver inn, i utgangspunktet uansett tolkes som en tekststreng. Skriver vi for eksempel

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

oppretter vi variabelen tall og ber brukeren skrive inn et tall. Men datamaskinen forstår ikke automatisk at den innskrevne verdien er et tall som skal regnes med. Derfor må vi bruke int() eller float() til å konvertere input-verdien til henholdsvis heltall eller desimaltall.

tall = input("Skriv inn et tall:")
tall_heltall = int(tall)
tall_desimal = float(tall)

I koden ovenfor oppretter vi først variabelen tall og ber brukeren skrive inn et tall. Verdien blir da tolket som en tekst-streng. På de følgende linjene lager vi nye variabler som sørger for at tallet blir forstått som henholdsvis et heltall og et desimaltall. Husk at dersom brukeren skriver inn et desimaltall, vil koden int(tall) fjerne desimalene. Vi bør derfor være sikre på at brukeren skriver inn et heltall når vi bruker denne.

Ønsker vi å spare linjer i koden vår, kan vi gjøre om til riktig type direkte. Dersom vi setter float() rundt input(), blir det brukeren skriver inn, et desimaltall:

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

Nå kan vi lage programmer som regner mellom ulike størrelser og bruker inntastede data fra brukeren.

En nautisk mil er #1852# meter lang. Lag et program som regner om kilometer til nautiske mil. Resultatet skal oppgis med to desimaler.

Løsning:

I programmet må brukeren først skrive inn antall kilometer. Det gjør vi slik:

km_input = input("Skriv inn antall kilometer: ")

Deretter gjør vi om inputverdien til et desimaltall som vi kan regne med:

km_desimal = float(km_input)   # Input til desimaltall

Nå regner vi om kilometer til nautiske mil. En kilometer er #1000# meter, dermed er #1# nautisk mil #=1,852# km. For å regne om fra kilometer til nautiske mil deler vi derfor antall kilometer på #1,852#.

nmi = km_desimal/1.852         # km til nautiske mil

Så runder vi av svaret til to desimaler:

nmi_avrundet = round(nmi, 2)   # Runder av til to desimaler

Til slutt skriver vi ut en setning med svaret. Merk at vi bruker variabelen km_input. Det programmet da skriver ut, er likt det brukeren skrev inn.

print(km_input, "km svarer til", nmi_avrundet, "nmi")

Hele koden blir slik

Kjør koden i eksemplet og prøv ut programmet for noen ulike input-verdier.

Cappelen Damm Kontakt: cda-matematikk@cappelendamm.no | Hva er Student? | Personvernerklæring | Rettigheter