SVG 05 - Modules

Modules

Tot nu toe hebben we o.a. de volgende functies gezien: print(), input(), int(), str(), type(), open(). Dit noemt men “built-in” (ingebouwde) functies: Dit zijn functies die je altijd onmiddellijk ter beschikking hebt in Python. In het totaal zijn er zo ongeveer 70 functies standaard beschikbaar in Python.

Hier vind je de lijst met ingebouwde functies: https://docs.python.org/3.8/library/functions.html

Buiten deze ingebouwde functies bevat Python ook veel extra functionaliteit in wat men de “standard library” noemt. Deze “standard library” bestaat uit vele modules met hierin o.a. vele functies die je kan gebruiken. Om vanuit je programma die functies te kunnen gebruiken dien je de gewenste module eerste te importeren met het import statement:

import getpass
gebruikersnaam = getpass.getuser()
print(gebruikersnaam)

Hoe werkt dit?

Regel 1

De module met naam getpass wordt bruikbaar gemaakt vanuit je programma.

Regel 2

De functie getuser() in de module getpass wordt opgeroepen. Deze functie geeft de huidige gebruikersnaam terug. Deze wordt nadien opgeslagen via het assignment statement in de variabele met naam “gebruikersnaam”.

Regel 3

De variabele met naam “gebruikersnaam” wordt op het scherm getoond.

Opgave 21

In opgave 20 vragen de gebruiker om zijn/haar paswoord in te geven, via de input() functie. Maar dit werkt niet handig omdat input() de invoer toont terwijl je typt. In de module getpass zit ook een functie getpass() die hier een oplossing voor biedt. Pas je programma aan zodanig dat je paswoord niet meer zichtbaar is, gebruik makend van deze getpass() functie.

Opgave 22

Een andere nuttige module in de standard library is de random module. In de random module zit o.a. de functie randint(). Deze functie geeft je een willekeurig getal terug tussen twee opgegeven getallen. Dus, bij een oproep van randint(0, 1), krijg je ofwel 0 ofwel 1 terug. Als je randint(0, 100) gebruikt, krijg 1 getal in het interval [0, 100]. Dus, je getal kan 0, 1, …, 99 of 100 zijn. Schrijf een programma dat een willekeurige PIN-code voor je GSM maakt.

Opgave 23

Pas je programma uit opgave 19 aan, zodanig dat de straal van je cirkels willekeurig gekozen wordt, gebruik makend van de functie randint() uit de module random. Pas vervolgens je programma aan zodanig dat de uitvoer niet meer op het scherm getoond wordt, maar naar een bestand geschreven wordt met behulp van de open() functie (alsook write() en close() zoals in het voorbeeld).

Opgave 24

In de module random zit verder ook een functie choice() die een willekeurige keuze maakt uit een gegeven verzameling. Bijvoorbeeld:

a = random.choice([10, 20,  30, 40])
print(a)

Uitvoer:

30

Maar dit werkt ook voor strings:

a = random.choice("abcdefghij")
print(a)

Uitvoer:

j

Maak een programma dat de gebruiker vraagt om een bestandsnaam, dit bestand opent, en er vervolgens een paswoord in schrijft bestaande uit 8 willekeurige letters.

Opgave 25

Pas je programma uit opgave 23 aan, zodanig dat de kleur van je cirkels willekeurig gekozen wordt, gebruik makend van de functie choice() uit de module random.

Tip:

kleur = random.choice(["red", "green", "blue", "purple", "black"])
print(kleur)

Uitvoer:

green