programmeren
in python
Aardrijkskunde Les 3: Data omzetten in Python
vandaag gaan we leren
-
Datatype van uitgelezen tekst omzetten
-
Alle data voor onze aardbevingen op een bruikbare manier inlezen
Weet jij het nog?
Vorige les hebben we geleerd: hoe we tekst kunnen uitlezen uit een bestand, en hoe we deze tekst netjes kunnen laten ophakken in stukjes.
Wat wordt aangegeven met de magnitude?
Weet jij het nog?
Weet jij het nog?
regel_1 was: '1/2/65,13:44:18,19.246,145.616,Earthquake,131.6,6'
De magnitude is het laatste cijfertje! Waar in excel een streepje staat, staat in python een komma.
We hebben geleerd
hoe we zorgen dat we
precies dat stukje
kunnen inlezen!
demo
WEET JIJ HET NOG?
regel_1 = data[0]
opgehakte_regel_1 = regel_1.split(',')
De waarde van opgehakte_regel_1 is:
['1/2/65', '13:44:18', '19.246', '145.616', 'Earthquake', '131.6', '6']
lijst_van_regel_1 = regel_1.split(',')
#magnitude staat op positie 6 in de lijst(tellen vanaf 0)
magnitude = lijst_van_regel_1[6]
werkblad
"even opfrissen"
Aan de slag
Ons Geheugen is weer opgefrist, nu verder!
Datatype omzetten
Er is nog maar één probleempje met onze code. Kijk eens goed naar de magnitude als we uitprinten wat voor type de magnitude is
demo
Datatype omzetten
De computer zegt dat het cijfertje 6 een 'string' is. Waarom is dit gek? Of eigenlijk.. waarom is dit nu onhandig?
De magnitude is:
6
Het type van de magnitude is:
<type 'str'>
Datatype omzetten
De computer zegt dat het cijfertje 6 een 'string' is. Waarom is dit gek? Of eigenlijk.. waarom is dit nu onhandig?
Even opfrissen: een String is een reeks karakters. Het woord 'magnitude' is bijvoorbeeld voor de computer een reeks van meerdere karakters achter elkaar.
De magnitude is:
6
Het type van de magnitude is:
<type 'str'>
Datatype omzetten
Een Integer is een cijfer, iets waar de computer mee kan rekenen, net zoals de cijfers op een rekenmachine.
Het type van de magnitude is:
<type 'str'>
De magnitude is:
6
Het type van de magnitude is:
<type 'str'>
Datatype omzetten
Een Integer is een cijfer, iets waar de computer mee kan rekenen, net zoals de cijfers op een rekenmachine.
De computer kan 6 ook als een karakter zien, op dit moment denkt de computer dus dat het een String is, en weet hij nog niet dat wij bedoelen dat het een Integer is, zodat we de 6 ook echt als een getal kunnen gebruiken!
Het type van de magnitude is:
<type 'str'>
De magnitude is:
6
Het type van de magnitude is:
<type 'str'>
Datatype omzetten
Als wij nu willen gaan rekenen met de magnitude, gebeurt er namelijk iets geks...
('De magnitude is: ', '6')
De magnitude is:
6
Het type van de magnitude is:
<type 'str'>
demo
Datatype omzetten
Python geeft een 'TypeError'. Hij geeft aan dat hij niet weet wat hij moet doen als je een Integer (de 5) bij een String wilt optellen (de '6')
We moeten van de String '6' dus een Integer 6 gaan maken!
De tekst moet omgezet worden naar een getal
TypeError: cannot concatenate 'str' and 'int' objects
demo
Datatype omzetten
De functie float() zet een String om naar een getal, mits er in die String cijfers staan!
Als je 5 bij de magnitude van 6 optelt krijg je
11.0
Datatype omzetten
De functie float() zet een String om naar een getal, mits er in die String cijfers staan!
Float betekent kommagetal in het Pythons. Misschien dacht je wel aan het gebruiken van int().
Als je 5 bij de magnitude van 6 optelt krijg je
11.0
Datatype omzetten
De functie float() zet een String om naar een getal, mits er in die String cijfers staan!
Float betekent kommagetal in het Pythons. Misschien dacht je wel aan het gebruiken van int().
Dat klopt wel, maar dan zou het alleen werken voor hele getallen, en sommige magnitudes hebben komma getallen! Zoals 5.8, dus daarom werken wij voor de zekerheid met float.
Dan gaat het altijd goed!
Als je 5 bij de magnitude van 6 optelt krijg je
11.0
werkblad "Van een String naar een Float"
Aan de slag
Weer even klassikaal
zodadelijk op de computer...
Repl Forken
We hebben weer wat bijzondere code nodig om onze opdrachten mee te maken. Deze staat voor je klaar op:
https://repl.it/@LisaVanDerPlas/CSC-M3-L2B
Klik op fork om deze code te kopieren naar je eigen project.
Repl Forken
https://repl.it/@LisaVanDerPlas/CSC-M3-L2B
Pas daarna de naam aan naar de naam van je opdracht.
opdrachten deel b
Basis:
- Specifieke data inlezen in Python
- De magnitude van de de eerste regel inlezen en het datatype omzetten
- De latitude, longtitude en magnitude datatypes omzetten en uitprinten
- Rekenen met de ingelezen waardes
Extra:
- Nieuwsbericht maken met je data
vandaag hebben we geleerd
afsluiting
-
Datatype van uitgelezen tekst omzetten
-
Alle data voor onze aardbevingen op een bruikbare manier inlezen
CSC-Mod-3-Les-3a
By Lisa van der Plas
CSC-Mod-3-Les-3a
Computer Science Certificate Module Aardrijkskunde, les 3a
- 363