Teknik 1 · Programmering · Kapitel 2
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:
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.
# 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 kodenVariabler
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.
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:
namnochNamnär två olika variabler. - Välj namn som berättar vad variabeln innehåller, till exempel
radiehellre änr2.
Skriva ut med print()
Det finns flera sätt att skriva ut text och variabler tillsammans:
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ängDet 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
TrueellerFalse.
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?
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.
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) # 18Input – 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.
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.
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 adderasf-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.
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.
# Skriv din kod här
Visa lösningsförslagDölj lösningsförslag
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:
- välkomna användaren till tjänsten ”Räkna med mig!”,
- låta användaren skriva in det första heltalet,
- låta användaren skriva in det andra heltalet,
- beräkna summan av de två talen,
- beräkna differensen av de två talen,
- beräkna produkten av de två talen,
- beräkna kvoten av de två talen,
- skriva ut alla resultat tydligt, till exempel ”Summan av talen är …”.
# Skriv din kod här
Visa lösningsförslagDölj lösningsförslag
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?