Programmeringskurs (alle) *: 1.3 Variabler
Definere type input
Nå har vi sett at input kan brukes til å la brukeren av programmet påvirke hva programmene vi lager, skal gjøre.
Vi kan be brukeren om å skrive inn verdien til en variabel ved å bruke koden:
variabel_navn = input("Beskjed til brukeren")
Da kan vi lage nyttige programmer i matematikken som gjør tidkrevende utregninger raskt. I eksempelet ovenfor skriver brukeren inn navnet sitt – en tekststreng. Når vi bruker input, vil det brukeren skriver inn, i utgangspunktet uansett tolkes som en streng. 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 om inputverdien er tall. Derfor bør vi alltid bruke den samme metoden som vi brukte for å gjøre om heltall til desimaltall, og motsatt. Ved å bruke int() eller float() kan vi kontrollere at inputverdien blir forstått som henholdsvis heltall og desimaltall.
tall = input("Skriv inn et tall:")
# koden nedenfor gjør om input til et heltall
tall_heltall = int(tall)
# koden nedenfor gjør om input til et desimaltall
tall_desimal = float(tall)
I koden ovenfor oppretter vi først variabelen tall og ber brukeren skrive inn et tall. I 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:"))
Med dette på plass kan vi lage programmer som regner om mellom ulike størrelser og bruker input fra brukeren.
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
km = input("Skriv inn antall kilometer:")
km_desimal = float(km) # Input til desimaltall
nmi = km_desimal/1.852 # Regner om km til nautiske mil
nmi_avrundet = round(nmi, 2) # runder av til to desimaler
print(km, "km svarer til", nmi_avrundet, "nmi.")
ØVELSE
1) Nedenfor har vi skrevet inn eksemplet ovenfor.
2) Endre koden slik at den regner om fra kilometer til nautiske mil med #3# desimaler i svaret.