Datatype van uitgelezen tekst omzetten in getallen
Alle data voor onze aardbevingen op een bruikbare manier inlezen
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?
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!
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]
Er is nog maar één probleempje met onze code.
Kijk eens goed naar de magnitude als we uitprinten wat voor type de magnitude is
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'>
De computer zegt dat het cijfertje 6 een 'string' is.
Waarom is dit gek?
Of eigenlijk.. waarom is dit nu onhandig?
Wie weet er nog wat string betekent?
De magnitude is:
6
Het type van de magnitude is:
<type 'str'>
Een Integer is een cijfer, iets waar de computer mee kan rekenen, net zoals de cijfers op een rekenmachine.
De magnitude is:
6
Het type van de magnitude is:
<type 'str'>
Een Integer is een cijfer, iets waar de computer mee kan rekenen, net zoals de cijfers op een rekenmachine.
Nu denkt de computer dus dat de 6 een String is, en weet hij nog niet dat wij er graag mee willen rekenen.
De magnitude is:
6
Het type van de magnitude is:
<type 'str'>
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'>
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
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
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
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
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.
https://repl.it/@LisaVanDerPlas/CSC-M3-L2B
Pas daarna de naam aan naar de naam van je opdracht.
Basis:
Extra:
Datatype van uitgelezen tekst omzetten
Alle data voor onze aardbevingen op een bruikbare manier inlezen