PythonExercism - STU-IT/raspi17 GitHub Wiki

Python Exercism

er en samling af små (og store) øvelser i programmering med python. (Faktisk har de øvelserne til mange sprog...)
Hver øvelse har en test det kan afgøre om opgaven er løst rigtigt. Når opgaven er løst kan man submit-te den til exercism og få kredit, og den næste opgave. Exorcism kræver installation af en del tools, og det er en lidt besværlig procedure, men det kan løses :-)

Se mere på http://exercism.io/languages/python/about

Installation på linux og raspberry pi

Kommando-Linie-Interface (CLI)

http://exercism.io/clients/cli

Hent den her https://github.com/exercism/cli/releases/download/v2.4.1/exercism-linux-arm-v7.tgz

Skift til mappen Hentet

cd ~/Hentet

(eller hedder den måske ~/Downloads eller noget andet?)

Udpak

tar -xzvf exercism-linux-arm-v7.tgz

Kopier på plads, og lav path til filerne:

mkdir ~/bin
mv exercism ~/bin/
export PATH=$HOME/bin:$PATH

Læg pathet ind i din .bashrc så den også indlæses næste gang du skal bruge exercism:

echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc

Nu skal du oprette et login på exercism.io http://exercism.io/account/key

Kopier registreringsnøglen ind her hvor der står YOUR_API_KEY:

exercism configure --key=YOUR_API_KEY

Det er nice at have tab completion i CLI'en, så vi henter definitionerne:

mkdir -p ~/.config/exercism/
curl http://cli.exercism.io/exercism_completion.bash > ~/.config/exercism/exercism_completion.bash

og indsæt i ~/.bashrc følgende med nano:

if [ -f ~/.config/exercism/exercism_completion.bash ]; then
  . ~/.config/exercism/exercism_completion.bash
fi

med

nano ~/.bashrc

Installer python test systemet pytest med pip:

pip install pytest pytest-cache

eller helst, fordi måske ikke virker:

sudo apt install python-pytest

Opgaveløsning

Hent den første opgave med:

exercism fetch python

(når du skal hente næste opgave, er det samme kommando)

Skift ned i ~/exercism/python

cd ~/exercism/python

Den første opgave hedder hello-world. Du finder en beskrivelse af den på http://exercism.io/exercises/python/hello-world/readme eller med kommandoen

cat ~/exercism/python/hello-world/README.md

Åbn opgaven med

idle3 hello-world/hello_world.py &

(husk & (og-tegn), det gør at vi kan bruge terminalen igen med det samme)

Python-filen indeholder definitionen af funktionen hello. Den skal ændres så den returnerer "Hello, World!". Det vil sige at man udskifter pass med `return 'Hello, World!'.

Kør så testen:

py.test hello-world/hello_world_test.py

Hvis der er fejl, prøver du at rette dem, hvis den melder succes, med noget i retning af:

=========================== 1 passed in 1.15 seconds ===========================

Nå kan vi submit-te opgaven, og hente den næste:

exercism submit hello-world/hello_world.py

Og henter næste opgave med:

exercism fetch python