Sprint 1 Β· First Flight  Β·  US4: Sensordata & assert

Als piloot, wil ik dat mijn script de sensorwaarden van de drone uitleest, controleert en de verbinding daarna netjes sluit, zodat ik weet dat de waarden kloppen voordat ik erop vertrouw.

Taak 1: Wat geeft get_battery() terug?

Je roept get_battery() aan en ziet een getal. Maar welk type getal? Dat maakt uit als je er later mee rekent. type() geeft antwoord.

type() β€” snel controleren wat je hebt

Stop elke waarde in type() en Python vertelt je het type:

battery = tello.get_battery()
print(type(battery))        # <class 'int'>

height = tello.get_height()
print(type(height))         # <class 'int'>

Nu je weet dat het een int is, kun je het goed gebruiken:

print(f"Batterij: {battery}%")           # f-string: werkt altijd
print("Batterij: " + str(battery) + "%") # str() converteert

Tello API β€” deze drie sensoren

Tello API Sprint 1 Β· US4
MethodeWat het doetGeeft terug
tello.get_battery() Leest het batterijpercentage van de drone. int (0–100)
tello.get_height() Leest de vlieghoogte in centimeters. int (cm)
tello.get_temperature() Leest de temperatuur van de drone in graden Celsius. int (Β°C)

Je rekent, maar Python klaagt

Je schrijft dit:

battery = tello.get_battery()
print("Batterij: " + battery + "%")    # leek logisch

En je krijgt:

TypeError: can only concatenate str (not "int") to str

get_battery() geeft een int terug, niet een string. Je kunt een getal niet samenvoegen met tekst zonder het eerst om te zetten. Had je dat vooraf geweten, dan had je direct str(battery) of een f-string gebruikt.

De les: controleer altijd het type van data die je van buiten krijgt. Sensordata is geen uitzondering.

>>> Oefenomgeving: Python REPL Simulator

De drone is verbonden. Typ de commando's en kijk welk type elke sensor teruggeeft.

  1. battery = tello.get_battery() β€” sla de waarde op.
  2. type(battery) β€” welk type is het?
  3. print("Batterij: " + battery + "%") β€” probeer dit. Wat crasht?
  4. print(f"Batterij: {battery}%") β€” de goede manier.
  5. Herhaal met tello.get_height() en tello.get_temperature().
Python 3.11 REPL Simulator Β· drone verbonden Β· typ een commando en druk op Enter.
>>> 

Jouw opdracht: sensordata inspecteren

Schrijf een script dat na het verbinden de batterij, hoogte en temperatuur opvraagt. Voor elke waarde: druk het type af met type() Γ©n toon de waarde in een f-string.

Acceptatiecriteria

  • Het script vraagt get_battery(), get_height() en get_temperature() op.
  • Voor elke waarde print je het type met type().
  • De output gebruikt f-strings, geen +-concatenatie.
  • Je kunt uitleggen waarom "Batterij: " + battery crasht maar f"Batterij: {battery}" niet.