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 4c51043

Browse files
authored
Add all exercises of lesson 8.
1 parent de667ac commit 4c51043

File tree

5 files changed

+189
-0
lines changed

5 files changed

+189
-0
lines changed

‎Lesson-08/fa/pe8_fa.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Final Assignment: NS-kaartautomaat
6+
In deze opdracht maak je een NS-kaartautomaat. Gegeven is het treintraject
7+
Schagen - Maastricht:
8+
9+
Schagen, Heerhugowaard, Alkmaar, Castricum, Zaandam, Amsterdam Sloterdijk,
10+
Amsterdam Centraal, Amsterdam Amstel, Utrecht Centraal, 's-Hertogenbosch,
11+
Eindhoven, Weert, Roermond, Sittard, Maastricht.
12+
13+
De bedoeling is dat je 3 functies schrijft waarmee je 1) het beginstation aan
14+
een reiziger vraagt, 2) het eindstation aan een reiziger vraagt, en 3) de
15+
reisgegevens op het scherm print. Jouw functies zouden als volgt gebruikt
16+
moeten kunnen worden:
17+
18+
stations = ['Schagen', 'Heerhugowaard', ..., 'Sittard', 'Maastricht']
19+
beginstation = inlezen_beginstation(stations)
20+
eindstation = inlezen_eindstation(stations, beginstation)
21+
omroepen_reis(stations, beginstation, eindstation)
22+
23+
Een mogelijke uitvoer van deze code (als de functies zijn geschreve), staat
24+
onderaan de volgende pagina. Op de volgende pagina staat ook een stappenplan
25+
waarmee je dit programma kunt realiseren.
26+
27+
'''
28+
29+
def inlezen_beginstation(stations):
30+
while(True):
31+
station = input('Wat is je beginstation? : ')
32+
if station in stations:
33+
return station
34+
return
35+
36+
def inlezen_eindstation(stations, beginstation):
37+
while(True):
38+
station = input('Wat is je eindstation? : ')
39+
if station in stations:
40+
if(stations.index(station) > stations.index(beginstation)):
41+
return station
42+
print('Deze trein komt niet in {}'.format(station))
43+
return
44+
45+
def omroepen_reis(stations, beginstation, eindstation):
46+
beginstationIndex = stations.index(beginstation)
47+
print('\nHet beginstation {} is het {}e station in het '
48+
'traject.'.format(beginstation, beginstationIndex + 1))
49+
eindstationIndex = stations.index(eindstation)
50+
print('Het eindstation {} is het {}e station in het '
51+
'traject.'.format(eindstation, eindstationIndex + 1))
52+
verschil = abs(beginstationIndex - eindstationIndex)
53+
print('De afstand bedraagt {} station(s).'.format(verschil))
54+
prijs = verschil * 5
55+
print('De prijs van het kaartje is {} euro\n'.format(prijs))
56+
print('Jij stapt in de trein in: {}'.format(beginstation))
57+
for index, station in enumerate(stations):
58+
if index > beginstationIndex and index < eindstationIndex:
59+
print(' - {}'.format(station))
60+
print('Jij stapt uit in {}'.format(eindstation))
61+
62+
stations = ['Schagen', 'Heerhugowaard', 'Alkmaar', 'Castricum', 'Zaandam',
63+
'Amsterdam Sloterdijk', 'Amsterdam Centraal', 'Amsterdam Amstel',
64+
'Utrecht Centraal', '\'-Hertogenbosch', 'Eindhoven', 'Weert',
65+
'Roermond', 'Sittard', 'Maastricht']
66+
beginstation = inlezen_beginstation(stations)
67+
eindstation = inlezen_eindstation(stations, beginstation)
68+
omroepen_reis(stations, beginstation, eindstation)

‎Lesson-08/pe8_1.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Containers (Sets and Chars) (Perkovic – §6.2 t/m 6.4)
6+
7+
Practice Exercise 8.1 (sets)
8+
Hieronder staat een afbeelding van een tweetal trajecten (bruin en groen). Zet
9+
beide trajecten allebei in een set met de namen "bruin" en "groen"...
10+
11+
Print daarna eerst met een set-functie welke plaatsen in beide trajecten worden
12+
aangedaan (de overeenkomst).
13+
14+
Gebruik vervolgens opnieuw een set functie om te printen hoe het traject
15+
"bruin" verschilt van het traject "groen". Je moet dan dus op het scherm zien
16+
welke plaatsen van traject "bruin" ze niet allebei aandoen!
17+
18+
Print ook alle stations op beide trajecten uit. Print elk station maar 1!
19+
Gebruik weer een set-functie!
20+
21+
'''
22+
23+
bruin = {'Boxtel', 'Best', 'Beukenlaan', 'Eindhoven', 'Helmond \'t Hout',
24+
'Helmond', 'Helmond Brouwhuis', 'Deurne'}
25+
26+
groen = {'Boxtel', 'Best', 'Beukenlaan', 'Eindhoven', 'Geldrop', 'Heeze',
27+
'Weert'}
28+
29+
# Komen in beiden voor:
30+
print(bruin.intersection(groen)) # {'Eindhoven', 'Beukenlaan', 'Boxtel', 'Best'}
31+
32+
# Verschilt:
33+
print(bruin.difference(groen)) # {"Helmont 't Hout", 'Helmond', 'Deurne'
34+
# 'Helmond Brouwhuis'}
35+
36+
# Alle stations op beide trajecten:
37+
print(bruin | groen)

‎Lesson-08/pe8_2.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+
Containers (Sets and Chars) (Perkovic – §6.2 t/m 6.4)
6+
7+
Practice Exercise 8.2 (random)
8+
Schrijf functie monopolyworp(), die een het gooien van twee dobbelstenen voor
9+
het spel Monopoly simuleert en afdrukt. Je mag nogmaals gooien als beide stenen
10+
dezelfde waarde hebben. Zorg dat de functie die worpen ook simuleert! Na
11+
driemaal dubbel moet de speler naar de gevangenis!
12+
13+
'''
14+
from random import randint
15+
16+
def monopolyworp():
17+
aantalDezelfdeWaarden = 0
18+
i = 0
19+
while(True):
20+
i += 1
21+
rol1 = randint(1, 6)
22+
rol2 = randint(1, 6)
23+
if(rol1 == rol2):
24+
print('Dezelfde waarden gegooit op rol: {}, '
25+
'namelijk: {}, {}'.format(i, rol1, rol2))
26+
aantalDezelfdeWaarden += 1
27+
else:
28+
aantalDezelfdeWaarden = 0
29+
if(aantalDezelfdeWaarden == 3):
30+
print('Driemaal dezelfde waarden gegooit op rol: {}.'.format(i))
31+
break
32+
33+
monopolyworp()

‎Lesson-08/pe8_3.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Containers (Sets and Chars) (Perkovic – §6.2 t/m 6.4)
6+
7+
Practice Exercise 8.3 (ascii)
8+
Als extra beveliging wil de NS op haar E-ticket nog een unieke code afbeelden.
9+
Er is gekozen voor een hele eenvoudige beveliging: Neem de naam van de
10+
gebruiker+beginstation+eindstation, vertaal elk karakter naar ASCII en maak
11+
die waarde 3 groter. De "a" wordt dus een "b", de "b" wordt een "e", etc.
12+
De "A" wordt een "D", de "W" wordt een "Z", etc. En de spatie "" wordt een "#".
13+
14+
Zorg ervoor dat je code maakt die deze uitvoer maakt op basis van de invoer van
15+
de gebruiker. Schrijf een functie def code(invoerstring): die ieder teken van
16+
invoerstring omzet naar zijn rangordenummer met bibliotheekfunctie ord, en -
17+
na er 3 bij te hebben opgeteled - die int-waarde weer terug vertaalt naar het
18+
bijbehorende ASCII-teken met bibliotheekfunctie chr().
19+
20+
Voorbeeld: code("RutteAlkmaarDen Helder") levert op UxwwhDonpdduGhq#Khoghu
21+
22+
'''
23+
24+
def code(invoerstring):
25+
asciiCode = ''
26+
for karakter in invoerstring:
27+
asciiCode += chr(ord(karakter) + 3)
28+
return asciiCode
29+
30+
gebruiker = input('Gebruikersnaam: ')
31+
32+
beginstation = input('Bij welk station begint de reis: ')
33+
34+
eindstation = input('Bij welk station eindigt de reis: ')
35+
36+
asciiCode = code(gebruiker+beginstation+eindstation)
37+
print(asciiCode) # "RutteAlkmaarDen Helder" = UxwwhDonpdduGhq#Khoghu

‎Lesson-08/pe8_4TODO.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Containers (Sets and Chars) (Perkovic – §6.2 t/m 6.4)
6+
7+
De volgende tabel toont verschillende Python container-types in de eerste
8+
kolom, en eigenschappen die deze types wel of niet hebben in de volgende
9+
kolommen. Maak deze tabel af door in alle cellen JA in te vullen als dat
10+
datatype die eigenschap heeft, of NEE als dat niet zo is. Zoek het antwoord
11+
in het boek of schrijf zelf een programma om te controleren of je antwoord
12+
klopt.
13+
14+
'''

0 commit comments

Comments
(0)

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