[17:34] Mogge. [17:47] hehe [17:52] commandoline, moeten we idle al geinstalleerd hebben vooraf ? Ik zit even in een ander linux omgeving. [17:52] jeroenl81: vandaag nog niet veel: [17:52] - een teksteditor (gedit bijv.) [17:53] mja ok. Die heb ik er zat staan [17:53] - python, waarschijnlijk is die al geïnstalleerd. Als je het wilt testen dan start je een terminal en tik je 'python' in. [17:53] op voorhand bedankt trouwens dat je de moeite neemt voor dit initiatief. Python heb ik idd. Merkte alleen dat ik idle niet had [17:54] Python 2.6.5 (r265:79063, Apr 16 2010, [17:54] idle is niet per se nodig, ik gebruik het zelf amper. [17:54] en alles > python 2.2 is vandaag goed, en met 2.6 zul je de hele cursus kunnen doen :) [17:54] dam moet wel ff update zie ik :') 2.5.2 [17:54] oh, 2.5 kan ook wel. [17:54] we zitten alm op 2.8 he? [17:55] leoquant: 2.7, of ik heb de laatste paar dagen een release gemist. [17:55] en 2.7 kan ook [17:55] (of was dat natty?) [17:55] alles tussen 2.4 - <3.0 is goed. [17:55] ok [17:55] en andere versies zullen de eerste paar lessen ook nog wel kunnen. [17:56] het wordt pas verderop belangrijk. [17:57] alle pythonners join ook #ubuntu-nl-mwanzo [17:57] uitlegje volgt nog [18:01] even voor deze nOOb..... gedit en python 2.6.x is voldoende voor deze cursus? [18:01] cs t zat 15 jan om 19.30 tot 20.30 workshop python voor beginners #Ubuntu-nl-mwanzo-klas. Leiding: commandoline. logs op http://irclogs.ubuntu.com. Alle cursisten join ook: #ubuntu-nl-mwanzo [18:01] 2.6.5 === ChanServ changed the topic of #Ubuntu-nl-mwanzo-klas to: zat 15 jan om 19.30 tot 20.30 workshop python voor beginners #Ubuntu-nl-mwanzo-klas. Leiding: commandoline. logs op http://irclogs.ubuntu.com. Alle cursisten join ook: #ubuntu-nl-mwanzo [18:01] Tico: prima. [18:01] Cugel: ook [18:03] goede avond [18:05] avond [18:06] leoquant: welk kanaal wordt +m? [18:06] klas [18:07] navond [18:07] goedeavond [18:08] #ubuntu-nl-mwanzo het kanaal om vragen te stellen [18:08] commandoline, legt dat hier uit [18:09] * leoquant in mwanzo [18:09] leoquant: ok, prima. [18:09] (hier in -klas wist ik al) [18:09] en we houden ons strikt aan de tijd [18:10] nou ja behoorlijk strikt [18:10] ja, ik heb hier helaas geen atoomklok :P [18:10] oke [18:10] dimi77, er is helaas vanavond geen uitloopmogelijkheid.... [18:11] wegens verplichtingen elders van commandoline en anderen [18:11] ik begrijp het. [18:12] het vergt wel wat de workshop leider [18:12] 30 cursisten [18:18] we kunnen hier niet praten? [18:18] Toch wel. [18:18] :P [18:18] nee, alleen luisteren duh! [18:18] over 5 minuten niet meer nee [18:19] oke [18:19] Sshhh. [18:19] * FOAD geeft een appel aan commandoline. [18:19] zie topic nieuwkomers [18:19] Niet zo rumoerig jongens. [18:20] lol [18:21] o/ [18:22] lo UndiFineD [18:22] bedankt FOAD :P [18:23] commandoline, het was de appel van goed en kwaad FOAD speel de even voor python [18:23] heb zin in een mora frikandel [18:23] o/ [18:23] Tjibba, hahahah neee de meccafood [18:23] Tjibba, zit ook kassa te kijken :P [18:24] keek er net even naar:P [18:24] mensen we gaan richting andere kanaal ook he? zie topic [18:26] commandoline, ik ga het hier zo "op slot doen" voor je [18:26] leoquant: prima :) [18:27] moet je je terminal al klaar zetten ? [18:27] exalt: kan straks ook wel [18:27] af en toe spammen we nog wat ins blaue hinein.... [18:28] commandoline, Ronnie kiwinote UndiFineD klaar? [18:28] JA [18:28] ja [18:28] ja [18:28] +1 [18:28] top [18:30] OK, het is tijd, dus laten we beginnen. [18:30] Eerst even wat over de manier van les geven: [18:31] - In dit kanaal (#ubuntu-nl-mwanzo-klas) wordt uitleg gegeven, vragen stellen kan in #ubuntu-nl-mwanzo [18:32] Verder is het mogelijk dat ik bepaalde vragen even vooruitschuif, of eerst niet beantwoord. [18:32] als we anders niet verder komen. [18:33] Jullie willen allemaal Python leren, dus het leek me een goed idee om eerst eens te laten zien wat je nou eigenlijk met python kan maken. [18:33] zo draaien bijv. verschillende websites op de achtergrond op python: [18:34] http://youtube.com/ bijvoorbeeld [18:34] en http://loco.ubuntu.com/ is ook een webapplicatie gebaseerd op python. [18:34] de eigenaar van de eerste is Google, een bedrijf dat erg veel doet met Python. [18:35] Daarnaast is het mogelijk om applicaties te maken die draaien in een terminal [18:35] een mooi voorbeeld is yum, de tegenhanger van apt-get dat jullie misschien wel kennen van ubuntu bij fedora. [18:35] http://eglug.org/files/image_store/snapshot1-157.png [18:35] voor een screenshot. [18:36] Ook desktop applicaties zijn in python te schrijven. [18:36] een voorbeeld uit Ubuntu is het Softwarecentrum [18:37] http://wiki.ubuntu-nl.org/MultimediaOndersteuningMaverick?action=AttachFile&do=get&target=softwarecentrum_restricted.png [18:37] voor degenen die het nog niet eerder gezien hebben. [18:38] Ten slotte wilde ik nog de mogelijkheid noemen om games te maken in Python, bekend is Frets on Fire: [18:38] http://upload.wikimedia.org/wikipedia/commons/9/9e/Fretsonfire4.png [18:38] ik hoop dat julllie nu een indruk hebben, hoewel dit slechts het topje van de ijsberg is. [18:39] Python wordt, zeker in de Open-Source-wereld, erg veel gebruikt. [18:39] Nu jullie dus een idee hebben wat je kan met python, wil ik het graag even hebben over wat een computerprogramma eigenlijk is. [18:40] een computerprogramma is een lijst met instructies die aangeven wat de computer moet doen. [18:40] de taal waarin die lijst is beschreven, heet de programmeertaal. [18:40] vraag: wat is python nou eigenlijk een scripttaal of iets anders? [18:41] Technisch gezien valt python onder de scripting talen. [18:41] maar dat zegt in de praktijk niets over de mogelijkheden van een taal. [18:42] In een computerprogramma zit vaak een structuur die je altijd terug kan herkennen: [18:42] - Invoer (van de gebruiker, uit een bestand, of uit een andere bron) [18:43] - Verwerken (de invoer wordt omgezet naar iets anders, iets nuttigs.) [18:43] - Uitvoer (het resultaat van het verwerken wordt weergeven, bijv. op een monitor, maar bijv. een server zou het naar de webbrowser van de gebruiker sturen) [18:44] Ten slotte moeten jullie nog één ding weten over programmeertalen op dit moment: [18:44] je mag geen enkele fout maken als je erin schrijft, want als dat gebeurt, zal je programma crashen of iets anders doen dan verwacht. [18:45] Computers zijn nl. dom, ze begrijpen niet wat ze doen. [18:45] OK, hoog tijd om jullie eerste programma te schrijven, tenzij er nog vragen tot nu toe zijn? [18:46] zo te zien niet, ik wil jullie vragen om een terminalvenster op te starten. [18:46] In ubuntu gaat dat via: [18:46] Toepassingen > Hulpmiddelen > Terminalvenster. [18:47] OK, als dat gelukt is, typ je 'python' in, zonder aanhalingstekens, en druk je op enter. [18:47] als het goed is zie je wat als: [18:48] Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) [18:48] [GCC 4.4.5] on linux2 [18:48] Type "help", "copyright", "credits" or "license" for more information. [18:48] lukt het tot zover? [18:48] ik zie dat behalve FUJISAN niemand problemen heeft, tot nu toe, dus dan gaan we door. [18:49] je ziet >>> staan, met daarachter de cursor. [18:49] typ nu de volgende tekst in, en druk daarna op enter: [18:49] print "Hallo Ubuntero's!" [18:50] nogmaals, maak geen typfouten, want dan krijg je mogelijk een foutmelding, of doet het programma niet wat je verwacht. [18:50] Heeft iemand vragen tot nu toe, of problemen? [18:51] vragen niet, problemen wel zie ik. [18:52] maar ik ga nu wel verder, degenen in de chat zullen even verder moeten helpen. [18:52] we gaan nu een wat ingewikkelder programma maken namelijk. [18:53] typ de volgende zinnen over (of kopieren/plakken): [18:53] naam = raw_input("Wat is je naam? ") [18:53] print naam, "is goed op weg met het leren van python!" [18:54] ik zal nu eens uitleggen wat hier eigenlijk gebeurd. [18:54] het stukje tekst raw_input("Wat is je naam? ") [18:54] doet twee dingen. [18:55] 1) het laat de tekst 'Wat is je naam?' zien. [18:55] 2) het vraagt de gebruiker om invoer, en nadat je die invoer hebt gegeven en op enter hebt gedrukt, gaat het programma verder. [18:56] dan wordt nl. het stukje 'naam =' uitgevoerd. [18:56] dat stukje betekend iets als 'sla het resultaat van wat achter '=' staat op onder de naam 'naam'.' [18:57] daarna is de regel daar volledig uitgevoerd, en gaat python verder naar de volgende regel. [18:57] daar staat: [18:57] print naam, "is goed op weg met het leren van python!" [18:58] daar staat dan het commando 'print' [18:58] print doet niets anders dan stukjes informatie op het scherm laten zien. [18:58] commandoline: nog even wachten met het volgende deel [18:59] het eerste wat 'print' laat zien is wat is opgeslagen met naam. [18:59] Ronnie: dat was ik al van plan [18:59] * onder de naam 'naam'. [18:59] even een onderbreking dan nu totdat iedereen weer bij is. [19:02] we kunnen door [19:02] ok, prima. [19:02] we waren dus halverwege de zin: [19:02] print naam, "is goed op weg met het leren van python!" [19:03] eerst wordt op het scherm de tekst bewaart in 'naam' gezet [19:03] de komma verteld python dat het verder moet kijken naar het tweede stuk tekst. [19:04] * vertelt [19:04] dat stuk tekst wordt vervolgens óók op het scherm weergeven [19:04] het resultaat is één zin op je beeldscherm: [19:04] *jouw naam* is goed op weg met het leren van python! [19:05] begrijpt iedereen nou ongeveer wat de regels die jullie hebben ingevoerd doen? [19:05] OK, dan wordt het tijd om te zien dat python een beetje kan rekenen. [19:05] die komma zorgt ook dat de 2 stukken gescheiden worden door een spatie [19:05] print naam + " is goed op weg met het leren van python!" (zou ook kunnen, met een + ipv een , - het verschil is dat bij een komma er een extra spatie tussen komt) [19:06] Ga je gang commandoline [19:06] ok [19:06] ok [19:06] type eens in: [19:06] 6+5 [19:07] je ziet dan dat python meteen met het antwoord komt, 11. [19:07] python kan nog meer, bijv. vermenigvuldigen. [19:07] 5 * 80 [19:07] geeft 400 terug. [19:08] ook aftrekken gaat zonder problemen: 6-3 = 3 [19:08] machtsverheffen is ook een mogelijkheid, 2** 3 (2³) geeft natuurlijk 8 [19:08] cool [19:08] (de eerste vorm is wat python begrijpt, de tweede is de mathematische notatie) [19:09] goed, we hebben alleen nog niet gedeeld. [19:09] ook dat kan python: [19:09] 20 /10 [19:09] geeft netjes 2 [19:10] het gaat fout bij 601/10, je zult zien dat python 60 geeft. [19:10] python heeft een reden om hier een geheel getal te geven, we komen er later op terug. [19:11] Je kan ook cijfers in een variabele zetten overigens. [19:11] (zo'n ding als we eerder zagen bij naam= ...) [19:11] in dit geval doen we: [19:12] getal = 6 [19:12] we kunnen vervolgens allerlei dingen doen met 'getal' [19:12] bijv: [19:12] print getal + 5 [19:13] print is momenteel niet vereist, maar later wel als we straks uit de 'console' gaan. Dat is zeg maar wat je krijgt als je 'python' intikt in een terminalvenster zoals jullie allemaal hebben gedaan. [19:14] Goed, als jullie dit begrijpen, kunnen we weer een stapje verder gaan. [19:14] Op naar het volgende deel dan maar :D [19:15] probeer deze code eens, de hele tijd één keer op enter drukken nadat je iets hebt ingevoerd. [19:15] Ook tabs zijn belangrijk bij het overtypen/kopieren: [19:16] answer = input("Wat is 2+2?") [19:16] if answer == 4: [19:16] print "Je had het goed." [19:16] else: [19:16] print "Je had het fout." [19:16] ho, hier gaat wat fout. [19:16] neem dit niet over, momentje. [19:17] http://paste.ubuntu.com/554471/ [19:17] je ziet hier dat twee lijnen zijn ingesprongen met behulp van de tab-toets. [19:17] het is belangrijk in python om dat goed over te nemen. [19:17] ho, ik maak weer een fout :P [19:18] http://paste.ubuntu.com/554472/ [19:18] nu klopt het. [19:18] yep [19:19] probeer dit eens uit in de terminal, lukt dat? [19:19] IndentationError: unexpected indent [19:19] UndiFineD: je hebt hier een fout gemaakt met het overnemen van de tabs. [19:19] indent is tab gebruik [19:19] ok, alleen uitleg dus :) [19:20] Wat hier gebeurt: [19:20] er wordt aan de gebruiker gevraagt om een *cijfer* op te geven. Het resultaat wordt opgeslagen in de variabele 'answer' [19:20] Uiteindelijk komt er dus dit op je scherm: http://paste.ubuntu.com/554473/ [19:21] vervolgens kijkt python met behulp van 'if' of het antwoord gelijk is aan 4. [19:22] als dat zo is, wordt de code die ingesprongen is uitgevoerd. [19:22] commandoline, ff wachten [19:27] dat is in dit geval dat de tekst 'je had het goed' op het scherm wordt weergeven. [19:27] als je iets anders hebt ingevuld bij de input(), dan wordt alles uitgevoerd wat ingesprongen onder 'else:' staat. [19:28] dat is in dit geval de tekst: [19:28] 'je had het fout' weergeven met behulp van 'print' [19:28] Goed, heeft iemand nog vragen over het laatste stukje code? [19:29] goed, het is bijna tijd, dus voordat we stoppen: [19:29] huiswerk ? [19:29] ja, en veel :P [19:29] - Volgende week is geen pythonles, want dan gaat leoquant een cursus IRC geven op hetzelfde tijdstip hier. [19:30] (sorry) ツ [19:30] Ik zou jullie aanraden om gewoon wat dingen uit te proberen in python. [19:31] maar de week erna gaan we weer verder met python commandoline ? [19:31] als jullie willen oefenen, probeer dan deze oefening te maken: [19:31] - Oefening: [19:31] Maak een script die de gebruiker om een nummer als invoer vraagt, [19:31] en als antwoord het dubbele van de waarde van het getal geeft [19:31] dat is het, bedankt voor jullie komst allemaal! [19:31] en hopelijk tot over 2 weken! [19:31] zeer bedankt!!!!!!!!!!!!!!!!! [19:32] Erg goed commandoline. bedankt! [19:32] DUidelijke uitleg, bedankt [19:33] thanx [19:33] this is my result: http://paste.ubuntu.com/554476/ [19:34] dank je voor de les commandoline [19:34] \o/ [19:34] graag gedaan allemaal, ik ga nu. [19:34] tot over twee weken [19:35] dank je wel com... === ChanServ changed the topic of #Ubuntu-nl-mwanzo-klas to: Zaterdag 22 januari 2011 19.30-20.30 workshop IRC voor "beginners" #Ubuntu-nl-mwanzo-klas. Leiding: leoquant. logs op http://irclogs.ubuntu.com. Alle cursisten join ook: #ubuntu-nl-mwanzo [19:37] Te laat, CasW. [19:38] :) [19:43] Ronnie, JanC kiwinote en UndiFineD ook bedankt guys! [19:44] :) [20:13] no, she has a wider, more generous mouth ;) === JanC_ is now known as JanC === niekie_ is now known as niekie