skierowanie robota do naładowania - Praca domowa-

0

mam problem z zadaniem , proszę o pomoc
Zadanie:

Moduł delivery zawiera funkcję charge(), która kieruje robota o numerze wskazanym jako argument funkcji, do stacji ładowania baterii.

Korzystając z poznanych wcześniej funkcji get() i robots(), uzupełnij funkcję chargeFloat(), która skieruje do stacji ładowania wszystkie roboty, w których wartość naładowania baterii jest mniejsza niż 25%. Wartość naładowania baterii danego robota w procentach odczytasz poprzez klucz 'batteryCharge' ze słownika będącego wartością dla klucza 'data' obiektu JSON.

2

jakie jest pytanie?

0

Ale z czym masz problem konkretnie / co już jest? Tak bez kontekstu to lepiej ChatGPT zapytać.

uzupełnij funkcję chargeFloat(), która skieruje do stacji ładowania wszystkie roboty, w których wartość naładowania baterii jest mniejsza niż 25%

czyli potrzebujesz trzymać gdzieś dane o robotach (np. zrobić listę robotów), a potem znaleźć element w tej liście https://stackoverflow.com/questions/9542738/python-find-in-list

0

robię to tak:

import delivery

def chargeFloat():
   robots_list = delivery.robots()
   for robot in robots_list:
       if robot['data']['batteryCharge'] < 25:
           delivery.charge(robot['robotId'])

lecz wyskakuje taki błąd:

Traceback (most recent call last):
  File "<string>", line 9, in <module>
  File "/home/LNU_users/chargeFloat.py", line 9, in chargeFloat
    if robot['data']['batteryCharge'] < 25:
TypeError: 'int' object is not subscriptable

Jak to obejść?

4

jak to obejść

nie trzeba obejść, tylko trzeba dojść źródła

if robot['data']['batteryCharge'] < 25:
TypeError: 'int' object is not subscriptable

ten błąd ci już mówi, że albo robot jest intem albo robot['data'] jest intem.

więc robisz najpierw

print(robot)

żeby zobaczyć, czy to int
a jeśli nie, to robisz

print(robot['data'])

żeby zobaczyć, czy to int

załóżmy, że robot okazał się intem, to patrzysz skąd to przyszło. Ponieważ masz w kodzie coś takiego

for robot in robots_list:

to idziesz dalej i patrzysz, co masz w robots_list:

print(robots_list)

I dochodzisz po nitce do kłębka.
Przy czym być może problem jest gdzie indziej, niż moje przewidywania teraz, ale tak czy siak, trzeba mieć jakąś metodę szukania błędów, bo jak będziesz mieć metodę, to dojdziesz do rozwiązania w ten czy inny sposób.

1 użytkowników online, w tym zalogowanych: 0, gości: 1