Indata & Utdata

1. Indata & Utdata

De flesta datorprogram är uppbyggda enligt principen att de tar in information från användaren t.ex. något som skrivs in med tangentbordet. Den information datorprogrammet får kallas indata.
Sedan används den informationen (indatat) till att beräkna något. Slutligen presenteras det beräknade resultatet för användaren på t.ex. skärmen. Det kallas utdata.

input() används för att ta emot indata från tangentbordet.
print() används för att skriva ut data till konsolfönstret.

1.1 Avrunda decimaltal

Med funktionen round() går det att avrunda decimaltal innan de skrivs ut.

# Exempel - Avrunda decimaltal med round()
print(1/6) print(round(1/6, 2)) print(round(1/6, 1))
ger utskriften
            0.16666666666666666 
0.17                
0.2 
# Exempel - Avrunda variabler med decimaltal med round()
kvot = 1/6 print(kvot) print(round(kvot, 2)) print(round(kvot, 1))
ger utskriften
            0.16666666666666666 
0.17                
0.2   

Datorer lagrar tal i det binära talsystemet och kan alltså inte lagra decimaltal exakt. Det är bra att skriva ut decimaltalet med ett givet antal decimaler.

# Exempel - Avrunda decimaltal
summa = 0.1 + 0.2 print(summa) test = round(summa, 2) print(test)
ger utskriften
            0.30000000000000004 
0.3 

1.2 Indata

Funktionen input() används för att ta emot indata från tangentbordet. Den ger alltid tillbaka (returnerar) en sträng.

# Exempel - Använd print med flera argument, dvs flera värden
namn = input('Skriv ditt namn: ') # Värdena skrivs ut separerade med ett mellanslag print('Hej', namn) # print har 2 argument
kan ge utskriften
            Skriv ditt namn: Birgitta 
Hej Birgitta 

Här görs omvandlingen från sträng till heltal efter funktionen input() anropats.

# Exempel - Typomvandling till heltal direkt vid inmatning
# Läs in värde ålder = input('Skriv in din ålder: ') # Omvandla datatyp från sträng till heltal ålder = int(ålder) ålder = ålder + 1 print('Nästa gång fyller du', ålder, 'år')
kan ge utskriften
            Skriv in din ålder: 17     
Nästa gång fyller du 18 år 

Här görs omvandlingen från sträng till heltal direkt på värdet från funktionen input().

# Exempel - Typomvandling till heltal direkt vid inmatning
# Läs in värde och omvandla datatyp ålder = int(input('Skriv in din ålder: ')) ålder = ålder + 1 print('Nästa gång fyller du', ålder, 'år')
kan ge utskriften
            Skriv in din ålder: 17     
Nästa gång fyller du 18 år 
# Exempel - Typomvandling till decimaltal direkt vid inmatning
längd = float(input('Hur lång är du i m: ')) längd = längd + 0.1 print('Växer du en decimeter till blir du', längd, 'm lång.') print('Växer du en decimeter till blir du', round(längd, 2), 'm lång.')
kan ge utskriften
            Hur lång är du i m: 1.81                                      
Växer du en decimeter till blir du 1.9100000000000001 m lång. 
Växer du en decimeter till blir du 1.91 m lång

1.3 Utdata

Funktionen print() används för att skriva ut data till konsolfönstret.

# Exempel - Utskrift med print() med flera argument, dvs flera värden
x = 2 y = 14 print('x =', x) print('y =', y) print('x + y =', x + y)
ger utskriften
            x = 2         
y = 14        
x + y = 16
# Exempel - Utskrift med print() med flera argument, dvs flera värden
namn = 'Maria' text = 'är' ålder = 12 print(namn, text, ålder)
ger utskriften
            Maria är 12
# Exempel - Använd sep
# sep används för att separera utskriften av de olika argumenten. # Man kan ange att sep ska vara något annat än ett blanktecken. namn = 'Maria' text = 'är' ålder = 12 print(namn, text, ålder) print(namn, text, ålder, sep= '-') print(namn, text, ålder, sep= '\n') # \n betyder ny rad print(namn, text, ålder, sep= '\t') # \t betyder ett tab-tecken
ger utskriften
            Maria är 12
Maria-är-12    
Maria          
är             
12             
Maria   är  12
# Exempel - Använd end för att avsluta utskriften med något annat än en radbrytning
namn = 'Maria' text = 'är' ålder = 12 print(namn, text, ålder, end= '.') # Avslutar med punkt
ger utskriften
            Maria är 12.
# Exempel - Använd både sep och end
namn = 'Maria' text = 'är' ålder = 12 # Separerar med bindestreck och avslutar med punkt och ny rad print(namn, text, ålder, sep= '-', end= '.\n') print('Ny rad')
ger utskriften
            Maria-är-12.
Ny rad

M.h.a Unicode symboler går det att få upphöjda och nedsänkta siffror.

# Exempel - Med unicode
print('x\u00b2') print('y\u00b3') print('x\u2081') print('y\u2082')
ger utskriften
            x²            
y³            
x₁            
y₂ 

1.4 Film om indata & utdata (8:01)

Starta film om indata och utdata

Du kan inte att lära dig att programmera genom att läsa en bok eller titta på videos. Du måste öva på att skriva kod själv och ju mer du övar desto bättre blir du.
  1. Vad blir utskriften?
    x = round(3.6649, 1)
    print(x)
  2. Vad blir utskriften?
    print(round(3.6649, 2))
    print(round(3.6649, 3))
  3. Hur kommer utskriften från nedanstående program att visas?
    txt = 'Om du kör med hastigheten 30 km/h i 2.5 timmar, så hinner du'
    hastighet = 30 * 2.5
    enhet = 'km'
    print(txt)
    print(hastighet)
    print(enhet)
    Skriv programmet så att utskriften hamnar på en rad. Använd en print-funktion.
  4. Skriv ett program där användaren skriver in ett decimaltal som sedan ska avrundas till en decimal och skrivas ut.
  5. Med formeln s=v·t kan sträckan (s) beräknas om man har hastigheten (v) och tiden (t).
    Skriv ett program som beräknar sträckan om man kör 120 km/h i 90 minuter.
  6. Programmet försöker omvandla liter till milliliter, men varför blir det inte som man tänkt sig?
    antal_liter = input("Ange antal liter: ")
    milli_liter = antal_liter * 1000
    print('Det motsvarar', milli_liter, 'milliliter (ml).')
  7. Skriv ett program där användaren skriver in två heltal och sedan ska summan beräknas och skrivas ut.
  8. Skriv ett program som frågar vad man heter och var man bor. Sedan skriver programmet ut t.ex. Hej, Pelle från Östersund.
  9. Ändra i koden så att två flyttal (decimaltal) adderas.
    # Addera två heltal. 
    
    # Läs in som textsträng och omvandla till heltal
    a = int(input('a = '))  
    b = int(input('b = ')) 
    
    # Beräkna summan
    sum = a + b 
    
    # Skriv ut summan
    print('a + b = ', sum)
    Testkör programmet och skriv in två flyttal. Tänk på att använda decimalpunkt istället för decimalkomma.

    Testa att skriva in flyttal med två eller fler decimaler. Avrunda sedan summan till en decimal.
  10. Skriv ett program där användaren skriver in två tal och sedan ska medelvärdet av talen beräknas och skrivas ut.
  11. Skriv ett program som tar emot en temperatur i grader Celsius som indata och sedan visar temperaturen i Fahrenheit.
    Formeln för konvertering är: F = 1.8C + 32.0
  12. *Skriv ett program som tar emot ett antal minuter som indata och sedan visar hur många timmar och minuter denna tid motsvarar.
  13. *Gör ett program som simulerar en bankomat. Låt användaren skriva in ett uttag (jämnt hundratal).
    Visa sedan hur många hundra-, tvåhundra- och femhundra-lappar bankomaten ska mata ut.

Indata: Information som ges till datorn med t.ex. tangentbord, mus eller mikrofon.

Utdata: Information som visas från datorn t.ex. till en skärm, högtalare eller skrivare.

input: Funktion som används i koden för att ta emot indata från tangentbordet.

print: Funktion som används i koden för att skriva ut data till konsolfönstret.


Variabel: Har ett namn, värde och datatyp.

Tilldelning: En variabel ges ett värde.

Deklarera: Skapa en variabel med en tilldelning.

Funktion: Färdig kod i Python som kan anropas för att utföra vissa instruktioner.

Sats: En instruktion som utför något och är normalt en rad med kod.

Datatyp: En variabel kan innehålla värden av olika sort, t.ex. heltal, decimaltal, textsträng eller bool.

       logout    

input & print

Skriv ett program som frågar användaren vad hen heter, hens ålder och favorit-dataspel (använd input). Ditt program ska ställa tre frågor och sedan ska utskriften bli exakt som exempelkörningen, naturligtvis beror namn, ålder och dataspel på vad användaren svarar.

Exempelkörning:
Vad heter du? Kalle
Hur gammal är du? 17
Vad är ditt favorit-dataspel? Fortnite
Hej, Kalle 
Ditt favorit-dataspel är Fortnite
Nästa gång fyller du 18 år

Kom ihåg! Använd beskrivande variabelnamn och kommentera koden.

Frivillig utmaning

Utskriften ska bli exakt som nedan. Observera att det ska var en tom rad före utskrifterna börjar. Kontrollera att alla punkter och mellanslag (space) är på rätt plats.

Exempelkörning:
Vad heter du? Maria
Hur gammal är du? 17
Vad är ditt favorit-dataspel? Fortnite

Hej, Maria. Ditt favorit-dataspel är Fortnite.
Nästa gång fyller du 18 år.