Skip to content

Ditt första Python-skript

I denna uppgift ska du skriva ett program som omvandlar ett numeriskt värde. Du tränar på användarinmatning, villkorssatser (if/elif/else), variabler, datatyper och enkel felhantering.

Du har jobbat igenom allt material i “kmom01”.

Du skall nu göra ett program som räknar ut ett pris efter rabatt och skatt. Användaren ska skriva in priset och programmet ska räkna och skriva ut det slutgiltiga priset. Programmet ska också hantera felaktig input för att programmet inte ska krascha.

Avsluta med att skriva ut det omvandlade värdet med max två decimaler.

Det är viktigt att ditt program följer instruktionerna i kraven annars kommer inte testerna fungera och då rättas inte din inlämning.

Lösningar som använder konstruktionerna list/dict comprehension eller lambda funktioner godkänns inte i denna kurs.

Varje uppgift ska lösas med grundläggande Python konstruktioner som vi går igenom i kursen. Egenskapade funktioner får användas först i kmom03 och listor får användas först i kmom04.

  1. Skriv din kod i filen src/kmom01/convert/convert.py.
Terminal window
# Ställ dig i roten av kurskatalogen python
touch src/kmom01/convert/convert.py
cd src/kmom01/convert
# Lista alla filer i convert-katalogen
ls
# Kör programmet convert.py
uv run convert.py
  1. convert.py skall innehålla kod för att omvandla ett värden, som beskrivs i texten ovanför. Tips: lägg till en utskrift, testkör programmet och gör din första commit (se kommandon i sista punkten) som första steg.

  2. Gör ett input() anrop för att få värdet som ska omvandlas.

    • Om användaren skriver in ett värde som inte är endast siffror så ska programmet skriva ut ett felmeddelande och avsluta.
      • Felmeddelandet måste innehålla texten Invalid value.
      Hello and welcome to the price converter!
      Enter value to convert: A
      Invalid value, please enter a number.
    • Om det är endast siffror, omvandla det till ett heltal, int.
  3. Om input var ett tal ska du nu räkna ut det nya priset.

    Hello and welcome to the price converter!
    Enter value to convert: 100
    The final price of 100 after 10 kr discount and 20% tax is: 108.0 kr
  4. Skriva ut original värdet och det omvandlade värdet. Det nya priset ska vara avrundat till max två decimaler. Obs! det måste vara ett mellanslag direkt efter originalvärdet och det omvandlade värdet i utskriften.

  5. Koden ska validera med Ruff.

    Terminal window
    # Kommandot funkar oavsett var du står i ditt repo
    uv run ruff check
  6. Testerna som finns ska passera.

    Terminal window
    # stå i katalogen src i ditt repo
    uv run task test -- kmom01/convert
  7. Ladda upp din kod till ditt repo på GitHub. Gör flera små commits när du jobbar med uppgiften!

    Terminal window
    # stå i katalogen src/kmom01/convert i ditt repo
    git add convert.py
    git commit -m "Klart med uppgiften convert"
    git push
  • Använd try-except för att hantera felaktig inmatning (t.ex. om användaren skriver in bokstäver i stället för ett tal).
    • Du får inte använda bas felet Exception, du specificera vilket typ av fel du vill fånga.

Här finns övriga saker som är bra att tänka på.

  • Gör många och små commits i ditt git repo, du kan ha ungefär 5-10 commits för en sådan här uppgift.