Göm meny

Pythonuppgift 2.1

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! För tips på hur du testar din kod, se sidan Testa kod.

Du kan bara köra automaträttning av en specifik pythonuppgift en gång var 8:de minut.

Information om hur du använder rättningsskriptet hittar du på sidan Rättningsskript. Information om inlämning hittar du på sidan Inlämningar.

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.

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: 2019-07-08