Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9fa5aa3

Browse files
authored
Add all exercises of lesson 9.
1 parent 4c51043 commit 9fa5aa3

File tree

7 files changed

+190
-0
lines changed

7 files changed

+190
-0
lines changed

‎Lesson-09/artikelen.csv

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Artikelnummer;Artikelcode;Naam;Voorraad;Prijs
2+
271;TRS665;Ipad hoes;155;19.0
3+
128;ZYX163;Bureaulamp;34;19.95
4+
137;MLK709;Monitorstandaard;66;32.50
5+
123;PQR678;Nietmachine;587;9.99
6+
121;ABC123;Highlight pen;231;0.56

‎Lesson-09/gamers.csv

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Anton;12-05-2016;29
2+
Douwe Bob;13-05-2016;44
3+
Anton;11-05-2016;39
4+
Douwe Bob;12-05-2016;55
5+
Anton;10-05-2016;29
6+
Douwe Bob;11-05-2016;69

‎Lesson-09/inloggers.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Thu 07 Sep 2017 at 21:55;W.A.;van Oranje;27-04-1967;willem@nederland.nl
2+
Thu 07 Sep 2017 at 21:56;M.;Rutte;12-12-1971;MarkRutte@torentje.me

‎Lesson-09/pe9_1.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Catching Exceptions, CSV-files (Perkovic – §4.4 & §7.3)
6+
7+
Practice Exercise 9.1 (catching exceptions)
8+
Je reist met een grote groep en hebt een hotel afgehuurd. Dat kost 4356,ドル-.
9+
Dit is kostbaar, daarom wil je weten hoeveel dit per persoon kost. Schrijf een
10+
programma dat de gebruiker vraagt om het aantal personen dat mee op reis gaat.
11+
Deel het bedrag door het aantal reizigers en print dat uit! Gebruik een try-
12+
except; zorg dat bij foute invoer deze verschillende foutmeldingen geprint
13+
worden:
14+
15+
Aantal = 0 - Delen door nul kan niet!
16+
Aantal = -20 - Negatieve getallen zijn niet toegestaan!
17+
Aantal = 'twintig' - Gebruik cijfers voor het invoeren van het aantal!
18+
Alle andere fouten: - Onjuiste invoer!
19+
20+
'''
21+
22+
try:
23+
aantalReizigers = int(input('Hoeveel personen gaan er mee op reis? : '))
24+
if aantalReizigers == 0:
25+
raise Exception('Delen door nul kan niet!')
26+
elif aantalReizigers < 0:
27+
raise Exception('Negatieve getallen zijn niet toegestaan!')
28+
elif isinstance(aantalReizigers, str):
29+
raise Exception('Gebruik cijfers voor het invoeren van het aantal!')
30+
except Exception:
31+
print()
32+
except ValueError:
33+
print('Onjuiste invoer!')
34+
35+
print('De kosten voor 1 persoon '
36+
'bedraagt: {0:.2f}'.format(4356 / aantalReizigers))

‎Lesson-09/pe9_2.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Catching Exceptions, CSV-files (Perkovic – §4.4 & §7.3)
6+
7+
Practice Exercise 9.2 (CSV-files schrijven)
8+
Met onderstaande code worden de gegevens van iedereen vastgelegd die wil
9+
inloggen in een overheidssysteem. Voorletters, achternaam, geboortedatum en
10+
e-mailadres worden ingelezen via de console en weggeschreven naar een CSV-
11+
bestand, voorafgegaan door de huidige datum en tijd. Van meerdere personen
12+
moeten deze gegevens ingelezen kunnen worden en weggeschreven naar het CSV-
13+
bestand. Het programma stop na intikken van de naam 'einde'. Maak het
14+
programma af:
15+
16+
Een mogelijke uitvoer zou dan worden:
17+
Wat is je achternaam: van Oranje
18+
Wat zijn je voorletters: W.A.
19+
Wat is je geboortedatum: 27-04-1967
20+
Wat is je e-mail adres: willem@nederland.nl
21+
22+
Het CSV-bestand ziet er hierna zo uit:
23+
Tue 03 May 2016 at 12:06;W.A.;van Oranje;27-04-1967;willem@nederland.nl
24+
25+
'''
26+
from datetime import datetime
27+
import csv
28+
29+
bestand = 'inloggers.csv'
30+
31+
with open('inloggers.csv', 'w') as file:
32+
while(True):
33+
naam = input("Wat is je achternaam? ")
34+
if(naam == 'einde'):
35+
break
36+
voorl = input("Wat zijn je voorletters? ")
37+
gbdatum = input("Wat is je geboortedatum? ")
38+
email = input("Wat is je e-mail adres? ")
39+
tijdstip = datetime.strftime(datetime.now(), '%a %d %b %G at %H:%M')
40+
text = [tijdstip, voorl, naam, gbdatum, email]
41+
file.write(';'.join(text))
42+
file.write('\n')
43+

‎Lesson-09/pe9_3.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Catching Exceptions, CSV-files (Perkovic – §4.4 & §7.3)
6+
7+
Practice Exercise 9.3 (CSV-files lezen)
8+
In deze opdracht krijg je een CSV-bestand met informatie van een aantal gamers.
9+
Per regel staan er drie gegevens van een gamer: de naam, de speeldatum en de
10+
behaalde score. Het programma leest alle regels in en bepaalt welke gamer de
11+
hoogste score heeft behaald en op welke datum dat was.
12+
13+
Uitvoer:
14+
De hoogste score is 69 op 11-05-2016 behaald door Douwe Bob
15+
16+
Deze informatie komt uit het volgende CSV-bestand, neem deze over:
17+
Anton;12-05-2016;29
18+
Douwe Bob;13-05-2016;44
19+
Anton;11-05-2016;39
20+
Douwe Bob;12-05-2016;55
21+
Anton;10-05-2016;29
22+
Douwe Bob;11-05-2016;69
23+
24+
'''
25+
26+
with open('gamers.csv', 'r') as file:
27+
scores = []
28+
for line in file.readlines():
29+
naam, datum, score = line.rstrip().split(';')
30+
scores.append([score, [datum, naam]])
31+
hoogsteScore = max(scores)
32+
print('De hoogste score is: {} op {} behaald door '
33+
'{}'.format(hoogsteScore[0], hoogsteScore[1][0], hoogsteScore[1][1]))

‎Lesson-09/pe9_4.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Catching Exceptions, CSV-files (Perkovic – §4.4 & §7.3)
6+
7+
Practice Exercise 9.4 (CSV-files met headers)
8+
De onderstaande tabel bevat de gegevens van een aantal producten.
9+
10+
Stap 1: Maak (met Python) een CSV-bestand met bovenstaande gegevens
11+
(inclusief headers).
12+
Stap 2: Lees vervolgens het bestand met een Python programma weer in en print
13+
1.) de naam en prijs van het duurste product.
14+
2.) het artikelnummer en de voorraad van het artikel met de kleinste
15+
voorraad en
16+
3.) het totaalaantal producten in voorraad!
17+
18+
Uitvoer:
19+
Het duurste artikel is Monitorstandaard en die kost 32.50 Euro
20+
Er zijn slechts 34 exemplaren in voorraad van het product met nummer 128
21+
In totaal hebben wij 1073 producten in ons magazijn liggen
22+
23+
'''
24+
25+
headers = ['Artikelnummer', 'Artikelcode', 'Naam', 'Voorraad', 'Prijs']
26+
artikelen = {
27+
('121', 'ABC123', 'Highlight pen', '231', '0.56'),
28+
('123','PQR678', 'Nietmachine', '587', '9.99'),
29+
('128','ZYX163', 'Bureaulamp', '34', '19.95'),
30+
('137','MLK709', 'Monitorstandaard', '66', '32.50'),
31+
('271','TRS665', 'Ipad hoes', '155', '19.00')
32+
}
33+
34+
with open('artikelen.csv', 'w') as file:
35+
file.truncate()
36+
file.write(';'.join(headers))
37+
file.write('\n')
38+
for artikel in artikelen:
39+
file.write(';'.join(artikel))
40+
file.write('\n')
41+
file.close()
42+
43+
with open('artikelen.csv', 'r') as file:
44+
file.readline() # Skip headers
45+
content = file.readlines()
46+
artikelen = []
47+
voorraden = []
48+
for line in content:
49+
nummer, code, naam, voorraad, prijs = line.rstrip().split(';')
50+
artikelen.append((int(nummer), code, naam, int(voorraad), float(prijs)))
51+
voorraden.append(int(voorraad))
52+
# Duurste.
53+
duursteArtikel = sorted(artikelen, key=lambda x: x[4])[-1]
54+
print('Het duurste artikel is {} en die kost '
55+
'{} Euro'.format(duursteArtikel[2], duursteArtikel[4]))
56+
# Kleinste voorraad.
57+
kleinsteVoorraad = sorted(artikelen, key=lambda x: x[3])[0]
58+
print('Er zijn slechts {} exemplaren in voorraad van het product '
59+
'met nummer {}'.format(kleinsteVoorraad[3], kleinsteVoorraad[0]))
60+
# Totaal aantal producten.
61+
aantal = sum(voorraden)
62+
print('In totaal hebben wij {} producten in ons magazijn '
63+
'liggen'.format(aantal))
64+
file.close()

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /