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