Modulelessen (4/4)
Type conversies
Python is sterk getypeerd: het voegt nooit een string toe aan een getal, tenzij jij dat doet
zeg het maar. Om van het ene type naar het andere te gaan, gebruik je de constructorfuncties:
int(), float(), str(), bool(), list(), tuple(), set().
int("42") # 42
float("3.14") # 3.14
str(42) # '42'
list("abc") # ['a', 'b', 'c']
tuple([1, 2]) # (1, 2)
set([1, 1, 2]) # {1, 2}int() met tekenreeksen
int("42") werkt; int("42.5") verhoogt ValueError. Voor decimale tekenreeksen geldt
ga eerst door float: int(float("42.5")) → 42 (kapt af, niet
rond).
int("42") # 42
int(" 42 ") # 42 (strip automatico degli spazi)
int("42.5") # ValueError
int(float("42.5")) # 42
int("ff", 16) # 255 (base esplicita)float() met tekenreeksen
Accepteert decimale en wetenschappelijke notatie.
float("3.14") # 3.14
float("1e3") # 1000.0
float("inf") # inf
float("nan") # nanstr(): de "vriendelijke" conversie
str(x) roept intern x.__str__() aan om de "menselijke" weergave te krijgen.
Er is ook repr(x) voor de "debugger"-weergave, vaak meer
expliciet (met aanhalingstekens voor tekenreeksen, enz.).
str(3.14) # '3.14'
str([1, 2]) # '[1, 2]'
str(True) # 'True'bool() en waarheidsgetrouwheid
bool(x) retourneert False alleen voor de valse waarden van Python:
False,None- nul cijfers:
0,0.0 - lege containers:
"",[],(),{},set()
Al het andere is waarheid.
bool(0) # False
bool("") # False
bool([]) # False
bool("0") # True ! (stringa non vuota)
bool([0]) # True ! (lista non vuota, anche se contiene 0)Patroon: veilige invoerparsering
testo = input("età: ")
try:
eta = int(testo)
except ValueError:
print(f"non è un numero: {testo!r}")
eta = NoneBooleaanse evaluatie (waarheid)
In Python heeft elk object een impliciete waarheidswaarde. U kunt de Booleaanse waarde van elk object controleren met behulp van de functie bool(...). Lege verzamelingen (bijvoorbeeld "", [], {}, set()) en nulwaarden (0, 0.0) resulteren altijd in False. Alle andere objecten resulteren in True.
Probeer het
Gegeven `a = '10'` en `b = '32'` (strings), berekent u `total` als hun INTEGER som. Evalueer 'totaal'.
Toon hint
int(a) + int(b), anders voeg je de strings samen.
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Gegeven de lijst `values = ['', 'x', 0, Geen, 1, []]`, bouw `truthy` met ALLEEN de waarheidselementen met behulp van bool(). Evalueer 'waarheid'.
Toon hint
Lijstbegrip met filter bool(v) (of gewoon 'if v').
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
Gegeven de lijst met strings \`string_numbers = ["1", "2", "3"]\`, converteer je elk element naar een geheel getal met behulp van \`int()\` en tel je ze bij elkaar op om de waarde \`6\` te verkrijgen. Sla de som op in \`sum_val\` en evalueer deze.
Toon hint
Toegang tot elementen per index, b.v. int(string_numbers[0]), en tel ze op.
Oplossing beschikbaar na 3 pogingen