Att lära dig från uppgifterna
- syntax och användning av
if
,elif
,else
- jämförelser med
!=
,==
,<
,>
,<=
, och>=
- logiska operatorer för att kombinera jämförelser
Godkänt
För att få godkänt krävs 35 poäng. Försök dock att lösa alla uppgifter då inte alla fel upptäcks av rättningsskriptet men om ni har lite marginal kan ni kanske bli godkända även om assistenten som rättar hittar något sådant fel.
Uppgifter
Uppgift 2.1.1 (5p)
Skriv funktionen greeting(name)
som tar emot en sträng med ett namn som värde.
Funktionen returnerar sedan hälsningsfrasen "Hej " + name + "!"
förrutom när
namnet som skickats in börjar på (stora) bokstaven M
. I dessa fall returneras
"Hej " + name + ", visste du att M är min favoritbokstav!"
Anropet greeting("Pontus")
ska alltså returnera strängen "Hej Pontus!"
medan
anropet greeting("Morgan")
ska returnera strängen "Hej Morgan, visste du att M är min favoritbokstav!"
.
Uppgift 2.1.2 (5p)
Skriv funktionen is_this_a_long_list(values)
som får en lista (values
) som
argument och returnerar True
eller False
beroende på hur lång listan är.
Listor längre än 5 element anses vara långa.
Tips: Använd funktionen len()
för att ta reda på längden på en
lista (eller sträng för den delen)
Uppgift 2.1.3 (5p)
Skriv funktionen get_grade(score)
som tar in en siffra (argumentet score
)
som antingen ett heltal eller ett flyttal) och returnerar en sträng med betyget
som man får när man har score
poäng. Betygsgränserna är följande:
- Betyget
"G"
returneras om poängen är 50 eller högre. - Är poängen högre än 80 returneras betyget
"VG"
. - Vid mindre än 50 poäng returneras
"U"
.
Uppgift 2.1.4 (5p)
Skriv funktionen days_in_month(name_of_month)
som tar in namnet på en månad
(som sträng) och returnerar antalet dagar i den månaden (antag att det inte är
skottår). Följande stavningar på månader ska användas: "januari"
,
"februari"
, "mars"
, "april"
, "maj"
, "juni"
, "juli"
, "augusti"
,
"september"
, "oktober"
, "november"
, "december"
.
Uppgift 2.1.5 (5p)
Skriv funktionen odd(value)
som tar in ett heltal och returnerar True
om
heltalet value
är udda, och returnerar False
om heltalet value
är jämt.
Tips!
Operatorn modulo som i Python skrivs som %
ger resten vid division. Om man
ska dela heltalet 6 med heltalet 5, så får 5 plats 1 gång och man får en rest
på 1. Dvs man delar 6 % 5
ger 1
eftersom 6 = 5 * 1 + 1. 6 % 3
ger oss en
rest på 0
eftersom 6 = 3 * 2 + 0
.
Resten 0 innebär allstå att att täljaren är jämt delbar med nämnaren. Eftersom
alla tal som är jämt delbara med 2
är jämna, kan man använda modulo-operatorn
för att ta reda på om ett tal är jämt eller udda. Om resten är 0 är talet jämt!
Uppgift 2.1.6 (10p)
Skriv funktion get_integer_description(value)
som tar in ett heltal och
returnerar ett annat heltal beroende egenskaperna hos value
.
- om
value
är positivt och jämt returneras 2 - om
value
är positivt och udda returneras 1 - om
value
är 0 returneras 0 - om
value
är negativt och udda returneras -1 - om
value
är negativt och jämt returneras -2
Tips: Använd logiska operatorer för att kombinera fler än en jämförelse
Uppgift 2.1.7 (10p)
Skriv funktionen appraisal_factor(rare, good_condition)
som returnerar ett
flyttal. Båda argumenten rare
och good_condition
är sanningsvärden (dvs
antingen True
eller False
).
Funktionen är tänkt att användas för att justera priset på antikviteter. Om
ett föremål är sällsynt (om argumentet rare
är True
) läggs en bonus på
25% till priset. Om föremålet inte är sällsynt (om argumentet rare
är
False
) dras 25% bort från priset.
Förrutom sällsyntheten behöver man även ta hänsyn till hur gott skick som
föremålet är i. Är föremålet i gott skick (om argumentet good_condition
är True
) lägger man till 50% till priset. Är det i dåligt skick
(om argumentet good_condition
är False
) drar man bort 50% från priset.
Funktionen appraisal_factor(rare, good_condition)
ska returnera den faktor som
orginalpriset ska multipliceras med för att kompensera för sällsynthet och
skick.
Exempel: Ett sällsynt föremål i gott skick ska alltså ha en faktor på 1.75
(1 + 0.25 + 0.50
). Ett sällsynt föremål som inte är i gott skick ska ha en faktor på
0.75
(1 + 0.25 - 0.50
)
Sidansvarig: Johan Falkenjack
Senast uppdaterad: 0001-01-01