Hello world, input och output

Här skriver du dina första program. Målet är att du ska förstå vad input, output och variabler är, och kunna skriva enkla program med print(), input() och int().

Ditt första program

Traditionen säger att det första programmet man skriver i ett nytt språk ska skriva ut texten Hello world. I Python är det en enda rad. Tryck på Kör:

Python · du kan ändra koden
print("Hello world")

print() är ett kommando — en funktion — som skriver ut något på skärmen. Det som står inom parentesen skrivs ut.

Citattecknen talar om för Python att Hello world är text, en så kallad sträng (string). Utan citattecken tror Python att det är namnet på något.

Tänk på

Citattecknen måste vara raka: " — inte typografiska som ” eller “. På iPad hittar du de raka citattecknen genom att hålla fingret på citattecken-tangenten och välja det raka alternativet.

Så läser datorn koden

Datorn läser koden uppifrån och ner, en rad i taget, och gör exakt det som står.

Du kan skriva förklaringar i koden, så kallade kommentarer. En kommentar börjar med # och hoppas över när programmet körs.

Python · du kan ändra koden
# Det här är en kommentar – den påverkar inte programmet
print("Först skrivs den här raden ut")
print("Sedan den här")  # en kommentar kan också stå efter koden

Variabler

En variabel lagrar information, ungefär som i matematiken där x = 10 betyder att x har värdet 10. En variabel har ett namn och ett värde.

Värdet ges med tilldelning: = betyder ”lägg värdet till höger i variabeln till vänster”. Det är alltså inte samma sak som likhetstecknet i matematiken.

Python · du kan ändra koden
namn = "Ada"
print(namn)

namn = "Alan"   # en variabel kan få ett nytt värde
print(namn)

Kom ihåg

  • Variabelnamn får innehålla bokstäver, siffror och _, men inte börja med en siffra.
  • Stora och små bokstäver spelar roll: namn och Namn är två olika variabler.
  • Välj namn som berättar vad variabeln innehåller, till exempel radie hellre än r2.

Skriva ut med print()

Det finns flera sätt att skriva ut text och variabler tillsammans:

Python · du kan ändra koden
var1 = "world"

print("Hello")            # Hello
print("Hello", var1)      # Hello world – kommatecken ger ett mellanslag
print("Hello" + var1)     # Helloworld – + slår ihop utan mellanslag
print(f"Hello {var1}")    # Hello world – en f-sträng

Det sista sättet, f-strängen, är det modernaste och oftast mest lättlästa. Mer om den längre ner.

Datatyper

Variabler kan innehålla olika typer av information. Python är dynamiskt typat: en variabel får den typ som värdet har, och kan byta typ om den får ett nytt värde. I en del andra språk måste man ange typen när variabeln skapas.

De fyra vanligaste datatyperna är:

str – sträng
Text, omsluten av citattecken. Exempel: "snabbkaffe"
int – heltal
Tal utan decimaler (integer). Exempel: 17
float – decimaltal
Tal med decimaler, skrivs med punkt. Exempel: 0.67
bool – boolesk
Kan bara vara True eller False.

Med type() ser du vilken typ ett värde har. Byt var = 17 mot var = 17.0 och sedan var = "17" och kör igen — vad händer med resultatet?

Python · du kan ändra koden
var = 17
resultat = var + var
print(resultat)
print(type(var))

Strängar

Med strängar fungerar + och * på ett annat sätt än med tal:

  • + slår ihop två strängar (konkatenering).
  • * med ett heltal upprepar strängen.
Python · du kan ändra koden
print("9" + "9")   # 99 – två strängar slås ihop
print(9 + 9)       # 18 – två tal adderas

print("ha" * 3)    # hahaha
print("9" * 2)     # 99
print(9 * 2)       # 18

Input – läsa in från användaren

Med input() kan programmet ställa en fråga och läsa in det användaren skriver. Texten inom parentesen visas som fråga, och svaret sparas i en variabel.

Python · du kan ändra koden
namn = input("Hej, vad heter du? ")
print(f"Trevligt att träffas, {namn}!")

Kom ihåg

input() ger alltid en sträng — även om användaren skriver en siffra. tal = input("Skriv ett heltal: ") ger alltså texten "5", inte talet 5.

Typomvandling

För att räkna med det användaren skriver måste texten omvandlas till ett tal:

  • int() gör om till ett heltal,
  • float() gör om till ett decimaltal,
  • str() gör om ett tal till en sträng.
Python · du kan ändra koden
a = input("Skriv ett tal: ")
b = input("Skriv ett tal till: ")
print("Utan omvandling:", a + b)            # strängarna slås ihop

print("Med omvandling:", int(a) + int(b))   # talen adderas

f-strängar

En f-sträng är en sträng med ett f framför: f"...". Inuti den kan du skriva variabler och uttryck inom klamrar { } (måsvingar), och värdet sätts in i texten.

Python · du kan ändra koden
tal1 = 7
tal2 = 5
print(f"Summan av {tal1} och {tal2} är {tal1 + tal2}")

# Samma sak utan f-sträng – krångligare, och lätt att glömma mellanslagen:
print("Summan av " + str(tal1) + " och " + str(tal2) + " är " + str(tal1 + tal2))

I en f-sträng kan du också bestämma antalet decimaler: {area:.2f} skriver ut area med två decimaler.

Uppgifter

Uppgift · Summera två tal

Skriv ett program där användaren får skriva in två tal. Programmet ska summera talen och skriva ut resultatet.

Din lösning · du kan ändra koden
# Skriv din kod här
Visa lösningsförslag
Python · du kan ändra koden
tal1 = int(input("Skriv det första talet: "))
tal2 = int(input("Skriv det andra talet: "))
summa = tal1 + tal2
print(f"Summan är {summa}")

Vill du kunna skriva decimaltal? Byt int mot float.

Uppgift · Räkna med mig!

Skriv ett program som frågar efter två tal och skriver ut summan, differensen, produkten och kvoten av talen. Programmet ska:

  1. välkomna användaren till tjänsten ”Räkna med mig!”,
  2. låta användaren skriva in det första heltalet,
  3. låta användaren skriva in det andra heltalet,
  4. beräkna summan av de två talen,
  5. beräkna differensen av de två talen,
  6. beräkna produkten av de två talen,
  7. beräkna kvoten av de två talen,
  8. skriva ut alla resultat tydligt, till exempel ”Summan av talen är …”.
Din lösning · du kan ändra koden
# Skriv din kod här
Visa lösningsförslag
Python · du kan ändra koden
print("Välkommen till Räkna med mig!")

tal1 = int(input("Skriv det första heltalet: "))
tal2 = int(input("Skriv det andra heltalet: "))

summa = tal1 + tal2
differens = tal1 - tal2
produkt = tal1 * tal2
kvot = tal1 / tal2

print(f"Summan av talen är {summa}")
print(f"Differensen av talen är {differens}")
print(f"Produkten av talen är {produkt}")
print(f"Kvoten av talen är {kvot:.2f}")

Vad händer om det andra talet är 0? Det tar vi hand om i kapitlet om felhantering.

Snabbkoll

Har du förstått?

1.Vad skriver print("5" + "5") ut?

2.Vilken datatyp får svar i svar = input("Ålder: ")?

3.Vad skriver print(f"{3 * 4} äpplen") ut?

4.Vad betyder = i x = 10?