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