Magazine

#Klooienmetcomputers

Arnout van Kempen over rommelen in een digitale wereld.

Dit artikel is verschenen in Accountant nr. 4, 2021

Bekijk alle artikelen uit dit nummer

» Download dit artikel (pdf)
» Download het hele nummer (pdf)

Toen ik de vorige keer een programmeeropdracht gaf, had ik die zelf nog niet uitgevoerd. Wie aan het worstelen is gegaan, zal snel een bijzondere eigenschap van Python hebben ontdekt: het type van variabelen wordt niet vooraf gedeclareerd, waardoor je vrij makkelijk over het hoofd ziet dat een type fout is.

En de input() functie die we de vorige keer zagen, levert standaard een string. Het navolgende
programma bevat daardoor geen fouten op regel-niveau en toch gaat het fout:

a=input()
b=input()
print(a/b)

De oplossing is simpel, als je bedenkt dat input geen commando is, maar een functie. Functies kan je samenvoegen in de vorm f(g(x)). Eerst wordt g uitgevoerd en dan f op de uitkomst van g. Als je dus een getal wilt invoeren, waarmee kan worden gerekend, moet je van de input() nog een integer maken, in Python met de functie int().

Een mogelijke uitwerking van de programmeeropgave van vorige keer is daarmee:

# programma voor het vereenvoudigen van een breuk

teller=int(input(“Teller? “))
noemer=int(input(“Noemer? “))
rest=teller%noemer
aliquote=teller//noemer

if rest == 0:
  print(aliquote)
else:
  print(aliquote, rest, “/“, noemer)

De regel met # aan het begin is niet nodig, maar het is wel handig om toelichtingen toe te voegen waarmee op een later moment nog valt te begrijpen wat je precies gedaan hebt.

Voor degenen die zelf op zoek zijn gegaan en de int()-functie hebben gevonden: gefeliciteerd, dit is wat mij betreft nou klooien met computers. Het gaat fout en je worstelt tot je het oplost.

En voor degenen die zich door mij op het verkeerde spoor voelen gezet: klopt, maar weet dat ik zelf ook op het verkeerde spoor zat. Zoals aan het begin van deze serie aangegeven: ik ben zelf ook Python aan het leren en doe dat ook door klooien, tot het lukt.

Arnout van Kempen is werkzaam als zelfstandig compliance officer voor (grotere) mkb-kantoren en docent voor SRA, NBA en Saxion Hogeschool. Daarnaast is hij lid van de signaleringsraad van de NBA, van het platform niet-oob-kantoren en is hij diaken van het bisdom ‘s-Hertogenbosch.

Gerelateerd

reacties

Reageer op dit artikel

Spelregels debat

    Aanmelden nieuwsbrief

    Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

    Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.