Casting

Casting is het omzetten van een variabele van het ene type naar een ander type.

Impliciet (type coercion):

x = 5    # int
y = 2.5  # float
result = x + y  # x wordt automatisch omgezet naar een float
print(result)  # Output: 7.5

expliciet (type conversion):

x = "10"
y = int(x)  # Zet string om naar een int
print(y + 5)  # Output: 15

Loops

Sentinel values

https://kuleuven-my.sharepoint.com/:p:/r/personal/tom_holvoet_kuleuven_be/_layouts/15/Doc.aspx?sourcedoc={D7827E26-2D6B-4130-8115-8C80AE06DB78}&file=BvP+2+-+Chapter+4+-+While.pptx&action=edit&mobileredirect=true (BvP 2 chapter 4, slide 12)

Een sentinel value is een speciale waarde die wordt gebruikt om een einde, grens of specifieke toestand in een programma aan te geven. Het wordt vaak gebruikt in lussen of logica om te detecteren wanneer een proces moet stoppen

# Sentinel value om de invoer te stoppen
sentinel = "STOP"
user_input = ""

while user_input != sentinel:
    user_input = input("Geef een waarde (of type 'STOP' om te stoppen): ")
    if user_input != sentinel:
        print(f"Je hebt ingevoerd: {user_input}")
print("Programma gestopt.")
# Sentinel om het einde van de lijst te markeren
data = [1, 2, 3, -1]  # -1 is hier de sentinel value
sentinel = -1

for value in data:
    if value == sentinel:
        break # let op dat je geen break-statements gebruikt tijdens het examen dit gaat tegen de stijlgids
    print(value)

In C wordt de null-byte ('\\0') standaard gebruikt als een sentinel om het einde van een string aan te geven. Dit is hoe C weet waar de string stopt in het geheugen, omdat C-strings niet expliciet een lengte opslaan

Functions

https://kuleuven-my.sharepoint.com/:p:/r/personal/tom_holvoet_kuleuven_be/_layouts/15/Doc.aspx?sourcedoc={0EE97237-FBDE-4474-95CF-6EDD645DF5C3}&file=BvP+4+-+Chapter+5+-+Functions.pptx&action=edit&mobileredirect=true (BvP 4 chapter 5)

Local variables

<aside> 📖

Variables that only exist during the execution of a function

def cube_volume(length):
	volume = length**3  # volume is een local variable
	return volume

</aside>

Global variables

Global variables mogen niet gebruikt worden volgens de stijlgids (enkel voor constanten). Functies kunnen globale waarden lezen maar niet wijzigen zonder het global-keyword te gebruiken.

# gebruik van globale variabelen is niet toegestaan op het examen
def test():
  global my_var
  my_var = 20

my_var = 15
print(my_var)  # outputs 15
test()
print(my_var)  # outputs 20

Default parameter values

def cube_volume(side_length = 1):
  volume = side_length ** 3
  return volume

print(cube_volume(3))  # outputs 27
print(cube_volume())  # outputs 1

Stepwise refinement