@ -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) |
@ -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!") |
@ -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?") |
@ -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.") |
@ -0,0 +1,6 @@ | |||||
325255, Jan Jansen | |||||
334343, Erik Materus | |||||
235434, Ali Ahson | |||||
645345, Eva Versteeg | |||||
534545, Jan de Wilde | |||||
345355, Henk de Vries |
@ -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)) |
@ -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"]) |
@ -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) |
@ -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": {} | |||||
} |
@ -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() |
@ -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)) |
@ -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() |