Deze applicatie heet IPython en je kan er Python code mee uitvoeren (Python is een soort programmeertaal; een manier om aan een computer uit te leggen wat die computer voor jou moet doen).
Selecteer de cel met de som hieronder door erin te klikken (er komt dan een groene kader omheen staan) en druk op Shift+Enter of op de Play () knop hierboven om de code in de cel uit te voeren:
In [ ]:
5+11
De code is georganiseerd in cellen en als je wil kan je kan de code in de cellen aanpassen en opnieuw uitvoeren. Pas hierboven de som aan en voer ze opnieuw uit.
... doe maar, ik wacht hier even ...
"Pffff, dat kan ik ook met eender welke rekenmachine"
Klopt, maar dit is nog maar het begin; laat ons eens iets anders proberen:
In [ ]:
print("Hallo allemaal!")
IPython zal, als het commando een resultaat geeft, deze "output" onder de cell uitprinten.
En als je iets vergeet of fout typt, wordt-ie boos:
In [ ]:
print("Dit lukt dus niet"
Er wordt dan door Python geprobeerd om uit te leggen wat er mis gaat, maar dat is niet altijd 100% duidelijk. Kan je uitvissen wat er hierboven misloopt?
-Tip: het "Hallo allemaal" commando kan misschien helpen, het is maar een kleine vergetelheid, maar een computer kan van iets dergelijks helemaal in de war raken-
In [ ]:
a = 'Dit is een tekst' # tekst moet je tussen aanhalingstekens '...' zetten
a = "Dit is een tekst" # maar het mogen ook dubbele aanhalingstekens "..." zijn (als je ze maar niet door mekaar haalt)
# oh, ja en alles wat achter een # staat is commentaar, dat slaat Python gewoon over
b = 13
c = 273.15 # voor decimale cijfers, geen komma's, maar punten!
Zie, je geen resultaat, dus IPython print niets uit, maar de variabelen zitten wel in het geheugen, kijk maar:
In [ ]:
print(a, b, c)
sommige "dingen" of objecten die je in Python gebruikt krijgen een soort superpowers mee in de vorm van methodes die je kan aanroepen.
Dit doe je door een punt achter het object te zetten en dan de methode te typen (opgelet, voor het aanroepen van een functie moet je altijd haakjes achter de functienaam zetten, desnoods zonder iets tussen):
In [ ]:
# bvb een tekst in hoofdletters omzetten:
a.upper()
Door na het punt op de
In [ ]:
a.
In [ ]:
minions = ['Dave','Stuart','Jerry','Jorge']
print(minions[2])
#opgelet, elementnummers beginnen te tellen bij 0, daarom wordt de derde minion in de lijst geprint!
Maar als je eigenlijk de favoriete ijsjes van de minions wil opslaan, gebruik je best een dictionary (Engels voor "woordenboek", omdat het je toelaat om dingen op te zoeken op basis van een index / sleutel):
In [ ]:
minion_ijsjes = {
'Dave':'aardbei', # 'Dave' is hier de sleutel, 'aardbei' is de ermee gekoppelde waarde
'Stuart':'vanille',
'Jerry':['mokka', 'vanille'], # Inderdaad, we kunnen dit nog veel ingewikkelder maken :-)
'Jorge':'chocolade'
}
print(minion_ijsjes['Jerry'])
In [ ]:
# en begrijp je deze?
print(minion_ijsjes[minions[2]])
In [ ]:
print(range(4))
Dit kunnen we gebruiken om 4 keer dezelfde print te herhalen, maar telkens met één nummer hoger
In [ ]:
for nummer in range(4):
print(minions[nummer])
Opgelet! de "whitespace" (witruimte) vóór het print commando is van belang! Zonder deze spaties zou Python niet weten wat er binnen en wat er buiten de loop valt:
In [ ]:
for nummer in range(4):
print(nummer)
print(minions[nummer])
Is niet hetzelfde als:
In [ ]:
for nummer in range(4):
print(nummer)
print(minions[nummer])
We kunnen ook iets één keer herhalen voor elke minion in ons minions lijstje.
In [ ]:
for minion in minions:
print(minion)
Of voor elke minion in ons minions lijstje de minion printen plus zijn ijsje(s) uit de minion_ijsjes dictionary
In [ ]:
for minion in minions:
print(minion, minion_ijsjes[minion])
While is een gelijkaardig soort loop. "while" is Engels voor "terwijl" en het betekent dat de instructies in de loop uitgevoerd zullen worden terwijl aan een bepaalde voorwaarde voldaan is.
Bijvoorbeeld met een dobbelsteen gooien tot er 6 gegooid wordt:
In [ ]:
import random # om de random module te kunnen gebruiken; import wordt verder nog uitgelegd
worp = 0 # een worp van 0 kan niet, maar we moeten ergens beginnen...
while worp < 6:
worp = random.randint(1,6) # een willekeurig getal van 1 tot 6
print(worp)
Als je het een paar keer probeert kan je zien dat het echt willekeurig is (met Ctrl+Enter wordt de cel uitgevoerd terwijl de cursor blijft staan)
Een speciaal geval is de "while True:" constructie; aangezien aan True (Engels voor "Waar") altijd voldaan wordt, blijft dit voor eeuwig loopen, tenzij je de executie manueel onderbreekt door op de Stop knop () in de menubalk te drukken of Kernel > Interrupt te kiezen uit het dropdown menu.
In [ ]:
import time # om de time module te kunnen gebruiken; import wordt verder nog uitgelegd
while True:
print('.'), # met de komma voorkom je dat er na elk punt een nieuwe lijn gestart wordt
time.sleep(0.2) # 0.2 seconden pauzeren
Druk op de Stop knop () om de executie te beëindigen.
Deze methode wordt soms gebruikt om een programma te starten dat moet blijven lopen.
Dat gebeurt met een "try except" constructie en wel op de volgende manier:
In [ ]:
import time
while True:
try: # probeer de code uit te voeren...
print('.'),
time.sleep(0.2)
except KeyboardInterrupt: # ... en als een KeyboardInterrupt fout optreedt, toon ze dan niet, maar:
print('\nEinde') # print 'Einde' (op een nieuwe lijn)
break # verlaat de while lus
In [ ]:
punten = 85
if punten > 90:
print('Schitterend')
elif punten > 80:
print('Zeer goed')
elif punten > 60:
print('Goed')
else:
print('Hm')
Bijvoorbeeld: die Jerry is me toch wat gulzig, dus:
In [ ]:
for minion in minions:
if minion == 'Jerry':
print('--Gulzigaard--')
else:
print(minion, minion_ijsjes[minion])
In [ ]:
def begroet(naam):
print('Dag ' + naam)
Zullen we onze nieuwe functie eens uitproberen?
In [ ]:
begroet('Mariette')
we kunnen strings (tekst variabelen) gebruiken als template om teksten samen te stellen zoals de Samenvoegen functonaliteit in tekstverwerkers zoals Microsoft Word.
Dat gebeurt met de format() functie:
'Dag {}'.format(naam)
maakt dat de accolades in de tekst vervangen worden door de waarde van de variabele
In [ ]:
def begroet(naam):
print('Dag {}'.format(naam))
begroet('Willy')
Natuurlijk zijn er al heel wat mensen die Python code geschreven hebben en veel van die code is beschikbaar in de vorm van libraries die je kant en klaar kan installeren.
Als zo'n library geïnstalleerd hebt, kan je ze importeren en de functies ervan beginnen gebruiken:
In [ ]:
import math
print("PI: {}".format(math.pi))
print("sin(PI/2): {}".format(math.cos(math.pi)))
requests is een bibliotheek om webpagina's in te laden; hier bezoeken we een openweathermap en drukken een deel van de weersvoorspelling voor Mechelen af.
In [ ]:
import requests
r = requests.get('http://api.openweathermap.org/data/2.5/weather?q=Mechelen').json()
print(r['weather'][0]['description'])
Of een quote uit de online database van iheartquotes.com
In [ ]:
import requests
r = requests.get('http://www.iheartquotes.com/api/v1/random')
print(r.text)
Er is natuurlijk nog veel meer te leren, maar dit geeft je al een goede basis om Python code te begrijpen en zelf één en ander in mekaar te knutselen. Laat het weten als je suggesties of opmerkingen hebt!
veel plezier met Python!