De Vrijes website Menu sluitenMenu openenNaar top gaan

Menu opties

Python - Elementen

Inhoud



Python code structuur

De opdracht van elk Python programmaverloop moet eindigen met het teken ':' en de inhoud ervan (d.i. codeblok) moet met een aantal spaties inspringen.

while .......:
  .......
  .......
  if .......:
    .......
    .......
  else:
    .......
    .......


Python escape tekens

\'Enkele aanhalingsteken
\"Dubbele aanhalingsteken
\nNieuwe regel (line feed)
\rNaar het begin van een regel (carriage return, maar overbodig voor Python!)
\tTab
\\Backslash


Python primitieve gegevenstypen



Python ingebouwde collectietypen



Python objectreferenties

In Python wordt elk object verwezen naar het adres waar haar waarde geborgen is. Elk object heeft dus géén waarde in zich zelf!
Bijvoorbeeld:


Python programmaverlopen


Nuttige commando's:
  • break  (om een programmaverloop onder te breken)
  • continue  (om een programmaverloop onder te breken én te continueren)
  • pass  (de lege commando)


Python functies

Elke functie moet beginnen met:
def xxxxxxx(self<, aaaaaaa><, *bbbbbb><, **ccccc>):
waarbij:
  • xxxxxxx = functienaam
  • aaaaaaa = een of meer verplichte parameters
  • *bbbbbb = een of meer optionele parameters
  • **ccccc = een of meer optionele sleutels met hun optionele standaard waarden
En optioneel eindigen met:
  return zzzzzzz
waarbij:
  • zzzzzzz = één optionele return waarde
Als er geen return waarde niet gegeven is, dan krijgt de return waarde 'None'.


Python built-in exceptions

Python built-in exceptions heeft verschillende exception-typen, zoals: IndexError, KeyError, ValueError.
En slechts één built-in functie 'raise'.

Voorbeeld van het gebruik van een exception:
try:
  .......
except ZeroDivisionError:
  .......
else:
  .......
finally:
  .......



Python speciale attributen

Speciale attributen zijn kenbaar aan __xxxxxxx__. Omdat het lastig is om het volledig uit te gaan spreken, heeft men besloten om het voortaan zo te noemen 'dunder xxxxxxx'. Dan zegt men bijvoorbeeld voor __name__: dunder name.

Speciale attribuutOmschrijving
__doc__Bevat de documentatie van de module
__name__Bevat de naam van de module


Python collectieprotocollen

- - - - - - - Lijst van de implementerende collecties - - - - - - -
Protocolbytesdictlistrangesetstrtuple
containervvvvvvv
iterablevvvvvvv
mutable mappingv------
mutable set----v--
mutable sequence--v----
sequencev-vv-vv
sizedvvvvvvv



Bijzondere Python gereedschappen


Eigen functie 'is_prime' voor bovenstaande voorbeelden:
from math import sqrt
def is_prime(x):
  if x < 1:
    return False
  if x == 1:
    return True
  for i in range(2, int(sqrt(x)) + 1):
    if x % i == 0:
      return False
  return True


Python klassen

De Python klassenstructuur:

class Xxxxxxx<(Zzzzzzz)>:
  def __init__(<self, aaaaaaa<, bbbbbbb<, .......>>>):
    <self._aaaaaaa = aaaaaaa>
    <self._bbbbbbb = bbbbbbb>
    ......
    ......
    return <.......>

  def yyyyyyyy(<self, .......<, .......>>):
    ......
    ......
    return <.......>

x = Xxxxxxx(<.......>)
y = x.yyyyyyy(<.......>)

waarbij:
  • _aaaaaa = variabele naam beginnend mét '_' voor het gebruik binnen de klas(sen)
  • Xxxxxxx = klasnaam waarvan de eerste letter in de hoofdletter is
  • yyyyyyy = klas methode naam
  • Zzzzzzz = klasnaam van de hogere level voor de overerving mode


Python shell

De shell is de opdrachtregelomgeving van Python. Het is te starten met de commando 'python'. Het kan afgesloten worden door de sneltoets 'Ctrl + Z'.

Nuttige hulpmiddelen voor het:

Python shebang

Bij Unix-systemen is het gebruikelijk om op de eerste regel van een script het speciaal commentaar toe te voegen '#!' (shebang). Daarna moet een script als uitvoerbaar gemarkeerd worden met de opdracht 'chmod', voordat het uitgevoerd wordt.
Bijvoorbeeld:
#!/usr/bin/env python3
$ chmod +x xxxxxxx.py
./xxxxxxx.py [.......]

Bij Windows volstaat de volgende opdracht om een script uit te voeren:
xxxxxxx.py [.......]

Dat komt door het ingebouwde programma 'py.exe' (PyLauncher).


Python platformspecifieke code

De mogelijkheid om bijvoorbeeld de boodschap 'Druk op een toets om door te gaan' te kunnen beantwoorden, hebben we er een speciale routine voor als volgt:

"""Keypress - Een module voor de detectie van een ingedrukte toets."""

try:
  import msvcrt

  def getkey():
    """
    Wachten tot een ingedrukte toets en een enkele tekenstring retourneren bij
    Windows.
    """

except ImportError:

  import sys
  import tty
  import termios

  def getkey():
    """
    Wachten tot een ingedrukte toets en een enkele
    tekenstring retourneren bij een Unix-systeem.
    """
    fd = sys.stdin.fileno()
    original_attributes = termios.tcgetattr(fd)
    try:
      tty.setraw(sys.stdin.fileno())
      ch = sys.stdin.read(1)
    finally:
      termios.tcsetattr(fd, termios.TCSADRAIN, original_attributes)
    return ch
  # Als een van Unix-modules tty of termios niet gevonden wordt,
  # mag ImportError vanaf hier voortzetten.


Python debugger

De standaard debugger van Python heet 'PDB'.
Vanaf de volgende ingevoegde code wordt er dan getraced:
import pdb
pdb.set_trace()

De Python Debugger heeft eigen opdrachten, onder ander:
continueLaat de rest helemaal uitvoeren tot de sneltoets 'Ctrl + c' ingedrukt is
helpGeeft de lijst van beschikbare opdrachten
listGeeft de broncode van de huidige locatie
nextVoert de regel code uit
printGeeft de waarden van een of meer objecten
quitSluit de PDB
returnVoert de huidige functie uit
whereGeeft de huidige call-stack