Skip to content

Commit 0848094

Browse files
authored
Add all exercises of lesson 5.
1 parent c9fc2ff commit 0848094

File tree

7 files changed

+153
-0
lines changed

7 files changed

+153
-0
lines changed

Lesson-05/hardlopers.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Wed 6 Sep 2017, 13:09:00, Yannick
2+
Wed 6 Sep 2017, 13:09:07, Donny

Lesson-05/kaartnummers.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
325255, Jan Jansen
2+
334343, Erik Materus
3+
235434, Ali Ahson
4+
645345, Eva Versteeg
5+
534545, Jan de Wilde
6+
345355, Henk de Vries

Lesson-05/pe5_1.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+
Strings, Text Data, and File I/O (Perkovic – §4.1 t/m 4.3)
6+
7+
Practice Exercise 5.1 (formatting)
8+
Schrijf een functie convert() waar je een temperatuur in graden Celsius (als
9+
parameter van deze functie) kunt omzetten naar graden Fahrenheit. Je kunt de
10+
temperatuur in Fahrenheit berekenen met de Formule T(°F) = T(°C) × 1.8 + 32.
11+
Dus 25 °C = 25 * 1.8 + 32 = 77 °F.
12+
13+
'''
14+
15+
def convert(celsius):
16+
fahrenheit = celsius * 1.8 + 32
17+
return fahrenheit
18+
19+
print(convert(25)) # 77.0
20+
21+
'''
22+
Schrijf nu ook een tweede functie table() waarin je met een for-loop van -30°C
23+
t/m 40°C in stappen van 10 graden de temperatuur in Fahrenheit print. Zorg
24+
middels een geformatteerde output voor dezelfde precisie en uitleining als het
25+
voorbeeld hieronder:
26+
'''
27+
28+
def table():
29+
print('{0:>3}{1:>9}'.format('F', 'C'))
30+
for i in range(-30, 50, 10):
31+
print('{0:>5}{1:>9}'.format(str(convert(i)), str(float(i))))
32+
33+
table()

Lesson-05/pe5_2.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Strings, Text Data, and File I/O (Perkovic – §4.1 t/m 4.3)
6+
7+
Practice Exercise 5.2 (files lezen)
8+
Maak met behulp van PyCharm (of Notepad) het onderstaande bestand
9+
'kaartnummers.txt', dat bestaat uit klantenkaartnummers en namen. Op iedere
10+
regel staan de gegevens van 1 kaart:
11+
12+
325255, Jan Jansen
13+
334343, Erik Materus
14+
235434, Ali Ahson
15+
645345, Eva Versteeg
16+
534545, Jan de Wilde
17+
345355, Henk de Vries
18+
19+
Schrijf een Python programma waarmee je het bestand opent, en splits elke
20+
regel op de komma en zorg dat de uitvoer (op het scherm) is zoals op de
21+
volgende pagina is weergegeven! Vergeet niet het bestand te sluiten!
22+
23+
'''
24+
25+
file = open('kaartnummers.txt', 'r')
26+
content = file.read()
27+
file.close()
28+
29+
for line in content.splitlines():
30+
kaartnummer, klant = line.split(',')
31+
print('{} heeft kaartnummer: {}'.format(klant, kaartnummer))

Lesson-05/pe5_3.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Strings, Text Data, and File I/O (Perkovic – §4.1 t/m 4.3)
6+
7+
Practice Exercise 5.3 (files lezen)
8+
Schrijf een programma dat het bestand kaartnummers.txt opnieuw opent en het
9+
aantal regels en het grootste kaartnummer in het bestand bepaalt. Print
10+
deze gegevens vervolgens uit:
11+
12+
'''
13+
14+
file = open('kaartnummers.txt', 'r')
15+
content = file.read()
16+
file.close()
17+
18+
# Aantal regels.
19+
aantalRegels = len(content.splitlines())
20+
21+
# Grootste kaartnummer in bestand.
22+
i = 0
23+
kaartnummers = []
24+
for index, line in enumerate(content.splitlines()):
25+
kaartnummer, klant = line.split(',')
26+
kaartnummers.append((kaartnummer, index + 1))
27+
grootsteKaartnummer = max(kaartnummers)[0]
28+
opRegel = max(kaartnummers)[1]
29+
30+
print('Deze file telt {} regels.\nHet grootste kaartnummer is: {} en dat staat '
31+
'op regel {}'.format(aantalRegels, grootsteKaartnummer, opRegel))
32+

Lesson-05/pe5_4.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Strings, Text Data, and File I/O (Perkovic – §4.1 t/m 4.3)
6+
7+
Practice Exercise 5.4 (files schrijven)
8+
Bij een marathonwedstrijd worden bij een controlepost ale voorbijkomende
9+
hardlopers genoteerd. De gegevens van elke hardloper worden in het bestand
10+
hardlopers.txt opgeslagen. Schrijf een programma waarmee een tekstbestand
11+
wordt aangemaakt (als het bestand nog niet bestaat) of aangevuld (gebruik de
12+
append-mode) met de gegevens van één hardloper (inlezen van toetsenbord).
13+
14+
Let op: je zult je programma in deze opdracht steeds opnieuw moeten uitvoeren
15+
voor elke nieuwe hardloper. Om dit te voorkomen zou je een while-loop kunnen
16+
gebruiker, maar die behandelen we pas volgende les. Je kunt er natuurlijk voor
17+
kiezen om daar alvast naar te kijken (niet verplicht).
18+
19+
'''
20+
from datetime import datetime
21+
22+
file = open('hardlopers.txt', 'a+')
23+
24+
hardloper = input('Naam hardloper: ')
25+
tijd = datetime.strftime(datetime.now(), '%a%e %b %G, %H:%M:%S')
26+
27+
file.write(tijd + ', ' + hardloper + '\n')
28+
file.close()

Lesson-05/pe5_5.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'''
2+
3+
Introduction To Computing Using Python (Werkboek)
4+
5+
Strings, Text Data, and File I/O (Perkovic – §4.1 t/m 4.3)
6+
7+
Practice Exercise 5.5 (string functions)
8+
Schrijf functie gemiddelde(), die de gebruiker vraagt om een willekeurige zin
9+
in te voeren. De functie berekent vervolgens de gemiddelde lengte van de
10+
woorden in de zin en print dit uit.
11+
12+
'''
13+
14+
zin = input('Voer een willekeurige zin in: ')
15+
16+
woorden = []
17+
for woord in zin.split():
18+
woorden.append(len(woord))
19+
20+
gemiddelde = float(sum(woorden)) / len(woorden)
21+
print(gemiddelde)

0 commit comments

Comments
 (0)