Programmeringskurs: 1.3 Variabler
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.