Reactie plaatsen 
 
Waardering:
  • 0 stemmen - gemiddelde waardering is 0
  • 1
  • 2
  • 3
  • 4
  • 5
Beginnerstutorial
Auteur Bericht
Twist Offline
Pytoloog
*****

Berichten: 1.381
Lid sinds: 04-2006
Reputatie: 2
Bericht: #1
Beginnerstutorial
Zoals gevraagd en beloofd;

Python beginnerstutorial

Inhoud
Inhoud
Inleiding
Python
Datatypes
Functies
If/else
Loops
Tot slot

Inleiding
In deze tutorial ga ik proberen je de basis van Python te leren, zodat je zonder priblemen mijn andere tutorials kunt volgen, én, nog veel belangrijker, de officiële Python Tutorial kunt volgen (Link staat onderaan bij 'references')
Persoonlijk vind ik namelijk dat de officiële Python tutorial (Ook de nederlandse vertaling!) een beetje té moeilijk voor de echte beginner in Python, en die zou dan misschien stoppen met Python omdat hij het te moeilijk vindt. En dat is natuurlijk niet de bedoeling.
Verder zijn er op dit forum imho veel mensen die eigenlijk Python zouden moeten leren :p.

Python
Python is een programmeertaal die op de meeste Windows en UNIX systemen werkt. Python is een redelijk nieuwe taal, ontwikkeld door de nederlander Guido van Rossum (en natuurlijk een heleboel vrijwilligers ;) )
Python wordt vaak een 'batteries included' taal genoemd. Dat wil zeggen dat alles er ongeveer standaard inzit. Waar je in C++/VB/C/C# tientallen regels code nodig hebt voor bijvoorbeeld een webserver, kost je dat in Python slechts drie regels door de ingebouwde webserver-module te gebruiken.
Ben je enthousiast? Mooi, download Python van hier, en installeer het.
Om je scripts te kunnen compilen, zul je Py2Exe nodig hebben, te downloaden op de website van Py2Exe.
Als dit allemaal gelukt is kun je verder gaan met het volgende hoofdstuk, 'datatypes'.

Datatypes
Een van de eerste dingen waar je met Python mee te maken zult krijgen, zijn de verschillende datatypes. Als je al andere programmeertalen kent, zul je dit waarschijnlijk wel begrijpen, maar zo niet;
Als je in je programma'tje ergens gegevens wilt onthouden, gebruik je hiervoor variabelen. Dat zijn een soort van containers, waar je tijdelijk dingen in op kan slaan. Mensen die PHP of C++ kunne, kennen dit waarschijnlijk onder de naam 'variabelen'.
Je hebt verschillende typen waarin je gegevens op kunt slaan:
  • Strings: Worden gebruikt om zinnen in op te slaan. gewoon een soort van notititeblokje.
  • Integers: Kun je alleen getallen in op slaan, en je kunt hier dan ook mee rekenen. Met Strings kun je niet rekenen!
  • Floats: Hiermee kun je gook gebruik maken van getallen, maar hiermee kun je ook komma's (.) gebruiken in de getallen.
  • Dictonairies: Hiermee hetzelfde als met arrays, maar hier kun je de items duidelijke namen geven.

Uitgebreidere informatie:

Strings : Een string wordt gebruikt om alle soorten gegevens in op te slaan, op deze manier maak je een string aan:
PHP-code:
nieuwestring str('hallo'
In dit voorbeeld is de naam van de string nieuwestring en hallo is wat er in zit.

Integers : Worden gebruikt om mee te rekenen. Kommagetallen worden afgehakt. Dus 3.14 word 3, maar ook 3.8 wordt 3. Een Integer maak je zo aan:
PHP-code:
integer int(8
De naam van de integer is integer en de waarde is 8.

Floats : Werken precies hetzelfde als integers, met als uitzondering dat getallen met een komma niet worden afgerond. Dit type moet je dus gebruiken wanneer je met precieze getallen wilt werken. Een Float wordt zo gemaakt:

PHP-code:
drijvend float(3.2

De naam van de float is 'drijvend' en de waarde is 3.2 .

Dictonairies : Worden gebruikt om meerdere gegevens in één 'woordenboek' op te slaan. Een dictonairy maak je zo aan:
PHP-code:
wb = {} 
Nu heb je een lege dictonairy.
Op deze manier kun je er gegevens instoppen:
PHP-code:
wb['eerste'] = 'Lekker woordenboek!' 
Nu maak je een waarde aan met de naam 'eerste' en je stopt erin: Lekker woordenboek!
Met
PHP-code:
wb['eerste'
Laat je 'Lekker woordenboek!' op het scherm verschijnen.

Natuurlijk heb je ook nog andere gegevenstypen, maar die zul je als beginner in Python nog niet meteen nodig hebben.

Functies
Python heeft een hele hoop standaard ingebouwde functies. Hieronder een lijstje met hun doel ernaast:
  • print
    Syntax: print 'watjewiltprinten'
    Print laat tekst op het scherm verschijnen. In het voorbeeld hierboven zal 'watjewiltprinten' op het scherm verschijnen.
  • raw_input()
    Syntax: raw_input('Input tekstje')
    raw_input vraagt de gebruiker om input. Gebruik altijd raw_input, en nooit input()! Als je input() gebruikt is dat een veiligheidsrisico voor je programma.
    Het voorbeeld hierboven zal eerst 'Input tekstje' op het scherm laten zien, en daarna wachten tot de gebruiker iets heeft ingetypt en op [enter] heeft gedrukt.
  • ord()
    ord() maakt van een ASCII-Teken een getal
  • chr()
    Precies het tegenovergestelde van ord(), dit maakt van een getal een ASCII-Teken
  • import naamvanlib
    import importeerd een library (= een set met functies) naar je script.
  • os.system(pathnaarbestand)
    Voor je het os.system commando kunt gebruiken, moet je eerst os importeren, dit doe je zo:
    import os
    Het os.system() commando start een programma

Dit zijn natuurlijk lang niet alle functies van Python, een langere lijst vind je op;
http://ftp.python.org/doc/lib/built-in-funcs.html

If/else
Met if/else kun je commando's alleen bij een bepaalde omstandigheid uitvoeren, een voorbeeld:

PHP-code:
int(1#maakt een integer [i]i[/i] aan, en geeft hem de waarde 1
if == 1:
    print 
"I is 1!"
else:
    print 
"I is niet 1 :-(" 

De volgende regel:

if i == 1:
Kijkt of i 1 is, zo ja;
print "I is 1!"
Let op de tabs! Zonder tabs zal Python een syntaxerror geven!
Zonee (else);
print "I is niet 1 :-("

Zoals je ziet zal i altijd 1 zijn. Maar het is pas echt handig als je dingen samen met raw_input enzo gaat doen.

Loops
Soms zul je een bepaald proces meerdere keren achter elkaar willen doen. Je kunt dan natuurlijk je code een paar keer typen, maar da's niet echt handig. Beter kun je gebruik maken van loops.Loops voeren een instructie net zolang uit, totdat hun omstandigheid veranderd. Voorbeeld;
Zolang 1 gelijk is aan 1, laat zien '1 = 1!'.
Probeer het maar niet te compilen, want zoals je ziet is het pseudo code ;).

Een oneindige loop
Oneindige loops zijn handig als je iets de hele tijd moet doen. Een voorbeeld van een oneindige loop is;
PHP-code:
while 1:
    print 
'Hallo!' 

Als je dit scriptje uitvoert, zal er duizenden keren 'Hallo!' op je scherm verschijnen.

Ranges

Je kunt een instructie ook een bepaald aantal keer laten uitvoeren, een voorbeeld is;
PHP-code:
for i in range(10)
    print 
'Hallo!' 

Nu zal er 10 keer 'Hallo!' op je scherm verschijnen.

Conditionele loops

Je kunt ook loopen zolang een bepaald omstandigheid waar is.

Bijvoorbeeld:
PHP-code:
int()
while 
100:
    print 
"Hallo!"
    
int(1

Dit maakt eerst een integer i aan, en zolang i kleiner is dan 100, zal er 'Hallo!' op je scherm komen te staan. maar aangezien i elke keer 1 groter wordt, zal na 99 keer de loop stoppen.

Loops stoppen

Soms zul je een loop willen stoppen, terwijl de gegeven omstandigheid nog klopt. Hiervoor kun je het break commando gebruiken.

Tot slot
Hopelijk kun je na het lezen van deze tutorial een klein programma'tje in Python schrijven. Zonier, post het hier of stuur een PM en ik zal zien wat ik kan doen.

References:
Nederlandstalige Python Tutorial

He's back
(Dit bericht is het laatst bewerkt op 24-05-2006 om 16:44:46 door Twist.)
24-05-2006 15:08:03
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Frans Offline
Shredder in nood
*****

Berichten: 1.899
Lid sinds: 04-2006
Reputatie: 9
Bericht: #2
RE: Beginnerstutorial
Mooie tut, ik zal hem straks eens even door gaan lezen als ik thuis ben.
+++
24-05-2006 15:19:04
Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Kevin Offline
Sunnyblizard
*****

Berichten: 1.297
Lid sinds: 04-2006
Reputatie: 12
Bericht: #3
RE: Beginnerstutorial
Mooie tut! Ik lees hem straks ook even door :)

+++

What if God is the consciousness that is created when enough of us are connected to the internet.
24-05-2006 15:20:34
Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Jasper Online
Ep2 Admin
******

Berichten: 15.056
Lid sinds: 04-2006
Reputatie: 223
Bericht: #4
RE: Beginnerstutorial
py2exe.com is dood... Weet je zeker dat die link klopt Twist?

//QE

Ahhh... :)
http://www.py2exe.org/

Om de zeven minuten denkt de vrouw dat de man alleen maar aan seks denkt.
(Dit bericht is het laatst bewerkt op 24-05-2006 om 16:02:42 door Jasper.)
24-05-2006 16:02:12
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Twist Offline
Pytoloog
*****

Berichten: 1.381
Lid sinds: 04-2006
Reputatie: 2
Bericht: #5
RE: Beginnerstutorial
Jasper schreef:py2exe.com is dood... Weet je zeker dat die link klopt Twist?

Sorry!
Dat moet http://py2exe.org/ zijn.
Sorry!
ik zal het meteen aanpassen.

He's back
24-05-2006 16:03:02
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Jasper Online
Ep2 Admin
******

Berichten: 15.056
Lid sinds: 04-2006
Reputatie: 223
Bericht: #6
RE: Beginnerstutorial
Hmm, nu heb ik in de python GUI dit getypt:

if i == 1:
print "I is 1!"
Zonee (else);
print "I is niet 1 :-("

En nu? :)

Om de zeven minuten denkt de vrouw dat de man alleen maar aan seks denkt.
24-05-2006 16:10:27
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Twist Offline
Pytoloog
*****

Berichten: 1.381
Lid sinds: 04-2006
Reputatie: 2
Bericht: #7
RE: Beginnerstutorial
Ik zal die even in php tags zetten, zodat de tabs beter kloppen ;).

Done, sorry, was de php tags vergeten.

He's back
(Dit bericht is het laatst bewerkt op 24-05-2006 om 16:13:04 door Twist.)
24-05-2006 16:11:33
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Jasper Online
Ep2 Admin
******

Berichten: 15.056
Lid sinds: 04-2006
Reputatie: 223
Bericht: #8
RE: Beginnerstutorial
Geeft niets, maar wat moet ik nu doen om dit 'werkend' te krijgen?

Om de zeven minuten denkt de vrouw dat de man alleen maar aan seks denkt.
24-05-2006 16:21:08
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Frans Offline
Shredder in nood
*****

Berichten: 1.899
Lid sinds: 04-2006
Reputatie: 9
Bericht: #9
RE: Beginnerstutorial
Ik heb vast ergens anders gekeken, en volgens mij moet je hier inspringen voor de print.
24-05-2006 16:26:33
Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Twist Offline
Pytoloog
*****

Berichten: 1.381
Lid sinds: 04-2006
Reputatie: 2
Bericht: #10
RE: Beginnerstutorial
Jasper schreef:Geeft niets, maar wat moet ik nu doen om dit 'werkend' te krijgen?


Je gaat naar File -> New Window en daar typ je die code. Dan druk je op Run -> Run Module, je slaat hem op, en dan wordt hij uitgevoerd in de Python Shell.

He's back
24-05-2006 16:27:59
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Jasper Online
Ep2 Admin
******

Berichten: 15.056
Lid sinds: 04-2006
Reputatie: 223
Bericht: #11
RE: Beginnerstutorial
Lauwe shit, ik python de boel gewoon! :)

Het is gelukt: I is 1!

Thnx! :) Cool... :D

Om de zeven minuten denkt de vrouw dat de man alleen maar aan seks denkt.
24-05-2006 16:32:57
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Twist Offline
Pytoloog
*****

Berichten: 1.381
Lid sinds: 04-2006
Reputatie: 2
Bericht: #12
RE: Beginnerstutorial
Jasper schreef:Lauwe shit, ik python de boel gewoon! :)

Het is gelukt: I is 1!

Thnx! :) Cool... :D

Haha mooizo :D.
Ik vond het pas echt cool sinds ik de raw_input() functie had ontdekt :D. Ging ik allemaal berekeningen mee doen enzo, en ik ging SunnyBlizard (die goed is in Wiskunde) vragen of hij nog formules wist die ik kon Pythoneren :rolleyes:

He's back
24-05-2006 16:35:04
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Kevin Offline
Sunnyblizard
*****

Berichten: 1.297
Lid sinds: 04-2006
Reputatie: 12
Bericht: #13
RE: Beginnerstutorial
Haha :) Dat weet ik nog, hoeveel programmaatjes heb je toen wel niet geschreven over wiskundige formules :rolleyes:

What if God is the consciousness that is created when enough of us are connected to the internet.
24-05-2006 16:36:15
Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Twist Offline
Pytoloog
*****

Berichten: 1.381
Lid sinds: 04-2006
Reputatie: 2
Bericht: #14
RE: Beginnerstutorial
SunnyBlizard schreef:Haha :) Dat weet ik nog, hoeveel programmaatjes heb je toen wel niet geschreven over wiskundige formules :rolleyes:

Heel erg veel. Op een gegeven moment kon ik Graden Celsius omzetten in aantal bladzijden van het weerbericht van die dag en de uitslag van een voetbalwedstrijd voorspellen door middel van het aantal supporters, de leeftijd van de scheidsrechter en het rugnummer van de keeper van de thuisploeg :rolleyes:.

He's back
(Dit bericht is het laatst bewerkt op 24-05-2006 om 16:43:00 door Twist.)
24-05-2006 16:37:07
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Jasper Online
Ep2 Admin
******

Berichten: 15.056
Lid sinds: 04-2006
Reputatie: 223
Bericht: #15
RE: Beginnerstutorial
hehehehe! :) Lol, dat is wel grappig inderdaad.

Om de zeven minuten denkt de vrouw dat de man alleen maar aan seks denkt.
24-05-2006 16:37:48
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Kevin Offline
Sunnyblizard
*****

Berichten: 1.297
Lid sinds: 04-2006
Reputatie: 12
Bericht: #16
RE: Beginnerstutorial
Rofl, inderdaad

What if God is the consciousness that is created when enough of us are connected to the internet.
24-05-2006 16:49:44
Alle berichten van deze gebruiker zoeken Reageren op dit bericht
PrisonerOfPain Offline
De liefste
***

Berichten: 201
Lid sinds: 05-2006
Reputatie: 0
Bericht: #17
RE: Beginnerstutorial
Bedankt! Ik heb zojuist mijn eerste Python script geschreven! :) Een simple Trac-plugin om een aantal sterretjes weer te geven. (Handig bij het bijhouden van todo listjes in de wiki)
Code:
def execute(hdf, txt, env):
    amount = int(txt or "1") # default is 1
    return '<img src="http://server:8080/star-yellow.gif">' * amount

The kernel can be unpacked in a microwave.
All it did was pop.
There were penguin guts everywhere.
I cried.
13-07-2006 11:30:51
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Hylk0r Offline
Posting Freak
*****

Berichten: 908
Lid sinds: 04-2006
Reputatie: 2
Bericht: #18
RE: Beginnerstutorial
Hmm... waarom heb ik dit topic niet eerder gezien?
In iedergeval, mis ik nog 2 datatypes:
lists(maak je met [ en ]) & tuples(maak je met ( en )).
En ook nog dat bijvoorbeeld tuples en strings niet mutable zijn(-> geen waarde substitutie, de oude var wordt gedelete en er word een nieuwe gemaakt) en bijvoorbeeld lists wel.

www.DonkerDump.nl
13-07-2006 12:31:41
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
PrisonerOfPain Offline
De liefste
***

Berichten: 201
Lid sinds: 05-2006
Reputatie: 0
Bericht: #19
RE: Beginnerstutorial
Hylk0r schreef:En ook nog dat bijvoorbeeld tuples en strings niet mutable zijn(-> geen waarde substitutie, de oude var wordt gedelete en er word een nieuwe gemaakt) en bijvoorbeeld lists wel.

Houd dat in dat je niet zoiets kunt doen:
Code:
MyVar = "string"
MyVar[3] = "o"

Of kan het wel maar word er letterlijk een kopie gemaakt van MyVar en terug?

The kernel can be unpacked in a microwave.
All it did was pop.
There were penguin guts everywhere.
I cried.
13-07-2006 12:55:31
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Hylk0r Offline
Posting Freak
*****

Berichten: 908
Lid sinds: 04-2006
Reputatie: 2
Bericht: #20
RE: Beginnerstutorial
Die code die je liet zien kan idd niet, want dan gaan python gooien.
EDIT:
Wat ik trouwens ook nog mis, iets over iterators(en laat ik maar niet over slicing beginnen).

www.DonkerDump.nl
(Dit bericht is het laatst bewerkt op 13-07-2006 om 13:39:56 door Hylk0r.)
13-07-2006 13:33:36
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
miccon Offline
Junior Member
**

Berichten: 16
Lid sinds: 07-2006
Reputatie: 0
Bericht: #21
RE:  Beginnerstutorial
Hylk0r schreef:Hmm... waarom heb ik dit topic niet eerder gezien?
In iedergeval, mis ik nog 2 datatypes:
lists(maak je met [ en ]) & tuples(maak je met ( en )).
En ook nog dat bijvoorbeeld tuples en strings niet mutable zijn(-> geen waarde substitutie, de oude var wordt gedelete en er word een nieuwe gemaakt) en bijvoorbeeld lists wel.
Met die lists heb je zeker een punt en met iterators ook (Tuples gebruik ik zelf eigenlijk niet, hebben die een voordeel tov lists?)
18-07-2006 17:19:14
Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Hylk0r Offline
Posting Freak
*****

Berichten: 908
Lid sinds: 04-2006
Reputatie: 2
Bericht: #22
RE: Beginnerstutorial
miccon schreef:
Hylk0r schreef:Hmm... waarom heb ik dit topic niet eerder gezien?
In iedergeval, mis ik nog 2 datatypes:
lists(maak je met [ en ]) & tuples(maak je met ( en )).
En ook nog dat bijvoorbeeld tuples en strings niet mutable zijn(-> geen waarde substitutie, de oude var wordt gedelete en er word een nieuwe gemaakt) en bijvoorbeeld lists wel.
Met die lists heb je zeker een punt en met iterators ook (Tuples gebruik ik zelf eigenlijk niet, hebben die een voordeel tov lists?)
Tuples zijn een stuk sneller(vooral als je de elementen vaak inleest) en efficienter. En het is ook wel handig om een beetje te weten wat het is, omdat een hoop builtin functie's tuples returnen.

www.DonkerDump.nl
(Dit bericht is het laatst bewerkt op 19-07-2006 om 10:41:16 door Hylk0r.)
19-07-2006 10:35:26
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Reactie plaatsen 


Ga naar locatie:


Contact opnemen | Ep2 | Naar boven | Naar inhoud | Archiefmodus | RSS-syndicatie