Kunskapsbanken

Artiklar, guider, tips och trix tillsammans med exempelprogram inom webbprogrammering och webbutveckling. Inläggen är listade i den ordning som de senast uppdaterats.

Absoluta och relativa sökvägar

När vi arbetar med filer så lagras dessa i en katalog (eng folder). Vi har delat in vårt lagringsutrymme i en trädstruktur och vi kan ofta välja var i denna trädstruktur vi vill placera våra filer (vissa filer har dock en bestämd placering). Om man skriver pwd (print working directory) i Unix-terminalen får vi sökvägen till den aktuella katalogen, ex-vis /home/bbe/dbwebb-kurser/python/tester vilket innebär att katalogen tester är den aktuella katalogen och den finns i, dvs är en underkatalog till, python som är en underkatalog till dbwebb-kurser osv.

När vi med Python-kod skapar en text-fil som vi skriver till kan det ex-vis se ut så här

filename = "my_friends.txt"
friends = "Anna\nSven\nPia\nLinda\nKaj\n"
with open(filename, "w") as file_handler:
    file_handler.write(friends)

Filen namngiven "my_friends.txt" skapas då i den katalog som är arbetskatalog (current working directory). Om vi t.ex har startat VS code i katalogen python, som därmed blir arbetskatalogen, kommer filen med namnet "my_friends.txt" att placeras i denna katalog.

Om vi i stället vill placera en fil i katalogen tester, som finns en nivå ner, kan vi göra det genom att ange den relativa sökvägen eller den absoluta sökvägen.

Vi börjar med den relativa sökvägen, vilken motsvaras av att den utgår från aktuella katalog. Som i detta fall är python och skriver filen i testersom är en underkatalog

filename = "tester/my_friends.txt" 
friends = "Anna\nSven\nPia\nLinda\nKaj\n"
with open(filename, "w") as file_handler:
    file_handler.write(friends)

Och fortsätter med den absoluta sökvägen, vilken motsvaras av att den utgår från rot-katalog och innehåller hela vägen avseende katalogstrukturen.

filename = "/home/bbe/dbwebb-kurser/python/tester/my_friends.txt"
friends = "Anna\nSven\nPia\nLinda\nKaj\n"
with open(filename, "w") as file_handler:
    file_handler.write(friends)

Read more »

Category: python.

Fizz Buzz

Fizz Buzz är en lek som syftar till att lära barn division. Deltagarna räknar i tur och ordning från 1 och uppåt. När en deltagare hamnar på ett tal jämnt delbart med 3 ska hen istället säga “Fizz”. Om det är ett tal jämnt delbart med 5 ska hen säga “Buzz”. Är talet jämnt delbart med både 3 och 5 ska hen säga “FizzBuzz”.

Ex: 1, 2, Fizz, 4, Buzz, 6, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, 17, Fizz, 19, Buzz, …..

Om en deltagare tvekar eller missar att ersätta ett tal med “Fizz”, “Buzz” eller “FizzBuzz” är hen ute ur leken.

Vi ska göra ett program som visar “facit” fram till talet 100, dvs som skriver ut alla heltal inom [1..100] och som ersätter tal delbara med 3 med Fizz, tal delbara med 5 med Buzz och tal delbara med både 3 och 5 med FizzBuzz.

Read more »

Category: python.

Installera Bash i Windows med WSL och Ubuntu

Så här gör du för att installera Bash med Ubuntu i Windows via WSL samt tar hjälp av pakethanteraren och installerar det som behövs för att komma igång med kurserna.

Read more »

Category: labbmiljo, windows, bash.

Installera Python i terminalen

Denna artikel visar hur du kommer igång och installerar python i terminalen.

Read more »

Category: python, labbmiljö.

Lagrade procedurer i databas

Ibland räcker det inte till med enbart SQL utan man behöver någon form av ytterligare programmeringsmässig hantering av informationen. För att ta ett exempel, säg att man vill flytta pengar från ett konto till ett annat, men bara om det finns tillräckligt mycket pengar på kontot.

Man kan naturligtvis koda detta i godtyckligt externt programmeringsspråk. Men kan det finnas en möjlighet att koda sådant direkt i databasen?

Här kommer lagrade procedurer kommer till vår hjälp.

Read more »

Category: databas, sql, kurs databas.

Real-tids chatt

I denna övningen tittar vi på hur vi kan använda websockets för att kommunicera i realtid mellan flera klienter.

Read more »

Datastrukturer

Inom programmering är en ‘datastruktur’ en struktur för att organisera data. Valet av datastruktur är viktigt då de har olika betydelse för prestanda och presterar olika beroende på vilka algoritmer som har planerats att användas. En datastruktur är en abstrakt beskrivning till skillnad från ‘datatyper’. En datatyp kan vara exempelvis Integer, String eller boolean. Det har en fast betydelse medan en datastruktur beskriver något odefinierbart, till exempel en lista eller array.

Read more »

Category: oopython.

Mer om enhetstester

Vi går några steg längre med våra enhetstester. Hur ska vi tänka när vi testar metoder som innehåller if-satser och loopar? Hur hanterar vi beroenden till annan kod?

Read more »

Category: oopython.

Introduktion till enhetstester

Enhetstester, eller unittester, används för att testa att enskilda metoder eller funktioner gör vad vi förväntar oss. Till exempel om en metod ska returnera bool-värdet True, så ska den aldrig kunna returnera False.

Vi ska titta lite på pythons inbyggda testramverk unittest och hur en katalogstruktur med kod och enhetstester kan se ut. Vill du läsa mer kan du kika på docs.python.org.

Read more »

Category: oopython.

GitHub Education Pack och ett domännamn

Vi kommer i denna artikel titta på hur vi kan använda GitHub Education Pack för att få ett gratis domännamn.

Read more »

Category: devops, verktyg.