Wpis z mikrobloga

@NiePrzystosowanyDoZycia: widzę tagi, niemniej jednak masz tu kilka pomysłów bardzo złych:

("Tak" or "TAK" or "y" or "Y" or "T" or "t")
zawsze zwróci "Tak", więc przyrównywanie wprowadzonej komendy nie ma sensu. może spróbuj:

if flag.lower() in ('tak', 'yes',
  • Odpowiedz
@Strzalka: No i jeżeli to wyrażenie while(plate[0:1].upper() == 'U' or 'H') ma znaczy: kiedy pierwsza litera to u albo pierwsza litera to H to masz 3 błędy w jednej linicje.
1. while => if, while to pętla a Ty traktujesz ją jako instrukcję warunkową.
2. plate[0:1] => plate[0], po co robisz jednoelementowy slice jak możesz wyciągnąć 0 element.
3. plate[0:1].upper() == 'U' or 'H' => to jest zawsze równe true! Przewidując co chcesz
  • Odpowiedz
@Strzalka: Jeszcze odnośnie punktu 2. plate[0:1] zwraca liste! Jednoelementową, ale liste więc jakakolwiek lista jednoelementowa nigdy nie będzie się się równać 'U'! Co gorsza rzuci błędem przy metodzie .upper(), bo listy nie mają takiej metody.

Jaka jest różnica?
If sprawdza warunek i wykonuje kod w swoim ciele tylko raz, natomiast while wykonuje kod do póki warunek jest spełniony wracając do pierwszej linijki pod definicją while

Różnica jest potężna, chyba nie koniecznie znasz/rozumiesz
  • Odpowiedz
@Shadi: ale jak mam while i return to wykona tylko raz. Gdybym zrobil while cos: print() to by robil bez konca dlatego sie tak zdziwilem. Samouk jestem w pracy python do skryptow oracla czasem selenium pomaga. Brakow nie ukrywam, jakosciowo moze byc marnie ale sobie radze.
  • Odpowiedz
@Strzalka: Jasne, twój kod wykona się tylko raz przez to, że jest return, ale używajmy rzeczy zgodnie z przeznaczeniem, jakby to ująć, ręcznikiem się też podetrzesz i efekt będzie ten sam no ale...( ͡° ͜ʖ ͡°)
  • Odpowiedz