Wpis z mikrobloga

Robię podstawowy kurs #python od Cisco i mam kłopot z poprawnym zrozumieniem list. Utknęłam na laboratorium, które uzupełniłam na podstawie analogicznych przykładów z internetu, ale koniec końców nie o to w tym wszystkim chodzi.

def czy_przestepny(rok):
if rok % 4 == 0 and (rok % 100 != 0 or rok % 400 == 0):
return True
False
dane_testowe = [1900, 2000, 2016, 1987]
wyniki_testow = [False, True, True, False]
for i in range(len(dane_testowe)):
r = dane_testowe[i]
print(r,"->",end="")
wynik = czy_przestepny(r)
if wynik == wyniki_testow[i]:
print("OK")
else:
print("Nie powiodło się")

Czy ktoś mi może prostym językiem wytłumaczyć ten fragment?
`for i in range(len(dane_testowe)):
r = dane_testowe[i]
print(r,"->",end="")
wynik = czy_przestepny(r)
if wynik == wyniki_testow[i]:
`

#naukaprogramowania #programowanie
  • 31
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

for i in range(len(danetestowe)): //robimy iterację po liście 'danetestowe'


Dokładniej robisz iterację po elementach tablicy [0, 1, 2, ..., len(danetestowe) -1]
Funkcja len() zwraca ilość elementów w liście
A funkcja range(x) zwraca tablicę elementów od 0 do x - 1, x musi być liczbą całkowitą

for
  • Odpowiedz
@RozowaWkolorachTeczy: zatrzymaj się na chwile przy funkcji czyprzestępny.

Musisz zobaczyć jak myśleć i samej wejść na odpowiednia ścieżkę... ten specyficzny sposób podejścia do problemu. Nie jest to trudne :) każdy musiał się tego nauczyć.

Nie wiem na jakim jesteś etapie wiec nie obrażaj się jeśli będę tłumaczył bardzo
  • Odpowiedz
Pomyśl o tym co się stanie jak rok nie będzie przystępny? Co zwróci taka funkcja? Nic? To też jakaś informacja ale czy nie lepiej zwrócić jawnie że nie jest przystępny?


@mrq: dodałem False i dostaję błąd jak wyżej w poście podałam :(
  • Odpowiedz
@cypherpunkbtc: używam kompilatora wbudowanego w stronę z kursem. Nie używałam spacji tylko tabulatora. Dałam 4 spację i optycznie wyszło na to samo, a jednak przeszło. Dobra walczę dalej, bo wynik i tak jest błędny

1900 2 -> Nie powiodło się

2000 2 -> Nie powiodło się

2016 1 -> Nie powiodło się

1987 11 -> Nie powiodło się
  • Odpowiedz
@RozowaWkolorachTeczy: no dobra wracamy do funkcji czyprzestepny. I tam jedna uwaga za każdym razem kiedy coś z niej zwracasz musisz użyć instrukcji return. To jest sygnał dla interpretera (kompilatora w innych językach) że w tym momencie funkcja musi przerwać swoje działanie i z wrócić wynik do miejsca gdzie funkcja została wywołana.

Popatrz na swoją funkcje czy
przestepny i pomyśl czy byś coś w niej zmieniła? Poniżej podam odpowiedz ale
  • Odpowiedz
@RozowaWkolorachTeczy: Masz sporo zaległości. Omijasz teorie w tym kursie cisco? Nie ładnie, nie ładnie ;) Powinnaś więcej czytać (albo oglądać na yt np.).

Wyobrażam sobie że jak na pierwszy raz z programowaniem to może być ciężkie zrozumienie różnych dziwnych nazw i podstawowych mechanizmów. One wejdą same wcześniej czy później ale musisz o tym czytać albo ktoś musi ci to wyjaśnić. Polecam czytać bo wykop nie jest najlepszym miejscem na tłumaczenie takich
  • Odpowiedz