#ubuntu-nl-klas 2011-04-12
<ubuntulog> ping
<leoquant> ok haj
<leoquant> hajour
<leoquant> goede morgen en welkom
<UndiFineD> leoquant, tiepen gaat nog niet voor hajour
<leoquant> oef...:/
<UndiFineD> eerst meds
<leoquant> ben ook zo weg, voor maandelijkse poli bezoek...
<leoquant> zie jullie later vanmiddag
<leoquant> hajour, sterkte!
#ubuntu-nl-klas 2011-04-13
<leoquant> JanC, zit jij nog in mwanzo-klas?
<leoquant> omdat ik er niet meer in kom, wou ik vragen of de logbot daar nog actief is.
<JanC> leoquant: nee, maar als founder kan je jezelf uitnodigen toch?
<leoquant> ik heb het kanaal gedropped en de registratie gecanceled
<leoquant> dat schijnt zo te horen volgens Freenode policy
<leoquant> het kanaal is dus in alle opzichten opgeheven
<leoquant> na invoeren van een deactivatie code
#ubuntu-nl-klas 2011-04-15
<hp> wat houdt dit in ubuntu-nl-klas ?
<UndiFineD> hallo hp
<UndiFineD> dit is het kanaal voor ubuntu-nl waar les word gegeven voor o.a. mwanzo lessen
<UndiFineD> maar er is ook ruimte voor andere lessen
<Felix__> hoi
<UndiFineD> hoi
<Felix__> hoi UndiFineD
<hp> hoe gaat dat met lessen geven hoe wordt dat gegeven
<leoquant> je joined #ubuntu-nl-mwanzo en dit kanaal
<leoquant> dit kanaal is het workshop kanaal
<leoquant> in #ubuntu-nl-mwanzo stel je je vragen
<leoquant> die worden in dit kanaal overgebracht en beantwoord
<leoquant> dus tijdens workshop spreekt hier enkel de workshopleider hp
<hp> aha ik zie dat er morgen python basis wordt gegeven , en dat gebeurt gewoon hier ?
<leoquant> http://wiki.ubuntu-nl.org/community/mwanzo/Workshop
<leoquant> ja
<leoquant> de vragen/discussies in het eerder genoemde kanaal
<hp> aha oke
<leoquant> mooi
#ubuntu-nl-klas 2011-04-16
<Felix__> hoi
<hajour> hi all
<hajour> relog
<leoquant> StefandeVries, EN commandoline_ alles staat goed hier
<StefandeVries> dank je, leoquant
<commandoline_> goed, welkom allemaal
<commandoline_> we hebben vandaag de les wat anders geregeld
<commandoline_> want ik ben vandaag op de Ubuntu Jam in Burgum
<commandoline_> dat betekend dat we de les vandaag via een videostream doen
<commandoline_> http://www.livestream.com/ubuntufryslan
<commandoline_> daarnaast zal StefandeVries zoals altijd vragen beantwoorden in #ubuntu-nl-mwanzo
<commandoline_> en CasW zal hier een samenvatting maken van wat ik zeg
<commandoline_> kan iedereen me zien?
<leoquant> ja
<leoquant> loud and clear
<leoquant> <hannie> ja hoor, spannend
<commandoline_> :)
<leoquant> iedereen hoort je
<leoquant> RawChid> Je bent verstaanbaar hier
<leoquant> peewee22> goed te horen
<CasW_> Het huiswerk staat hier http://paste.ubuntu.com/594909/
<leoquant> <hannie> nee, ik zie niets op het scherm
<CasW_> Zie je wel iets in de terminal? En heb je python-qt4 geÃ­nstalleerd?
<leoquant> CasW, het probleem is visueel, klun je meeschrijven?
<CasW_> Hij heeft nu het programma geschreven (ik zou het samenvatten, dat is waar ook)
<CasW_> Hij heeft nu de volgende instructies gegeven, naar voren gaan een paar keer tot het einde en dan naar rechts draaien en richting de uitgang
<leoquant> fallure hier
<CasW_> Het is mogelijk om ook een programma te schrijven om alle levels automatisch op te lossen, dat hebben Marten en ik geschreven
<CasW_> Het staat hier:http://paste.ubuntu.com/594911/
<CasW_> Marten is nu de run-functie aan het beschrijven, en de functie run is het meest belangrijk<
<CasW_> Die kijkt eerst of er een uitgang in de buurt is, zo ja, dan gaat hij daarnaartoe
<CasW_> Daarna zoekt hij voor de steen, daarna voor lege ruimte
<CasW_> We gaan nu door met de stof van vandaag
<CasW_> Hij wil jullie vandaag de Â´exceptionsÂ´ laten zien
<CasW_> Jullie hebben het al laten zien, hij pakt nu weer de rekenmachine ervoor
<CasW_> Jullie hebben toen gevraagt wat er gebeurt als je iets bijvoorbeeld door 0 deelt
<CasW_> Dan krijg je een exception
<CasW_> Normaal gesproken zie je dat die wordt gegooid, zoals dat heet, maar dat hoeft niet
<CasW_> Je kunt ze ook Â´afvangenÂ´
<CasW_> Hij gaat dat nu doen
<CasW_> (typwith.me-link komt eraan)
<commandoline_> http://typewith.me/ep/pad/view/ro.Muc6jvLcxm8/latest
<CasW_> typewith.me-ep-pad-view-ro.Muc6jvi.cxm8-latest
<CasW_> Die exception kan je afvangen in een zogenaamd codeblok
<CasW_> Dan kan je bijvoorbeeld ipv de error een eigen stuk tekst weergeven
<CasW_> Met het sleutelwoord continue kan je dan weer Â´opnieuw beginnenÂ´
<CasW_> Hij heeft nu de code makkelijker gemaakt
<CasW_> Als jullie dit programma draaien, dan zal je merken dat het programma blijft draaien als je iets verkeerds invoert
<CasW_> Wat hem natuurlijk een stuk stabieler maakt
<CasW_> Vragen
<CasW_> Geen vragen
<CasW_> Dan gaan we verder met het volgende onderwerp
<CasW_> We hebben nu de exception afgevangen
<CasW_> Nu vangen we alle exceptions af, omdat we alleen except hebben ingetypt
<CasW_> Maar dat wil je soms niet
<CasW_> Je kunt ook maar Ã©Ã©n exception afvangen
<CasW_> Dat zal hij je nu laten zien
<CasW_> Bij bijvoorbeeld regel 46 kan je door 0 delen
<CasW_> En dat kan niet, dan krijg je een ZeroDivisionError
<CasW_> Om die af te vangen, doe je ipv except except ZeroDivisionError
<CasW_> Nu kan je dus doorgaan als dat het geval is
<CasW_> Oftewel je kan alle fouten afvangen met except (niet aangeraden) of maar Ã©Ã©n fout met except ErrorNaam
<CasW_> Nu moeten jullie weer python in een terminal opstarten
<CasW_> Wat je kan doen, is dat je een lijst hebt
<CasW_> En dan kan je een niet bestaand item erin aanroepen (achter het einde)
<CasW_> Als je dat doet, dan krijg je een IndexError, alles wat voor die dubbele punt staat, is de naam van de error (die je dus kan afvangen)
<CasW_> En dan kan je dus eigen foutmeldingen maken
<CasW_> (Of er iets anders mee doen)
<CasW_> Vragen?
<CasW_> Je kan eigen exceptions maken (dus een Â´eigen IndexErrorÂ´)
<CasW_> Bijvoorbeeld als je een eigen object hebt en je doet daar iets mee wat niet mag (niet wat Marten zegt`)
<CasW_> Dan kan je je eigen exception gooien
<CasW_> Nu gaan we laten zien hoe
<CasW_> BijvoorbeeldÂ±
<CasW_> class NotFoundError(exception)
<CasW_> Hij erft dus exception
<CasW_> En hier hoef je niets te doen, dus dan zet je pass (doet niets)
<CasW_> En nu kan je dus deze exceptions opgooien en afvangen
<leoquant> <FOAD> Exceptions zijn classes?
<CasW_> Met het sleutelwoord raise kan je dan die exception opgooien
<CasW_> Ja
<leoquant> ok
<CasW_> Oftewel raise NotFoundError()
<leoquant> <hannie> Bestaat er een lijst met foutmeldingen?
<CasW_> (je maakt een instantie aan van NotFoundError)
<CasW_> Er wordt in de references wel gezegd welke exceptions er gegeven kunnen worden, ja
<CasW_> Nu wordt er weergegeven hoe je die dus kan afvangen
<CasW_> Vragen?
<commandoline_> http://paste.ubuntu.com/594921/
<CasW_> Daar staat de net ingetypte code
<CasW_> Oftewel er komt altijd Â´het derde item kan niet worden opgevraagdÂ´ te staan, ook al roep je het 4e aan
<CasW_> Het volgende onderwerp is bestandsbeheer
<CasW_> Weer een typewith.me komt eraan
<commandoline_> http://typewith.me/ep/pad/view/ro.$Psl3hgDage/latest
<CasW_> Wat hij nu wil doen is dat hij ervan uitgaat dat er een bestand is, en dan gaan wij de inhoud weergeven
<CasW_> We hebben dus eerst een bestandsnaam nodig (rawinput)
<CasW_> Sorry voor de verkeerde naam, vreemde toetsenbordinstelling hier
<CasW_> Met de ingebouwde openfunctie kan je een bestand openen, met als argument de bestandsnaam<
<CasW_> Alle inhoud van het bestand wordt gegeven met de functie read
<CasW_> Nadeel, bij grote bestanden neemt dit veel tijd en geheugen in beslag
<CasW_> We willen nu de inhoud ervan weergeven, bijvoorbeeld met print inhoud<
<leoquant> <hannie>  Is dat te vergelijken met een memoveld in een database?
<CasW_> Tweede script doet precies het tegenovergestelde, die schrijft ingevoerde tekst in een bestand
<CasW_> Totdat er een bepaalde tekenreeks, eof (end of file) wordt ingevoerd, maken we inhoud steeds groter
<CasW_> We vragen nu eerst dus de invoer, en als die gelijk is aan eof, dan wordt de loop gestopt, en in elke ander geval wordt input uitgebreid
<CasW_> elk
<CasW_> Die backslash n is een nieuwe regel
<CasW_> Hij opent nu een nieuw bestand, en daar geeft hij een extra argument aan, Â´wÂ´, en dat geeft aan dat je erin wilt kunnen schrijven
<CasW_> Met de functie write() kan je het argument inhoud schrijven
<CasW_> Vragen?
<commandoline_> http://typewith.me/ep/pad/view/ro.$Psl3hgDage/latest
<commandoline_> was de link met het lees en schrijf programma
<CasW_> OkÃ©, we hebben voor vandaag wel weer genoeg behandeld
<CasW_> Het huiswerk is
<CasW_> Hij heeft daar een bestand dat gebruikt wordt door de friese vertalers
<commandoline_> abort = Ã´fbrekke
<CasW_> Het hele bestand staat vol met dat soort regels
<CasW_> De opdracht is het bestand inlezen en dat in een dictionary zeggen
<CasW_> En dan zo een soort woordenboekding schrijven
<CasW_> Tips
<CasW_> ipv de functie read heb je ook de functie readlines
<CasW_> Die functie geeft een lijst terug met strings, elke regel in het bestand is een deel in de lijst
<CasW_> Dus 1 is abort, en 2 is het volgende woord
<CasW_> Nu wil je die twee woorden in een string uit elkaar halen
<CasW_> Daarvoor kan je de functie split gebruiken
<CasW_> Als argument geef je een string mee wat de twee delen deelt zegmaar, en dan geeft die functie een lijst terug
<CasW_> Met op 1 het eerste deel, en op 2 het eerste deel achter die string
<CasW_> En die lijst kun je dus als key value maken in een dictionary
<CasW_> Mogelijke uitbreiding
<CasW_> Als je een woord invoerd wat niet bestaat, krijg je een KeyError
<CasW_> Die kan je nu afvangen en er iets leuks mee doen
<CasW_> Vragen?
<CasW_> Ik wel
<leoquant> <FOAD> Spreek je Python echt uit als "Pieton"?
<CasW_> Zie 20 25
<leoquant> kanaal is open FOAD
<FOAD> Complimenten voor iedereen behalve mijzelf.
<leoquant> volgende week?
<FOAD> Aw. :(
<leoquant> ok!
<commandoline_> woordenlijst.txt moeten jullie trouwens nog wel hebben:
<FOAD> Och, ik verzin wel wat pseudo-Fries.
<leoquant> heel erg bedankt CasW_ en commandoline_ en StefandeVries !!!!!
<FOAD> Het kan alleen een verbetering zijn.
<commandoline_> http://paste.ubuntu.com/594926/
<fbruin_> hoi
