Page 1 of 1

Python

Posted: Mon Feb 25, 2013 5:50 pm
by Math Wolf
Kan iemand kort voor me samenvatten hoe gemakkelijk / moeilijk het is om dingen uit te voeren en te programmeren in Python zonder specifieke python voorkennis? (Ik kan vlot programmeren in R en ik kan bvb C en Fortran "lezen" en gegeven code aanpassen.)

Ik zou het mogelijk nodig hebben voor data parsing, waarbij we de data en een (mogelijk onvolledige?) parser hebben, maar we hebben niet veel tijd.

Re: Python

Posted: Mon Feb 25, 2013 6:19 pm
by Flipper
Om te beginnen kan ik je alvast vertellen dat Python eenvoudiger is dan C++. Pointers en array's kennen ze daar niet bijvoorbeeld. :) Een ander voordeel is dat Python gebruik maakt van een interpreter, dwz dat hij (zij?) het programma uitvoert tot op het punt waar het fout loopt, dus ge weet waar ge uw fout moet zoeken, dat kan tellen qua tijdswinst voor het debuggen.

Wat ge ook zou moeten weten is dat Python beschikt over een hele set ingebouwde functies en datastructuren (list, tupple,...). geen nood! Je hoeft ze niet allemaal te kennen, want ook al is Python nog lang niet zo oud als C, maar zijn online documentatie is wel volledig :D http://docs.python.org/3/" onclick="window.open(this.href);return false; (ik weet natuurlijk niet of ge Python of Python3 gebruikt, maarr dat kunt ge veranderen met de knop linksboven)

Voor de rest: hele leuke taal om ermee te spelen (als ge tijd hebt, zou ik ook eens kijken naar de Turtle-applicatie :P )

Re: Python

Posted: Mon Feb 25, 2013 7:31 pm
by Flipper
Om je een idee te geven hoe 'eenvoudig' Python is; een python programma bevat typisch 3 à 5 keer minder statements/lijntjes dan zijn C++ equivalent:

In Python:

Code: Select all

print "Hello World!"
In Python3:

Code: Select all

print("Hello World!")
(btw, print is hier ook zo'n voorbeeld van een ingebouwde functie)

In C++:

Code: Select all

#include <iostream>

int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}
Het "vieze" aan python is dat de data's (voor zover ik het weet) steeds openbaar zijn, dus ongeacht of de class-definitie in een ander file steekt, kan je ze vanuit een ander file steeds accessen.. :nonono:

Een ander belangrijke verschil met C++ zijn die for-statements, in C++ heb je bijvoorbeeld de mogelijkheid om een getal i te laten lopen van -6 tot +11, in Python kan dit echter niet, die kan enkel met positieve getallen werken. (Je zou dat kunnen oplossen door een while-lus te gebruiken ipv een for-statement).

C++

Code: Select all


for (int i=-6; i < 11; i++) {
/* Do something */
}
Python3

Code: Select all

for i in range(11):
# do something, but i goes only from 0 to 11
Oplossing om tot de C++-equivalent te bekomen:

Code: Select all

i = -6
while not i < 11:
# Do something
i += 1
Python heeft dan weer wel het voordeel om meteen te itereren over een lijst. Dus de onderstaande code:

Code: Select all

for item in ["banaan", "kiwi", "appel"]:
print(item)
geeft als output:

Code: Select all

banaan
kiwi
appel

Re: Python

Posted: Tue Feb 26, 2013 1:40 am
by Robbe
Ik weet jammergenoeg niets van R maar als ge al C kunt lezen gaat python niet veel moeilijker zijn. (buiten dat indentatie verplicht is, maar dat maakt het net leesbaarder ;) )

Met een basic python tutorial gaat ge al veel kunnen doen, zeker omdat ge gewoon uw statements kunt prototypen in de interpreter.

Misschien is er voor uw dataformaat al een parser ;-)

Re: Python

Posted: Tue Feb 26, 2013 2:15 am
by Fristi
Kort antwoord: basic python is heel simpel, zeker als ge een specifiek doel hebt.

Re: Python

Posted: Tue Feb 26, 2013 8:34 am
by Pieter Belmans
Flipper, mijn superversie van Python (2.6.6) kan gewoon

Code: Select all

for i in range(-4, 6): print i
uitvoeren hoor.

Re: Python

Posted: Tue Feb 26, 2013 1:15 pm
by Math Wolf
Robbe wrote:Misschien is er voor uw dataformaat al een parser ;-)
We hebben inderdaad een dataparser gekregen, maar we weten niet hoe volledig / goed die is om alles wat we willen er uit te krijgen (juist omdat het in Python is en we daar geen ervaring mee hebben).

Merci allemaal voor de uitleg, dat helpt enorm om er een beeld over te krijgen!