Pythonuppgifter 1 - Introduktion
Skriv lösningarna till uppgifterna i en och samma fil och testa koden själv innan du använder rättningsskriptet. Att kunna testa sin kod är en viktig del av att programmera!
Att lära dig från uppgifterna
- Förstå vad funktioner är och hur de används.
- Förstå vad ett returvärde är.
- Känna till olika datatyper så som till exempel heltal, flyttal och strängar och veta hur man konverterar mellan dem.
- Kunna använda python som en miniräknare.
Man kan få max 145 poäng och för att få godkänt krävs 100 poäng (130 för väl godkänt). Försök dock att lösa alla uppgifter då inte alla fel upptäcks av rättningsskriptet. Om ni har lite marginal kan ni kanske bli godkända även om assistenten som rättar hittar något sådant fel.
Uppgift 1.1 (5p)
Skapa en funktion som heter return_five()
som returnerar heltalet 5
.
Testa den genom att skriva ut dess returvärde.
Lär dig vad en funktions returvärde är för något.
Uppgift 1.2 (5p)
Skapa en funktion som heter five_twice()
som returnerar heltalet 10
. Funktionen ska anropa return_five()
, som du skrev i uppgift 1, två gånger och slå ihop resultaten med +
.
Uppgift 1.3 (5p)
Skriv en funktion add_strings()
som använder operatorn +
fast på strängar. Utför "hej" + "san"
i funktionen och returnera resultatet.
Kan du slå ihop flera strängar än två? Spelar ordningen någon roll? Kan man ta en sträng minus en annan? Prova!
Uppgift 1.4 (5p)
Skriv en funktion use_the_var()
som först tilldelar variabeln value
värdet 5 och sedan returnerar value * 5
. Funktionen ska inte ta in något argument, utan variabeltilldelningen görs i funktionen.
Spelar det någon roll vad du döper variabeln till? Prova!
Uppgift 1.5 (5p)
Skriv en funktion use_the_arg(a_string)
som tar in en sträng och skriver ut den med print(a_string)
. Returnera även värdet som fås in i argumentet a_string
.
Lär dig vad argumentet i en funktion är för något.
Uppgift 1.6
1.6.1 (5p)
Skriv en funktion print_string(a_value)
som tar ett värde och konverterar till en sträng. Skriv ut det konverterade värdet med hjälp av print
-funktionen. Funktionen skall inte returnera något.
1.6.2 (5p)
Skriv en funktion to_string(a_value)
som tar ett värde och konverterar till en sträng. Returnera det konverterade värdet.
Uppgift 1.7
1.7.1 (5p)
Skriv en funktion print_integer(a_value)
som tar ett värde och konverterar till ett heltal (ej avrundning). Skriv ut det konverterade värdet med hjälp av print
. Funktionen skall inte returnera något.
1.7.2 (5p)
Skriv en funktion to_integer(a_value)
som tar ett värde och konverterar till ett heltal (ej avrundning). Returnera det konverterade värdet.
Uppgift 1.8
1.8.1 (5p)
Skriv en funktion print_float(a_value)
som tar ett värde och konverterar till ett flyttal. Skriv ut det konverterade värdet med hjälp av print
. Funktionen skall inte returnera något.
1.8.2 (5p)
Skriv en funktion to_float(a_value)
som tar ett värde och konverterar till ett flyttal. Returnera det konverterade värdet.
Reflektion
Vad var skillnaden mellan to_string
, to_integer
och to_float
?
Vad är det för skillnad mellan ett heltal och ett flyttal? Hur kan vi se skillnaden?
Varför får vi ett felmeddelande när vi skriver to_float("exempel")
? Kolla på vad meddelandet säger.
Uppgift 1.9 (5p)
Skriv en funktion add_string_numbers(string_a, string_b)
som tar tar två strängar som enbart innehåller siffror, t.ex. "42"
eller "17"
. Använd funktioner du implementerat i tidigare uppgifter för att konvertera strängarna till heltal, addera dem, och konvertera resultatet tillbaka till en sträng, och returnera den strängen.
Använd först print_string
och print_integer
. Fungerar det?
Använd nu to_string
och to_integer
. Fungerar det?
Varför fungerar den ena varianten men inte den andra?
Exempel:
|
|
När funktionen fungerar som den ska, prova att köra add_string_numbers(3.2, 4.7)
. Vad får du för resultat? Varför blir det så?
Uppgift 1.10 (5p)
Generalisera to_string
, to_integer
och to_float
genom att skriva en funktion to_any_type(a_value, a_type)
som tar in ett värde och en typ och konverterar värdet till typen. Returnera det konverterade värdet.
Uppgift 1.11 (5p)
Skriv en funktion print_type(a_value)
som tar in ett värde och skriver ut datatypen som a_value
har. Inget ska returneras.
Tips: Använd den inbyggda funktionen type()
.
Uppgift 1.12 (10p)
Skriv en funktion roll_dice(sides)
som simulerar ett slag av en tärning med sides
sidor. Antag att alla tärningar har sidor numrerade från och med 1 till och med sides
.
För att få ett slumpmässigt tal måste vi använda en slumpgenerator. I Python finns dessa i en särskild modul med namnet random
. Vi får tillgång till denna genom att skriva import random
längst upp i vår fil. Sedan kan vi generera ett slumpmässigt heltal mellan 1 och 6 genom att skriva random.randint(1, 6)
. Vi återkommer till moduler längre fram i kursen.
Tips: Vad ska du skriva istället för 6
i anropet random.randint(1, 6)
för att simulera ett slag med en tärning med sides
sidor?
Uppgift 1.13 (5p)
Skriv en funktion subtract(value1, value2)
som returnerar resultatet av value1
minus value2
. När du testar funktionen, skicka bara in heltal och/eller flyttal.
Lär dig om heltal och flyttal i Python.
Observera vad som händer när du har heltal - heltal
, flyttal - flyttal
, heltal - flyttal
, flyttal - heltal
. Vad blir det för datatyp på resultatet?
Uppgift 1.14 (10p)
Skriv en funktion split_bill(total, number_of_people)
som beräknar hur stor del av en gemensam nota som varje person ska betala om man delar notan jämnt. Funktionen tar två argument: beloppet som ska delas på samt antal personer som ska dela på beloppet.
Se till att funktionen både returnerar svaret, samt skriver ut svaret.
Uppgift 1.15 (10p)
Python har en modul med matematiska funktioner.
Skriv en funktion round_up(value)
som avrundar ett flyttal uppåt till det närmaste heltal som är större än value. Returnera det avrundade talet.
Importera modulen math
och använd funktionen math.ceil()
.
Uppgift 1.16 (10p)
Skriv en funktion round_down(value)
som avrundar ett tal nedåt och returnerar det avrundade talet.
Googla på dokumentationen för modulen math
och kolla om det finns en passande funktion.
Uppgift 1.17 (5p)
Skriv en funktion use_newline()
som med ett enda anrop till print
skriver ut följande i terminalen:
rad 1
rad 2
Hur skriver man ut en radbrytning? Returnera också den sträng som du skrev ut.
OBS! För att rättningsskriptet ska acceptera ditt svar är det viktigt att du varken har för många eller få mellanslag i din sträng. Jmf med att skriva ditt lösenord vid inloggning!
Uppgift 1.18 (10p)
Skriv en funktion fahrenheit_to_celsius(temperature)
som konverterar en temperatur (representerad som ett flyttal) från fahrenheit till celsius och returnerar värdet.
Uppgift 1.19 (5p)
Skriv en funktion celsius_to_fahrenheit(temperature)
som konverterar en temperatur (representerad som ett flyttal) från celsius till fahrenheit och returnerar värdet.
Om du har gjort rätt ska fahrenheit_to_celsius(celsius_to_fahrenheit(100))
alltså returnera 100.0
(Det går bra om den returnerar 100
).
Uppgift 1.20 (10p)
Skriv en funktion pythagoras(x, y)
som tar in längden på kateterna (sidorna som tillsammans bildar 90 grader mellan varandra) i en rätvinklig triangel och returnerar längden på hypotenusan med hjälp av pythagoras sats.
Så pythagoras(3, 4)
ska alltså returnera 5
Sidansvarig: Johan Falkenjack
Senast uppdaterad: 2025-08-05