J.....L
J.....L
#naukaprogramowania #python #wyjatki #exceptions mam takie pytanie odnosnie formuly try , except w Pythonie. W programie jest wprowadzona lista obiektów, i teraz program prosi użytkownika o wporwadzenie indeksu obiektu z listy do wypisania. Jesli wprowadzony indeks jest za duzy i nie ma obiektu o takim indeksie w liscie pojazdów, to program powinien wypisać stosowny błąd. Teraz pytanie, jakiego excepta można użyc w tej sytuacji ?

https://pastebin.com/Hh7c8MKa
  • Najlepsze
  • Wszystkie komentarze
GlenPL
@ManfredMacx: wyjątki w pythonie są dosyć lekkie; jeśli wyjątek NIE poleci, to koszt "try" jest mniejszy od kosztu pustego "if" czyli praktycznie zerowy. Wpływ na wydajność jest dopiero kiedy wyjątek jest rzucany prawie zawsze. Dlatego w py wyjątki są używane nawet do flow control (StopIteration) :) w c++ takie coś by było zbesztane na code review
ManfredMacx
@JungleJamPL: IndexError
J.....e
J.....e
@JungleJamPL: IndexError?
Hajduszoboszlo
Hajduszoboszlo
@JungleJamPL: IndexError? Do tego jak masz w kodzie if choice to zamień te if'fy na switcha
moon_bluebird
ManfredMacx
@Hajduszoboszlo: Python nie ma switcha ( ͡° ͜ʖ ͡°)
ManfredMacx
@JungleJamPL: Jest bardziej "pythonic" ( ͡° ͜ʖ ͡°) i zgodne z zasadą "Better to ask Forgiveness Than Permission".
Chociaż wielu programistów innych języków uznaje (nie bez racji), że wyjątki potrafią stać się bardzo ciężkie i starają się ograniczać ich stosowanie. W tej aplikacji spokojnie może zostawić try/except.
J.....L
J.....L
@ManfredMacx: ok, dzięki, łap suba
J.....L
J.....L
@JaTuTylkoSobiePatrze: @ManfredMacx: dziekuje za odpowiedź. Juz próbuję to zaaplikowac do kodu
J.....L
J.....L
@moon_bluebird: @Hajduszoboszlo: @JaTuTylkoSobiePatrze: @ManfredMacx: dziekuję wszystkim komentującym za celną odpowiedź. łapiecie plusa
Hajduszoboszlo
Hajduszoboszlo
@ManfredMacx: niepoważny pseudo język ( ͡° ͜ʖ ͡°) no to słownikami coś na wzór switcha. Słowniki chyba ma!? ( ͡° ͜ʖ ͡°)
Tank1991
@JungleJamPL: zamiast try/ except sprawdź czy długość listy obiektów +1 jest większa lub rowna podanemu indeksowi
J.....L
J.....L
@Tank1991: no tak też można, ale czy try/except nie jest bardziej 'eleganckim' rozwiązaniem ?
blend
blend
  • adult
0
Treść przeznaczona dla osób powyżej 18 roku życia...