0% fullført
Kapittel 1.4
I dette kapitlet skal du lære å ta imot input fra brukeren og konvertere mellom ulike datatyper for å lage interaktive programmer.

Til nå har alle programmene våre vært statiske - de gjør det samme hver gang. Med input()-funksjonen kan vi lage interaktive programmer som reagerer på brukerens valg!
input() funksjonen stopper programmet og venter på at brukeren skal skrive inn noe tekst. Når brukeren trykker Enter, returnerer funksjonen teksten som en streng (str).input() returnerer alltid en streng (str), selv om brukeren skriver inn tall! Hvis du vil bruke tallet i beregninger, må du konvertere det først.Siden input() alltid returnerer en streng, må vi konvertere til andre datatyper når vi skal jobbe med tall eller andre verdier.
int()Konverterer til heltall (integer)float()Konverterer til desimaltall (float)str()Konverterer til tekststreng (string)bool()Konverterer til boolsk verdi (True/False)type()Viser datatypen til en verdialder = int(input("Alder: "))Lag et program som ber brukeren om å skrive inn det første tallet. Koden for dette er allerede skrevet: tall1 = int(input("Skriv inn første tall: ")). Legg merke til hvordan vi bruker int(input()) for å både få input OG konvertere til heltall på samme linje.
Be brukeren om å skrive inn det andre tallet. Bruk samme teknikk som i del a). Lagre det i en variabel som heter tall2.
Regn ut summen av tall1 og tall2, og skriv ut "Summen er: " etterfulgt av summen.
La oss se på noen praktiske eksempler hvor vi kombinerer input, konvertering og utregninger.
a = 5 # Vi gir variabelen a heltallsverdien 5.
b = input("Skriv inn et tall: ") # Vi ber brukeren om en verdi. (Streng)
b = int(b) # Vi gjør om inputten til heltall
print(b) # Skriver ut det vi nettopp skrev inn.
print(a+b) # Vi finner summen av a og bNB: Du skal nå skrive selv og altså ikke kopiere programmet i forrige oppgave.
Sett a = input("Skriv inn ett heltall: ") og b = 3.2
Skriv nå a = int(a) under det du skrev i oppgave a) for å gjøre om strengobjektet som blir lagret i a om til et heltallsobjekt som kan brukes til å regne med.
Skriv print(a+b) nederst i koden din og kjør så programmet. Husk at du må skrive inn ett tall og trykke ENTER når koden spør deg om et tall.
Gjør en endring i programmet slik at b = input("Skriv inn ett flyttall: ") istedenfor 3.2. Prøv å kjøre programmet, du vil nå få en feilmelding etter du har skrevet inn egenvalgte tall i konsollen. Hvorfor?
For å løse problemet ifra oppgave d) gjør nok en endring på b og skriv b = float(b) i linjen like under b = input("Skriv inn ett flyttall: "). Her er det viktig at denne linjen kommer før print(a+b).
Knut jobber i en kiosk som selger epler og bananer. Eplene koster 60 kr/kg og bananene kun 45 kr/kg. Knut veier frukten ved disken, men han tuller hele tiden med å huske alle prisene. Han har bestemt seg for å løse problemet ved å be deg lage et lite program som gjør jobben hans enklere. Programmet skal motta informasjon om hvor mange kilo epler og hvor mange kilo bananer en kunde ønsker å kjøpe. Programmet skal deretter returnere hvor mye det koster for eplene, hvor mye det koster for bananene og hvor mye det koster til sammen. (På en oversiktlig måte) NB: Under beskrives en mer skritt for skritt oppgavedeling på denne problemstillingen. Men om du ønsker kan du allerede nå prøve deg på denne oppgaven (Dette vil øke utfordringen og derfor læringen). Du oppfordres uansett til å ta en titt under når du er ferdig.
Lag variabler pris_kg_eple og pris_kg_banan der du lagrer relevante kilopriser.
Bruk input()-funksjonen til å motta antall kilo epler og antall kilo bananer og legg informasjonen i variablene kg_eple og kg_banan. NB: Husk å gjøre om til flyttall.
Sett kostnad_epler = kg_eple*pris_kg_eple og gjør tilsvarende med banan.
Skriv print("Eplene koster til sammen:", kostnad_epler) for å få en svarsetning for hvor mye eplene koster. Gjør det samme for bananer og den samlede prisen.
✓input() brukes for å få input fra brukeren
✓input() returnerer alltid en streng (str)
✓int() konverterer til heltall, float() til desimaltall
✓Du kan kombinere input() og konvertering på én linje
✓Husk å konvertere input før du bruker det i beregninger