# python scripts # New Page
"""
Praktijkleren Examenopdracht – Python
Onderwerp: Kentekencheck automatiseren
Auteur: <jouw naam>
Datum: <datum>
Dit script automatiseert het opzoeken van voertuiggegevens
op basis van een kenteken via RDW Open Data.
"""
import requests
def vraag_kenteken():
"""
Vraagt maximaal 3 keer om een geldig kenteken.
Retourneert het kenteken of None.
"""
pogingen = 0 # variabele
while pogingen < 3: # lus met limiet
kenteken = input("Voer een kenteken in (6 tekens): ")
kenteken = kenteken.upper().replace("-", "").strip()
if len(kenteken) == 6: # beslissing
return kenteken
else:
pogingen += 1
print(f"Ongeldig kenteken. Poging {pogingen} van 3.")
print("Te veel foutieve pogingen. Programma stopt.")
return None
def haal_voertuiggegevens_op(kenteken):
"""
Haalt voertuiggegevens op via RDW Open Data.
"""
url = "https://opendata.rdw.nl/resource/m9d7-ebf2.json"
params = {"kenteken": kenteken}
try:
response = requests.get(url, params=params, timeout=10)
response.raise_for_status()
return response.json()
except requests.RequestException:
return None
def toon_gegevens(data):
"""
Toont voertuiggegevens op een leesbare manier.
"""
if not data: # beslissing
print("Geen voertuiggegevens gevonden.")
return
voertuig = data[0]
print("\nVoertuiggegevens:")
print("Kenteken:", voertuig.get("kenteken"))
print("Merk:", voertuig.get("merk"))
print("Type:", voertuig.get("handelsbenaming"))
print("Voertuigsoort:", voertuig.get("voertuigsoort"))
print("Eerste toelating:", voertuig.get("datum_eerste_toelating"))
def main():
"""
Hoofdprogramma
"""
doorgaan = True # variabele
while doorgaan: # lus
kenteken = vraag_kenteken()
if kenteken is None:
break # stoppen bij te veel fouten
gegevens = haal_voertuiggegevens_op(kenteken)
toon_gegevens(gegevens)
keuze = input("\nNog een kenteken controleren? (j/n): ")
if keuze.lower() != "j": # beslissing
doorgaan = False
print("Programma afgesloten.")
main()
# New Page
"""
Praktijkleren Examenopdracht – Python
Onderwerp: Subnetcalculator
Auteur: <jouw naam>
Datum: <datum>
Dit script automatiseert het berekenen van netwerkgegevens
op basis van een IP-adres en subnetmasker.
"""
def vraag_ip_adres():
"""
Vraagt maximaal 3 keer om een geldig IPv4-adres.
"""
pogingen = 0
while pogingen < 3:
ip = input("Voer een IP-adres in (bijv. 192.168.1.10): ")
delen = ip.split(".")
if len(delen) == 4 and all(d.isdigit() and 0 <= int(d) <= 255 for d in delen):
return ip
else:
pogingen += 1
print(f"Ongeldig IP-adres. Poging {pogingen} van 3.")
print("Te veel foutieve pogingen.")
return None
def vraag_subnetmasker():
"""
Vraagt een subnetmasker in CIDR-notatie.
"""
masker = input("Voer subnetmasker in (CIDR, bijv. 24): ")
if masker.isdigit() and 0 <= int(masker) <= 32:
return int(masker)
else:
print("Ongeldig subnetmasker.")
return None
def bereken_hosts(cidr):
"""
Berekent het aantal hosts op basis van CIDR.
"""
host_bits = 32 - cidr
hosts = (2 ** host_bits) - 2
return hosts
def main():
"""
Hoofdprogramma
"""
ip = vraag_ip_adres()
if ip is None:
return
cidr = vraag_subnetmasker()
if cidr is None:
return
hosts = bereken_hosts(cidr)
print("\nResultaat:")
print("IP-adres:", ip)
print("Subnetmasker: /" + str(cidr))
print("Aantal mogelijke hosts:", hosts)
main()
# New Page
"""
Praktijkleren Examenopdracht – Python
Onderwerp: Logbestand analyseren
Auteur: <jouw naam>
Datum: <datum>
Dit script analyseert een logbestand en telt het aantal foutmeldingen.
"""
def lees_logbestand(bestandsnaam):
"""
Leest een logbestand en geeft de regels terug als een lijst.
"""
try:
with open(bestandsnaam, "r") as bestand:
regels = bestand.readlines()
return regels
except FileNotFoundError:
print("Bestand niet gevonden.")
return None
def tel_fouten(regels):
"""
Telt het aantal regels waarin het woord 'ERROR' voorkomt.
"""
fout_teller = 0 # variabele
for regel in regels: # lus
if "ERROR" in regel: # beslissing
fout_teller += 1
return fout_teller
def main():
"""
Hoofdprogramma
"""
bestandsnaam = "logbestand.txt" # variabele
regels = lees_logbestand(bestandsnaam)
if regels is None:
return
fouten = tel_fouten(regels)
print("Analyse resultaat:")
print("Aantal regels in bestand:", len(regels))
print("Aantal foutmeldingen:", fouten)
main()