Wpis z mikrobloga

@wytrzzeszcz: Pozwolisz, że przekopiuję z kursu, bo to mam pod ręką:
Something completely different about Python is the while/else construction. while/else is similar to if/else, but there is a difference: the else block will execute anytime the loop condition is evaluated to False. This means that it will execute if the loop is never entered or if the loop exits normally. If the loop exits as the result of a break,
@SkradaczTENZNANY: Szczerze? Sam się uczę dopiero i akurat wczoraj ten fragment przeczytałem. Też dla mnie to trochę dziwne jak Zed sam używa w swoich przykładowych programach chociażby while(true). Może w dalszej części książki jest coś bardziej wytłumaczone :)
@SkradaczTENZNANY: Bo instrukcja *for* w Pythonie jest na tyle sprytna, że będzie wiedzieć, kiedy skończy się sekwencja po której iteruje. Przykładowo:

for n in [1, 2, 3, 4, 5]:
....print n

wyświetli po kolei:

1
2
3
4
5

Teraz wyobraź sobie, że zamiast listy pięcio elementowej masz zmienną, a pod tą zmienną jest wstawiana np. lista stu elementowa gdzieś we wcześniejszej części programu (to, co "z góry" nie wiesz)... albo
@portose: a jeżeli muszę wykonywać różne operacje zmiany stringa w zależności od tego czy dany substring jest w stringu? wtedy pętla może być powtarzana zarówno więcej razy lub też mniej niż długość stringa. nie da się określić z góry ile
Jeśli iterujesz po stringu, to instrukcja for będzie wiedzieć, że już się "literki" skończyły, tak samo jak wie, że się skończyły elementy listy w w.w. przykładzie. Jeśli chodzi Ci o przerwanie wykonywania pętli w jakimś powiedzmy "środkowym" momencie wykonywania pętli, bo np. jakiś warunek został spełniony i już nie ma co dalej sprawdzać, to po to jest instrukcja break.