Sprint 1 · First Flight  ·  US2: Variabelen, input & f-strings

Als developer die net met Python begint, wil ik weten welke basistypes er zijn, hoe ik invoer inlees en hoe ik tekst opmaak met f-strings, zodat ik gegevens kan verwerken zonder dat mijn berekeningen stuklopen op het verkeerde type.

Taak 2: input() geeft altijd tekst

Je vraagt de gebruiker om een getal. Hij typt netjes 50. Je rekent ermee en je script crasht. Want wat je terugkreeg was geen getal — het was tekst. Altijd. Ook als er cijfers in staan.

50 is niet 50

usage = input("Disk usage percentage: ")
print(usage + 10)

# De gebruiker typt: 50
# TypeError: can only concatenate str (not "int") to str

De gebruiker typte 50. Maar input() geeft altijd een string terug. Je hebt dus "50", niet 50.

str"50"  ← wat input() teruggeeft
int50   ← wat jij dacht te krijgen

De fix: casten

Je zet de tekst zelf om naar een getal. Dat heet casten. Je gebruikt daarvoor int():

usage = int(input("Disk usage percentage: "))
print(usage + 10)       # 60 — nu klopt het

De drie functies die je nodig hebt:

FunctieMaakt er eenVoorbeeld
int()heel getal vanint("50") → 50
float()kommagetal vanfloat("1.5") → 1.5
str()tekst vanstr(50) → "50"
Casten kan ook mislukken
int("50") werkt. int("fifty") geeft een ValueError. Python kan van een wóórd geen getal maken. In sprint 4 leer je hoe je dat netjes opvangt.
>_ Oefenomgeving: Casten

Test hoe casten werkt. En waar het misgaat.

  1. "50" + 10 — de crash die je in je script kreeg.
  2. int("50") + 10 — nu met een cast.
  3. type(int("50")) — welk type is het nu?
  4. int("fifty") — een woord casten.
  5. int(1.9) — rondt dit af?
  6. float("1,5") — met een komma.
Python 3.11 REPL Simulator. Typ je commando en druk op Enter.
>>> 

Jouw Opdracht: De schijfruimte-calculator

Schrijf een script dat de gebruiker twee dingen vraagt:

  • Hoeveel procent van de schijf nog vrij is (een heel getal).
  • Hoeveel procent één uur logbestanden kost (een kommagetal, bijvoorbeeld 6.5).

Reken daarna uit hoeveel uur er nog gelogd kan worden. Print het antwoord.

Bouw het script eerst zonder casten. Laat het crashen. Lees de foutmelding. Los het daarna op.

Acceptatiecriteria

  • Je script vraagt twee waardes met input().
  • Je cast de eerste naar int en de tweede naar float.
  • Het script rekent het aantal uren uit en print dat.
  • De regel die eerst crashte staat er nog, uitgeschakeld met een #. De foutmelding staat er als commentaar bij.
  • Je print van beide waardes het type met type(), zodat je kunt bewijzen dat de cast gelukt is.
  • Alle namen zijn Engels en staan in snake_case.