0%

In gesprek met je programma · oefening

Zet tekst om in een geheel getal

In de vorige les leerde je een patroon dat je nu opnieuw kunt gebruiken:

function(argument) -> return value

int() is ook een functie. Ze neemt een waarde aan als argument en geeft een nieuw geheel getal terug.

book_count = int(book_count_text)

In deze aanroep:

  • is int de functie.

  • is book_count_text het argument.

  • is het omgezette gehele getal de teruggegeven waarde.

  • slaat de toewijzing die teruggegeven waarde op in book_count.

De pijl hierboven is bedoeld als uitleg, niet als Python-syntaxis.

Zet getypte tekst om in een geheel getal

Als een antwoord een geheel getal voorstelt, gebruik je int() om de string om te zetten in een geheel getal.

book_count_text = input("How many books? ")
book_count = int(book_count_text)

De eerste regel verzamelt tekst. De tweede regel roept int() aan met die tekst en slaat het teruggegeven gehele getal op.

Als de persoon 12 invoert, zijn dit de waarden:

VariabeleWaardeType
book_count_text"12"str
book_count12int

De aanhalingstekens in de tabel maken het verschil zichtbaar. Ze horen niet bij wat de persoon heeft getypt.

Omzetten levert een nieuwe waarde op

int(book_count_text) verandert de oorspronkelijke string niet. De aanroep levert een nieuwe waarde van het type geheel getal op, die dit programma toewijst aan book_count.

Nu kun je ermee rekenen:

after_one_more = book_count + 1

Als book_count gelijk is aan 12, wordt after_one_more gelijk aan 13.

Dit is het volledige voorbeeld met het aantal boeken:

book_count_text = input("How many books? ")
book_count = int(book_count_text)
after_one_more = book_count + 1
print(f"With one more, you would have {after_one_more} books.")

Let op de drie afzonderlijke waarden: de oorspronkelijke string, het omgezette gehele getal en het resultaat van de berekening.

Een kortere vorm

Je kunt de functieaanroepen ook in elkaar tegenkomen:

book_count = int(input("How many books? "))

Python werkt van binnen naar buiten. input() geeft een string terug, waarna int() die string als argument ontvangt en een geheel getal teruggeeft.

Beide vormen werken. Afzonderlijke regels zijn vaak makkelijker te bekijken als je aan het leren of debuggen bent.

De variabele number_text bevat de string "7". Wat drukt dit programma af?

number_text = "7"
number = int(number_text)
print(number + 2)

Maak het leeftijdsprogramma af

Het startprogramma verzamelt een leeftijd als tekst. Twee tijdelijke waarden verhinderen nog dat het de leeftijd voor volgend jaar berekent.

Vervang die tijdelijke waarden, zodat het programma:

  1. de waarde in age_text omzet in een geheel getal met de naam age;

  2. next_age berekent door 1 bij age op te tellen.

Behoud de laatste f-string. Als de persoon 40 invoert, moet de laatste regel zijn:

Next year you will be 41.

Neem de variabelenamen voor boeken niet over in de oefening. Pas hetzelfde functiepatroon toe op de leeftijdsvariabelen die al in de startcode staan.

Gebruik bij Run een geheel getal. Bij Submit geeft Python Land zelf een antwoord met een geheel getal.

Opdracht

Zet age_text met int() om in een geheel getal met de naam age. Bereken daarna next_age door 1 bij age op te tellen. Behoud de laatste f-string die next_age gebruikt.

Als de invoer 40 is, moet de laatste regel zijn:

Next year you will be 41.