• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pętla For. Przykład praktycznego zastosowania.

Object Storage Arubacloud
0 głosów
465 wizyt
pytanie zadane 31 maja 2022 w Python przez LLVL Nowicjusz (160 p.)
Witam.
Mam problem ze zrozumieniem do jakiego konkretnego przypadku może zostać wykorzystana pętla for. Znam jej budowę i składnię. Nie wiem gdzie praktycznie można by ją zastosować. Jestem początkującym programistą. Może mi to ktoś zobrazować? Nie tekst pętli, tylko już rezultat.

Byćmoże uda się jakieś zastosowanie w przemyśle i języku SCL. Będzie mi łatwiej zrozumieć, ale nie jest to konieczne.

 

Dzięki i pozdrawiam
komentarz 31 maja 2022 przez VBService Ekspert (252,740 p.)

Mogą być przykłady zastosowania w elektronice np. Programowanie modułów Arduino?

komentarz 31 maja 2022 przez LLVL Nowicjusz (160 p.)
Jasne, chętnie zobaczę. Najlepiej już bez pisania samej funkcji tylko tłumacząc konkretne przykłady.
komentarz 31 maja 2022 przez VBService Ekspert (252,740 p.)
edycja 31 maja 2022 przez VBService

Przykład, przypisanie trybu pracy do poszczególnych pin-ów na płytce

const byte LEDS_PIN[5] = { 13, 12, 11, 10, 9 };

for (byte led: LEDS_PIN)
  pinMode(led, OUTPUT);

 

https://wokwi.com/projects/328789175335649875

2 odpowiedzi

+1 głos
odpowiedź 31 maja 2022 przez adrian17 Ekspert (344,860 p.)

Nie znam zupełnie SCL, zadałeś pytanie w kategorii Python więc:

Chcesz coś zrobić równo 15 razy:

for i in range(15):
    # do stuff here

Chcesz coś zrobić liczbę razy zależną od zmiennej:

n = costam

for i in range(n):
    # do stuff here

Chcesz coś zrobić na każdym znaku tekstu:

tekst = "adsf"
for c in tekst:
    print(c)

Może na każdym elemencie listy:

lista = [5, 10, 1]
for element in lista:
    print(element)

Może na każdej linii tekstu - `splitlines()` zwraca listę więc:

tekst = "linia \n linia \n linia"
lista_linii = tekst.splitlines()
for linia in lista_linii:
    print(linia)

Etc etc. "Zrób coś dla każdego elementu czegoś" to raczej coś intuicyjne, gdzie nie trzeba się wiele zastanawiać nad zastosowaniem - to trochę abstrakcyjne, jak gdyby się zastanawiać jakie są zastosowania "trzymania przedmiotu w ręce" :)

komentarz 31 maja 2022 przez Apled Dyskutant (9,520 p.)

Pętla for to nie tyle co "Zrób coś dla każdego elementu czegoś", co "Zrób coś ZADANĄ ilość razy".

"Zrób coś dla każdego elementu czegoś" dotyczy pętli foreach (dosłownie "dla każdego"), w przypadku Python'a wygląda ona mniej więcej tak:

for pozycja in tablica:

 

1
komentarz 31 maja 2022 przez adrian17 Ekspert (344,860 p.)
Co jak co, ale ja widzę w tym Twoim kodzie "for" :) W Pythonie, na coś takiego mówi się dokładnie "pętla for".

https://docs.python.org/3/reference/compound_stmts.html#the-for-statement

To, że w innych językach ten termin oznacza trochę co innego, nie ma znaczenia. Analogicznie Pythonowa "lista" to co innego niż "lista" w rozumieniu C lub np C++owego std::list, ale to nie znaczy że nagle nie można na nią mówić "lista".
komentarz 31 maja 2022 przez Apled Dyskutant (9,520 p.)

Nie wskazywałem na to, że foreach musi dosłownie przyjmować formę jako foreach, tylko o koncepcję, jako że, for nie musi działać na każdym elemencie, gdzie foreach z założenia właśnie ma działać "dla każdego".

Wskazywałem tylko na to, że choć podobne, to jednak dwie różne rzeczy.

1
komentarz 31 maja 2022 przez adrian17 Ekspert (344,860 p.)
Ale... to wciąż nie ma znaczenia. Jeśli ktoś w kontekście Pythona pyta o "pętlę for", to pyta o `for x in y:` i tyle.
0 głosów
odpowiedź 31 maja 2022 przez LLVL Nowicjusz (160 p.)
SCL jest w praktyce bardzo podobny Pythona.
Chodziło mi o przykłady z życia wzięte. Konkretnie w jakiej sytuacji zastosowaliście pętle For.
2
komentarz 31 maja 2022 przez adrian17 Ekspert (344,860 p.)
edycja 31 maja 2022 przez adrian17

Chodziło mi o przykłady z życia wzięte. Konkretnie w jakiej sytuacji zastosowaliście pętle For.

Moje porównanie jest aktualne - to jedna z najbardziej fundamentalnych operacji, używam jej cały czas, tak samo jak wiele razy dziennie "trzymam przedmiot w ręce", że aż dziwnie o to pytać :)

Robię statystyki postów na forum i chcę wykonać analizę na każdym poście po kolei? `for post in posts:`

Wczytuję wejście z pliku i chcę czytać każdą linię po kolei? `for line in lines:`

Chcę sumę co drugiego elementu listy? `for e in lista[::2]: suma += e`

Robię śmieszkowy skrypt odwracający tekst do góry nogami, "przyklad" w "pɐlʞʎzɹd"? Muszę odwrócić każdy znak po kolei od końca, więc `for c in reversed(text)`

etc etc etc.

(i odpowiedziałeś w złym miejscu ;) )

Podobne pytania

0 głosów
2 odpowiedzi 879 wizyt
pytanie zadane 18 maja 2021 w Python przez urbix01 Gaduła (3,290 p.)
+2 głosów
2 odpowiedzi 283 wizyt
pytanie zadane 25 kwietnia 2022 w Java przez cfaniaczek Nowicjusz (200 p.)
0 głosów
0 odpowiedzi 646 wizyt
pytanie zadane 1 stycznia 2022 w C i C++ przez Admak Początkujący (340 p.)

92,555 zapytań

141,402 odpowiedzi

319,541 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...