Python thuis

De code die je submit naar de CS Circles website wordt nagekeken door een kopie van Python die op onze webserver wordt uitgevoerd. Dat stelt ons in staat een opgave automatisch na te kijken. De normale manier om in Python te programmeren is dat je begint met het installeren van een Python interpreter op je eigen computer. Python op je eigen computer thuis uitvoeren heeft meerdere voordelen: (i) je wordt niet beperkt door het feit dat je de Python omgeving op onze webserver moet delen met  anderen; (ii) je kunt interactieve programma's schrijven (zie beneden); (iii) wanneer de software  eenmaal is geïnstalleerd heb je geen verbinding met internet nodig om een programma uit te voeren; (iv) je kunt gebruik maken van debug tools , geluid en grafische toepassingen.

Gratis Python tools

Een voor de hand liggende bron, om Python op je computer uit te voeren, of het nu gaat om Windows, Mac, of Linux, is de officiële Python.org website. Klik hier om naar de Download Python pagina te gaan. Kies de meest recente 3.x versie en kies de installer die overeenkomt met jouw computer (bijvoorbeeld, voor 32-bit Windows, "Windows x86 MSI Installer"), download de installer en voer deze uit. Zodra alles geïnstalleerd is, kun je het programma IDLE uitvoeren waarna een interactieve Python prompt te zien is.

Opmerking: op school, mag je wellicht, afhankelijk van de rechten die de school een gebruiker geeft, niet zelf Python installeren; het kan zijn dat je de toestemming en hulp van de netwerkbeheerder nodig hebt. Maar mocht dat het geval zijn dan is het toch mogelijk Python te installeren en uit te voeren met behulp van een usb-stick, kijk bijvoorbeeld op portablepython.com.

IDLE ontbeert een aantal nuttige debug tools. Wing IDE kent wel debugging eigenschappen waaronder het maken van  breakpoints, het stap voor stap kunnen uitvoeren van een programma,  het kunnen bekijken van variabelen en de stack. Andere opties, die we moeilijker konden installeren, zijn PyDev of PyCharm. Voor het overige van deze pagina hebben we alleen over IDLE.

De interactieve prompt gebruiken

Wanneer je IDLE opent zie een interactieve prompt (ook wel shell genaamd). Hier, kun je meteen een opdracht intypen en onmiddellijk laten uitvoeren. Het teken

>>>
geeft aan dat Python wacht op invoer. Als je bijvoorbeeld print(2+3) intypt en dan op de Enter toets drukt, krijg je te zien

>>> print(2+3)
5
De eerste regel is wat je aan Python vroeg om te doen, en de tweede regel is de uitvoer van Python: het resultaat  van het uitvoeren van de opdracht was dat Python het getal heeft uitgerekend en afgedrukt. In feite kun je, als je dat wilt,  print weglaten.

>>> 2+3
5
Met andere woorden, standaard zal Python de waarde van de opdrachten, die je vraagt om uit voeren, afdrukken. Het is nuttig om te weten welke versie van Python je gebruikt. Wanneer je de volgende twee regels laat uitvoeren kun je zien welke versie we hier bij CS Circles gebruiken.
Voorbeeld
Ga na welke versie van Python we gebruiken. Wanneer je deze twee regels thuis uitvoert krijg je de versie te zien die jij gebruikt.
(We leren je versie 3 omdat dat voor beginners gemakkelijker is. Versie 2 wordt nog veel gebruikt in de industrie, maar ook daar wordt versie 3 meer en meer gebruikt.)

Nuttige feiten

  • De interactieve prompt kan je helpen documentatie te verkrijgen over ingebouwde functies door middel van de help functie. Type bijvoorbeeld in help(print) waarna je informatie krijgt over hoe de print() functie werkt.
  • Om een oneindige loop of een berekening die te lang duurt te stoppen, kun je het programma onderbreken door op Ctrl-C te drukken. Probeer de volgende opdracht uit te voeren
    while (1 > 0): purpose = "Wasting Time"
    en onderbreek het dan met Ctrl-C.
  • Wanneer je Python als rekenmachine gebruikt  of je doet wat kleine experimenten, dan hebben we een shortcut voor je. De underscore _ refereert aan het resultaat van voorgaande opdracht die is uitgevoerd bij de interactieve prompt. Als je bijvoorbeeld  2+3 op een regel typt en dan _*2 op de volgende regel  dan zie je:
    >>> 2+3
    5
    >>> _*2
    10

Bestanden/scripts bewerken

Wanneer je werkt aan een complex probleem dan is het nodig om een groot bestand met vele regels te schrijven en aan te passen, vergelijkbaar met het schrijven van de CS Circles website. Om dit met in IDLE te doen, ga je naar het File menu en kies daar New Window (of gebruik Ctrl-N).  Daarmee wordt een nieuw venster geopend  waarin een basis tekstverwerker actief is (niet een interactieve prompt). Schrijf wat code in dit venster (bijvoorbeeld print("Hello, World")); merk op dat deze regel niet wordt uitgevoerd wanneer je de Enter toets indrukt. Bewaar dit bestand op je computer (in het File menu kies je Save, of druk op Ctrl-S). Daarna kun je het uitvoeren: ga naar het Run menu en kies Run Module (of  gebruik de sneltoets F5). Je zult de uitvoer van je programma zien in het venster met de interactieve prompt!

Interactieve invoer

Een belangrijke eigenschap dat je kunt toepassen wanneer je Python op je eigen computer thuis uitvoert, anders dan op de CS Circles website, is dat je nu interactieve invoer kunt gebruiken in het zogenaamde interpreter venster. De input() opdracht zorgt ervoor dat er regel invoer vanuit de interactieve interpreter, en dat de string de  return waarde van de  input() functie wordt. Daar komt nog bij dat wanneer je een input gebruikt het mogelijk is om een prompt string als argument mee te geven, waarmee de gebruiker geholpen kan worden wat te doen. We zulle dat illustreren met een voorbeeld... kopieer het in je IDLE editor, bewaar het en voer het uit.

print("Good day!")
username = input("What is your name? ")
print("Nice to meet you,", username)

Een voorbeeld met interactiviteit: een raadspel

Hier volgt een voorbeeld waarbij interactieve invoer een groot verschil maakt. Het betreft een raadspel waarbij je tegen de computer speelt. We zullen gebruik maken van een functie uit  de random module: de functie random.randint(A, B) genereert een willekeurig geheel getal tussen  A en B (inclusief). Gebruik makende van deze functies, volgt hier een spelletje: kopieer-en-plak het in je Idle-editor, bewaar het en voer het uit!

import random
secretNumber = random.randint(1, 100)
print("I'm thinking of a secret number between 1 and 100...")
while True:
    guess = int(input("What is your guess? "))
    if (guess == secretNumber):
        break
    if (guess > secretNumber):
        print("Sorry, your guess is too high.")
    if (guess < secretNumber):
        print("Sorry, your guess is too low.")
print("Dang, you got it!")

En daarna...

Wanneer je programma's thuis schrijven en uitvoeren interessant vindt schrijf dan meer ingewikkelde programma's zoals een interactief programma dat meeteenheden omzet. Hier volgen nog een paar dingen die je kunt doen wanneer je Python op de eigen computer uitvoert:

We bevelen het gratis  Invent Your Own Computer Games With Python  aan wanneer je opzoek bent naar iets dat op een levendige en gedetailleerde manier grappige en interessante ideeën uitlegt over interactieve Python.

Je kunt Pygame in Python 3 in Windows implementeren door gebruik te maken van  extra bibliotheken die je hier vindt.