diff --git a/Final Assignment/FA-3.py b/Final Assignment/FA-3.py new file mode 100644 index 0000000..81fadb6 --- /dev/null +++ b/Final Assignment/FA-3.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 +#title :FA-3.py +#description :Final Assignemt: NS-kaartautomaat +#author :Marcel Haazen +#email :marcel@haazen.xyz +#date :04-11-2019 - 11:58 +#edit_date :04-11-2019 - 11:58 +#version :0.1 +#usage :python3 FA-3.py +#notes : +#python_version :3.7.4 +#============================================================================== +import string +stations = ["Schagen", "Heerhugowaard", "Alkmaar", "Castricum", "Zaandam", "Amsterdam Sloterdijk", "Amsterdam Centraal", "Amsterdam Amstel", "Utrecht Centraal", "'s-Hertogenbosch", "Eindhoven", "Weert", "Roermond", "Sittard", "Maastricht"] + +def inlezen_beginstation(stations): + while True: + start = string.capwords(str(input("What is your starting station? "))) + if start in stations: + break + else: + print("\nThis train does not come in:", start, end= "." "\n") + return start + +def inlezen_eindstation(stations,start): + while True: + ends = string.capwords(str(input("What is your starting station? "))) + if ends in stations: + if stations.index(ends) > stations.index(start): + break + else: + print("\nThe endstation is before the current station\n") + else: + print("\nThis train does not come in:", ends, end= "." "\n") + return ends + +def omroepen_reis(stations, beginstation, eindstation): + stops = stations.index(eindstation) - stations.index(beginstation) + print("\n \nHet beginstation", beginstation, "is het", (str(stations.index(beginstation)+ 1) + "e"), "station in het traject.") + print("Het eindstation", eindstation, "is het", (str(stations.index(eindstation)+ 1) + "e"), "station in het traject.") + print("De afstand bedraagt", stops, "stations(s).") + print("De prijs van het kaartje is", 5 * stops, "euro.") + print("\nJij stapt in de trein in:", beginstation) + for i in range((stations.index(beginstation)), (stations.index(eindstation))): + i += 1 + if i != stations.index(eindstation): + print(" -",stations[i]) + print("Jij stapt uit in:", eindstation) + + + +beginstation = inlezen_beginstation(stations) +eindstation = inlezen_eindstation(stations, beginstation) +omroepen_reis(stations, beginstation, eindstation) diff --git a/les 10/10-1.py b/les 10/10-1.py new file mode 100644 index 0000000..738271e --- /dev/null +++ b/les 10/10-1.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +#title :10-1.py +#description :10.1: Catching exceptions +#author :Marcel Haazen +#email :marcel@haazen.xyz +#date :07-11-2019 - 11:15 +#edit_date :07-11-2019 - 11:45 +#version :0.1 +#usage :python3 10-1.py +#notes : +#python_version :3.7.4 +#============================================================================== +amount = 4356 +try: + devider = int(input("Door hoeveel wil je het delen? ")) + assert devider > 0 + print("Iedereen moet",amount/devider," euro betalen") +except ZeroDivisionError: + print("Delen door nul kan niet!") +except ValueError: + print("Gebruik cijfers voor het invoeren van het aantal!") +except AssertionError: + print("Negatieve getallen zijn niet toegestaan!") +except: + print("Onjuiste invoer!") \ No newline at end of file diff --git a/les 10/10-2.py b/les 10/10-2.py new file mode 100644 index 0000000..4d4cd1f --- /dev/null +++ b/les 10/10-2.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +#title :10-2.py +#description :10.2: User input & exceptions +#author :Marcel Haazen +#email :marcel@haazen.xyz +#date :07-11-2019 - 11:45 +#edit_date :07-11-2019 - 11:54 +#version :0.1 +#usage :python3 10-2.py +#notes : +#python_version :3.7.4 +#============================================================================== +while True: + try: + uurloon = float(input("Wat is je uurloon?")) + uren = float(input("Hoeveel uur heb je gewerkt?")) + assert uren > 0 + print("Je salaris is", uurloon*uren, "Euro") + break + except ValueError: + print("Wij accepteren aleen cijfers geen andere characters") + except AssertionError: + print("Negatieve werk uren !? Wil je gaan betalen inplaats van betaald worden?") diff --git a/les 10/10-3.py b/les 10/10-3.py new file mode 100644 index 0000000..33d4e68 --- /dev/null +++ b/les 10/10-3.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +#title :10-2.py +#description :10.2: User input & exceptions +#author :Marcel Haazen +#email :marcel@haazen.xyz +#date :07-11-2019 - 11:45 +#edit_date :07-11-2019 - 11:54 +#version :0.1 +#usage :python3 10-2.py +#notes : +#python_version :3.7.4 +#============================================================================== +while True: + try: + filename = input("Wat is de naam van het bestand? \n") + assert filename != "" + filename = filename+".txt" + file = open(filename, "r") + n = 0 + i = 0 + li = 0 + for line in file: + i = i+1 + fields = line.split(",") + if n < int(fields[0]): + n = int(fields[0]) + li = li+1 + print("Deze file telt",i,"regels") + print("Het grootste kaartnummer is:",n,"en dat staat op regel",li+1) + file.close + break + except FileNotFoundError: + print("Er is geen bestand gevonden met de naam", filename) + except AssertionError: + print("Je moet wel een bestands naam invullen he grapjas.") diff --git a/les 10/kaartnummers.txt b/les 10/kaartnummers.txt new file mode 100644 index 0000000..99021a1 --- /dev/null +++ b/les 10/kaartnummers.txt @@ -0,0 +1,6 @@ +325255, Jan Jansen +334343, Erik Materus +235434, Ali Ahson +645345, Eva Versteeg +534545, Jan de Wilde +345355, Henk de Vries \ No newline at end of file diff --git a/les 11/11-1.py b/les 11/11-1.py new file mode 100644 index 0000000..a28854d --- /dev/null +++ b/les 11/11-1.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +#title :11-1.py +#description :11.1: Namespaces +#author :Marcel Haazen +#email :marcel@haazen.xyz +#date :07-11-2019 - 12:55 +#edit_date :07-11-2019 - 12:55 +#version :0.1 +#usage :python3 11-1.py +#notes : +#python_version :3.7.4 +#============================================================================== + +import time +b = 7 + + +def verdubbelB(): + return b + b + + +dubbel = verdubbelB() +print(dubbel) +print(time.strftime(("%H:%M:%S"))) + + +def f(y): + return 2*y + 1 + + +def g(x): + return 5 + x + 10 + + +print(f(3)+g(3)) \ No newline at end of file diff --git a/les 11/11-2.py b/les 11/11-2.py new file mode 100644 index 0000000..4d7beea --- /dev/null +++ b/les 11/11-2.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +#title :11-2.py +#description :11.2: JSON-stationslijsten lezen +#author :Marcel Haazen +#email :marcel@haazen.xyz +#date :07-11-2019 - 13:45 +#edit_date :07-11-2019 - 14:05 +#version :0.1 +#usage :python3 11-2.py +#notes : +#python_version :3.7.4 +#============================================================================== + +import json + +with open("stationslijst.json", "r") as json_file: + data = json.load(json_file) + lng = [] + print("Dit zijn de namen, codes en types van de stations:") + for station in data["payload"]: + name = station["namen"]["lang"] + code = station["code"] + st = station["stationType"] + lng.append(station['lng']) + print("{:25} - {:5} : {:5}".format(name, code, st)) + + for station in data["payload"]: + if station["lng"] == max(lng): + print("\nHet meest oostelijke gelegen station is:", station["namen"]["lang"]) \ No newline at end of file diff --git a/les 11/11-3.py b/les 11/11-3.py new file mode 100644 index 0000000..4fca5f8 --- /dev/null +++ b/les 11/11-3.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +#title :11-3.py +#description :11.3: JSON-files schrijven +#author :Marcel Haazen +#email :marcel@haazen.xyz +#date :07-11-2019 - 14:05 +#edit_date :07-11-2019 - 14:05 +#version :0.1 +#usage :python3 11-3.py +#notes : +#python_version :3.7.4 +#============================================================================== +import json +import datetime + +bestand = "inlogger.json" +time = datetime.datetime.today().strftime("%a %d %b %Y, %H:%M:%S,") + +while True: + naam = input("Wat is je achternaam? ") + if naam == "einde": + break + voorl = input("Wat zijn je voorletters? ") + gbdatum = input("Wat is je geboortedatum? ") + email = input("Wat is je e-mail adres? ") + gdict = {"inlogtijd": time, "naam": naam, "voorletters":voorl,"geb_datum": gbdatum, "e-mail": email} + + with open(bestand) as json_bestand: + data = json.load(json_bestand) + + + with open(bestand, "w") as json_bestand: + data.append(gdict) + json.dump(data, json_bestand, indent = 4) \ No newline at end of file diff --git a/les 11/inlogger.json b/les 11/inlogger.json new file mode 100644 index 0000000..e69de29 diff --git a/les 11/stationslijst.json b/les 11/stationslijst.json new file mode 100644 index 0000000..5049a34 --- /dev/null +++ b/les 11/stationslijst.json @@ -0,0 +1,205 @@ +{ + "links": {}, + "payload": [{ + "sporen": [], + "synoniemen": [], + "heeftFaciliteiten": true, + "heeftVertrektijden": true, + "heeftReisassistentie": false, + "code": "STP", + "namen": { + "lang": "London St. Pancras Int.", + "kort": "London StP", + "middel": "London St. P Int" + }, + "stationType": "MEGA_STATION", + "land": "GB", + "UICCode": "7015400", + "lat": 51.531437, + "lng": -0.126136, + "radius": 1, + "naderenRadius": 1, + "EVACode": "7004428" + }, { + "sporen": [], + "synoniemen": [], + "heeftFaciliteiten": true, + "heeftVertrektijden": true, + "heeftReisassistentie": false, + "code": "MA", + "namen": { + "lang": "Augsburg Hbf", + "kort": "Augsburg", + "middel": "Augsburg Hbf" + }, + "stationType": "SNELTREIN_STATION", + "land": "D", + "UICCode": "8002140", + "lat": 48.3654307143927, + "lng": 10.88547706604, + "radius": 1, + "naderenRadius": 1, + "EVACode": "8000013" + }, { + "sporen": [], + "synoniemen": [], + "heeftFaciliteiten": true, + "heeftVertrektijden": true, + "heeftReisassistentie": false, + "code": "BHF", + "namen": { + "lang": "Berlin Ostbahnhof", + "kort": "Berlin Ost", + "middel": "Berlin Ostbhf" + }, + "stationType": "KNOOPPUNT_INTERCITY_STATION", + "land": "D", + "UICCode": "8003004", + "lat": 52.5104989, + "lng": 13.4346995, + "radius": 1, + "naderenRadius": 1, + "EVACode": "8010255" + }, { + "sporen": [], + "synoniemen": [], + "heeftFaciliteiten": true, + "heeftVertrektijden": true, + "heeftReisassistentie": false, + "code": "BSPD", + "namen": { + "lang": "Berlin-Spandau", + "kort": "Berlin-Spa", + "middel": "Berlin-Spandau" + }, + "stationType": "INTERCITY_STATION", + "land": "D", + "UICCode": "8003025", + "lat": 52.5343152, + "lng": 13.1989467, + "radius": 1, + "naderenRadius": 1, + "EVACode": "8010404" + }, { + "sporen": [], + "synoniemen": [], + "heeftFaciliteiten": true, + "heeftVertrektijden": true, + "heeftReisassistentie": false, + "code": "GSB", + "namen": { + "lang": "Berlin Gesundbrunnen", + "kort": "Berlin Gsb", + "middel": "Berlin Gesundbr." + }, + "stationType": "INTERCITY_STATION", + "land": "D", + "UICCode": "8007799", + "lat": 52.5486327, + "lng": 13.3904267, + "radius": 1, + "naderenRadius": 1, + "EVACode": "8011102" + }, { + "sporen": [], + "synoniemen": [], + "heeftFaciliteiten": true, + "heeftVertrektijden": true, + "heeftReisassistentie": false, + "code": "ESRT", + "namen": { + "lang": "Schwerte (Ruhr)", + "kort": "Schwerte", + "middel": "Schwerte (R)" + }, + "stationType": "STOPTREIN_STATION", + "land": "D", + "UICCode": "8008016", + "lat": 51.442281, + "lng": 7.55896, + "radius": 1, + "naderenRadius": 1, + "EVACode": "8000037" + }, { + "sporen": [], + "synoniemen": [], + "heeftFaciliteiten": true, + "heeftVertrektijden": true, + "heeftReisassistentie": false, + "code": "HAGEN", + "namen": { + "lang": "Hagen Hbf", + "kort": "Hagen", + "middel": "Hagen Hbf" + }, + "stationType": "KNOOPPUNT_SNELTREIN_STATION", + "land": "D", + "UICCode": "8008073", + "lat": 51.362747, + "lng": 7.460249, + "radius": 1, + "naderenRadius": 1, + "EVACode": "8000142" + }, { + "sporen": [], + "synoniemen": [], + "heeftFaciliteiten": true, + "heeftVertrektijden": true, + "heeftReisassistentie": false, + "code": "WUPPV", + "namen": { + "lang": "Wuppertal-Vohwinkel", + "kort": "Wupp-Vohw", + "middel": "Wupp-Vohwinkel" + }, + "stationType": "STOPTREIN_STATION", + "land": "D", + "UICCode": "8008082", + "lat": 51.23351, + "lng": 7.07237, + "radius": 1, + "naderenRadius": 1, + "EVACode": "8006718" + }, { + "sporen": [], + "synoniemen": [], + "heeftFaciliteiten": true, + "heeftVertrektijden": true, + "heeftReisassistentie": false, + "code": "EENP", + "namen": { + "lang": "Ennepetal", + "kort": "Ennepetal", + "middel": "Ennepetal" + }, + "stationType": "STOPTREIN_STATION", + "land": "D", + "UICCode": "8008134", + "lat": 51.304892, + "lng": 7.343285, + "radius": 1, + "naderenRadius": 1, + "EVACode": "8001795" + }, { + "sporen": [], + "synoniemen": [], + "heeftFaciliteiten": true, + "heeftVertrektijden": true, + "heeftReisassistentie": false, + "code": "KSWE", + "namen": { + "lang": "Schwelm", + "kort": "Schwelm", + "middel": "Schwelm" + }, + "stationType": "STOPTREIN_STATION", + "land": "D", + "UICCode": "8008136", + "lat": 51.290526, + "lng": 7.289681, + "radius": 1, + "naderenRadius": 1, + "EVACode": "8000033" + }], + "meta": {} + } \ No newline at end of file diff --git a/les 8/8-5.py b/les 8/8-5.py new file mode 100644 index 0000000..739bc10 --- /dev/null +++ b/les 8/8-5.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +#title :8-5.py +#description :Opdracht 8.5 - Dict & functions +#author :Marcel Haazen +#email :marcel@haazen.xyz +#date :04-11-2019 - 10:10 +#version :0.1 +#usage :python3 8-5.py +#notes : +#python_version :3.7.3 +#============================================================================== + +def namen(): + namen = {} + while True: + naam = str(input("Volgende naam: ")) + if naam == "": + for name in namen.keys(): + if namen[name] == 1: + print("Er is", namen[name], "student met de naam", name) + else: + print("Er zijn", namen[name], "studenten met de naam", name) + break + else: + if naam in namen.keys(): + namen[naam] = namen[naam]+1 + else: + namen[naam] = 1 + +namen() \ No newline at end of file diff --git a/les 9/9-1.py b/les 9/9-1.py new file mode 100644 index 0000000..3f05892 --- /dev/null +++ b/les 9/9-1.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 +#title :9-1.py +#description :Opdracht 9.1 - Sets +#author :Marcel Haazen +#email :marcel@haazen.xyz +#date :04-11-2019 - 11:36 +#version :0.1 +#usage :python3 9-1.py +#notes : +#python_version :3.7.3 +#============================================================================== + +bruin = {"Boxtel", "Best", "Beukelaan", "Eindhoven", "Helmond 't Hout", "Helmond", "Helmond Brouwhuis", "Deurne"} +groen = {"Boxtel", "Best", "Beukelaan", "Eindhoven", "Geldrop", "Heeze", "Weert"} +print(bruin.intersection(groen)) +print(bruin.difference(groen)) +print(bruin.union(groen)) \ No newline at end of file diff --git a/les 9/9-2.py b/les 9/9-2.py new file mode 100644 index 0000000..d3c18f5 --- /dev/null +++ b/les 9/9-2.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +#title :9-2.py +#description :Opdracht 9.2 - Random +#author :Marcel Haazen +#email :marcel@haazen.xyz +#date :04-11-2019 - 11:40 +#version :0.1 +#usage :python3 9-2.py +#notes : +#python_version :3.7.3 +#============================================================================== +import random + +def randomNum(): + return 9 # Fair random number chosen by rolling a D20, Totally random everytime as you never know if its the same + +def monopolyworp(): + throws = 0 + while True: + throw1 = random.randrange(1,7) + throw2 = random.randrange(1,7) + if throw1 == throw2: + throws += 1 + if throws == 3: + print(throw1,"+",throw2,"= (Direct to jail)") + break + else: + print(throw1,"+", throw2, "=", throw2+throw1,"(Double)") + continue + else: + print(throw1,"+",throw2,"=", throw2+throw1) + break + +monopolyworp() \ No newline at end of file