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 b809c7b

Browse files
authored
Add all exercises of lesson 6.
1 parent 0848094 commit b809c7b

File tree

7 files changed

+261
-0
lines changed

7 files changed

+261
-0
lines changed

‎Lesson-06/fa/kluizen.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
1,3199
2+
2,5520
3+
3,3551
4+
5,7827
5+
6,6717
6+
7,3525
7+
4,2741

‎Lesson-06/fa/pe6_fa.py

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Final Assignment: Bagagekluizen
6+
7+
Op veel stations kun je een bagagekluis huren. We willen graag dat jij de
8+
software realiseert voor deze kluis. Er zijn door de beheerders de volgende
9+
randvoorwaarden gesteld aan het systeem:
10+
11+
- Er zijn in totaal 12 kluizen
12+
- De kluis moet beveiligd zijn met een 4-cijferig wachtwoord.
13+
- Als de stroom uitvalt mag de data niet verloren gaan en daarom moet je
14+
een bestand gebruiken voor de opslag van gegevens zoals kluisnummers en
15+
wachtwoorden.
16+
17+
De gebruiker moet het onderstaande menu te zien krijgen:
18+
19+
1: Ik wil een nieuwe kluis
20+
2: Ik wil mijn kluis openen
21+
3: Ik geef mijn kluis terug
22+
4: Ik wil weten hoeveel kluizen nog vrij zijn
23+
24+
Als je kiest voor "1: Ik wil een nieuwe kluis", dan krijg de gebruiker een
25+
willekeurige code van 4 cijfers als er nog een kluis beschikbaar is. Deze code
26+
hoort bij een van de twaalf kluizen. Sla het nummer van de kluis samen met de
27+
4 cijferige code op 1 regel op in een tekstbestand en geef de code en het
28+
kluisnummer terug aan de gebruiker op het scherm.
29+
30+
Als je kiest voor "2: Ik wil mijn kluis openen", dan vraag je de gebruiker om
31+
zijn/haar code en als deze klopt dan toon je het nummer van de kluis dat
32+
daarbij hoort. Het zou leuk zijn als we de kluis ook echt konden openen, maar
33+
dat gaat lastig zonder een echte set bagagekluizen natuurlijk...
34+
35+
Als je kiest voor "3: Ik geef mijn kluis terug", dan zou je een regel uit het
36+
tekstbestand moeten halen, maar dat is ingewikkeld en daarom is deze menukeuze
37+
optioneel!
38+
39+
Als je kiest voor "4: Ik wil weten hoeveel kluizen nog vrij zijn", dan geef je
40+
als uitvoer het aantal kluizen dat nog beschikbaar is.
41+
42+
'''
43+
44+
from random import randint
45+
46+
file = open('kluizen.txt', 'a+')
47+
file.seek(0)
48+
file.close()
49+
50+
def nieuwe_kluis():
51+
file = open('kluizen.txt', 'r+')
52+
kluizen = []
53+
for kluis in file.readlines():
54+
kluizen.append(int(kluis.split(',')[0]))
55+
if(len(kluizen) < 12):
56+
for i in range(0, 12):
57+
if i + 1 not in kluizen:
58+
code = str(randint(1000, 9999))
59+
file.write(str(i + 1) + ',' + code + '\n')
60+
print('Kluisnummer {} met code {} '
61+
'is toegewezen.\n'.format(str(i + 1), code))
62+
file.seek(0)
63+
break
64+
file.close()
65+
66+
def kluis_openen():
67+
file = open('kluizen.txt', 'r')
68+
codeInput = int(input('Voer 4-cijferige code in: '))
69+
kluizen = []
70+
for kluis in file.readlines():
71+
nummer, code = kluis.split(',')
72+
kluizen.append([int(nummer), int(code.rstrip())])
73+
for kluis in kluizen:
74+
if codeInput == kluis[1]:
75+
print('Kluis met nummer {} is geopend.\n'.format(kluis[0]))
76+
return
77+
print('Foutmelding! Er bestaat geen kluis met deze code.\n')
78+
file.close()
79+
80+
def kluis_teruggeven():
81+
file = open('kluizen.txt', "r+")
82+
codeInput = int(input('Voer 4-cijferige code in: '))
83+
kluizen = []
84+
for kluis in file.readlines():
85+
nummer, code = kluis.split(',')
86+
kluizen.append([int(nummer), int(code.rstrip())])
87+
nieuweRegels = []
88+
for kluis in kluizen:
89+
if codeInput != kluis[1]:
90+
nieuweRegels.append('{},{}\n'.format(kluis[0], kluis[1]))
91+
file.seek(0)
92+
file.truncate()
93+
file.writelines(nieuweRegels)
94+
file.close()
95+
96+
def aantal_kluizen_vrij():
97+
file = open('kluizen.txt', 'r')
98+
file.seek(0)
99+
aantalVrij = 12 - len(file.readlines())
100+
print('Er zijn {} kluisjes vrij.\n'.format(aantalVrij))
101+
file.close()
102+
103+
isBezig = True
104+
105+
while(isBezig):
106+
print('1: Ik wil een nieuwe kluis\n2: Ik wil mijn kluis openen\n'
107+
'3: Ik geef mijn kluis terug\n4: Ik wil weten hoeveel kluizen nog '
108+
'vrij zijn\n5: Ik wil stoppen\n''')
109+
110+
menukeuze = int(input('Kies een menu optie: '))
111+
112+
if menukeuze == 1:
113+
nieuwe_kluis()
114+
elif menukeuze == 2:
115+
kluis_openen()
116+
elif menukeuze == 3:
117+
kluis_teruggeven()
118+
elif menukeuze == 4:
119+
aantal_kluizen_vrij()
120+
else:
121+
isBezig = False

‎Lesson-06/pe6_1.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Execution Control Structures (Perkovic – §5.1 t/m 5.3)
6+
7+
Practice Exercise 6.1 (decision control)
8+
Schrijf een functie seizoen(maand) die als parameter/maandnummer meekrijgt. Het
9+
functie-resultaat is het seizoen die bij die maand hoort. Nummers 3 t/m 5
10+
horen bij lente, 9 t/m 11 'herfst' etc.
11+
12+
'''
13+
14+
def seizoen(maand):
15+
if maand in (3, 4, 5):
16+
return 'lente'
17+
elif maand in (6, 7, 8):
18+
return 'zomer'
19+
elif maand in (9, 10, 11):
20+
return 'herfst'
21+
elif maand in (1, 2, 12):
22+
return 'winter'
23+
24+
print(seizoen(10))

‎Lesson-06/pe6_2.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Execution Control Structures (Perkovic – §5.1 t/m 5.3)
6+
7+
Practice Exercise 6.2 (lists)
8+
Schrijf een nieuw programma waarin een list met minimaal 10 strings wordt
9+
ingelezen. Het programma plaatst alle vier-letter strings uit de ingelezen
10+
list in een nieuw list en drukt deze af. Inlezen van een lijst kan met
11+
eval(input("Geef lijst met minimaal 10 string: "))
12+
13+
'''
14+
15+
lst = eval(input("Geef lijst met minimaal 10 string: "))
16+
# ['boter', 'kaas', 'bier', 'pizza', 'thee', 'drop, 'koek', 'cola', 'boterham',
17+
# 'stamppot']
18+
19+
nieuweLst = []
20+
for string in lst:
21+
if len(string) == 4:
22+
nieuweLst.append(string)
23+
24+
print(nieuweLst) # ['kaas', 'bier', 'thee', 'drop', 'koek', 'cola']

‎Lesson-06/pe6_3.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Execution Control Structures (Perkovic – §5.1 t/m 5.3)
6+
7+
Practice Exercise 6.3 (lists)
8+
Gegeven is variable invoer = "5-9-7-1-7-8-3-2-4-8-7-9". Schrijf een nieuw
9+
programma waarin je deze variabele splitst in een lijst van getallen en print
10+
de gesorteerde lijst. Bepaal en print na het opsplitsen de grootste waarde,
11+
kleinste waarde, aantal getallen, de som en het gemiddelde!
12+
13+
'''
14+
15+
invoer = "5-9-7-1-7-8-3-2-4-8-7-9"
16+
17+
getallen = list(map(int, invoer.split('-'))) # Zet strings gelijk om naar ints.
18+
getallen.sort()
19+
20+
grootste = max(getallen)
21+
22+
kleinste = min(getallen)
23+
24+
aantal = len(getallen)
25+
26+
som = sum(getallen)
27+
28+
gemiddelde = sum(getallen) / len(getallen)
29+
30+
print('''Gesoorteerde lijst van ints: {}
31+
Grootste getal: {} en Kleinste getal: {}
32+
Aantal getallen: {} en Som van de getallen: {}
33+
Gemiddelde: {}
34+
'''.format(getallen, grootste, kleinste, aantal, som, gemiddelde))

‎Lesson-06/pe6_4.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+
Execution Control Structures (Perkovic – §5.1 t/m 5.3)
6+
7+
Practice Exercise 6.4 (two-dimensional-lists)
8+
Van elke student worden 3 cijfers bijgehouden. In de lijst studentencijfers
9+
staan de gegevens van 4 studenten. Schrijf code voor twee functies die het
10+
gemiddelde cijfer voor iedere student en het gemiddelde van alle studenten
11+
berekent. De eerste functie heeft als return-waarde een één dimensionale-lijst
12+
met alle gemiddelden per student, en de tweede functie heeft als return-waarde
13+
een int-getal met het gemiddelde van alle studenten! Maak het onderstaande
14+
programma af:
15+
16+
'''
17+
18+
studentencijfers = [[95, 92, 86], [66, 75, 54], [89, 72, 100], [34, 0 ,0]]
19+
20+
def gemiddelde_per_student(studentencijfers):
21+
antw = []
22+
for cijfers in studentencijfers:
23+
antw.append(round(sum(cijfers) / len(cijfers)))
24+
return antw
25+
26+
def gemiddelde_van_alle_studenten(studentencijfers):
27+
gemiddelde_per_student = []
28+
for cijfers in studentencijfers:
29+
gemiddelde_per_student.append(round(sum(cijfers) / len(cijfers)))
30+
# Na maken van de lijst met gemiddelden per student, kun je opnieuw
31+
# hier de gemiddelden van uitrekenen.
32+
antw = round(sum(gemiddelde_per_student) / len(gemiddelde_per_student))
33+
return antw
34+
35+
print(gemiddelde_per_student(studentencijfers))
36+
print(gemiddelde_van_alle_studenten(studentencijfers))

‎Lesson-06/pe6_5.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Execution Control Structures (Perkovic – §5.1 t/m 5.3)
6+
7+
Practice Exercise 6.5 (nested loop)
8+
Schrijf een programma met twee for-loops in elkaar (nested) om de tafels van
9+
1 t/m 10 uit te printen.
10+
11+
'''
12+
13+
for i in range(1, 11):
14+
for j in range(1,11):
15+
print(j * i)

0 commit comments

Comments
(0)

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