Recent Changes - Search:

Oktatás

* Programozás 1
  + feladatsor
  + GitHub oldal

* Szkriptnyelvek
  + feladatsor
  + quick link

Teaching

* Programming 1 (BI)
  ◇ exercises
  ◇ quick link

* Scripting Languages
  ◇ exercises
  ◇ quick link

teaching assets


Félévek

* aktuális (2023/24/2)
* archívum


Linkek

* kalendárium
   - munkaszüneti napok '20
* tételsorok
* jegyzetek
* szakdolgozat / PhD
* ösztöndíjak
* certificates
* C lang.
* C++
* C#
* Clojure
* D lang.
* Java
* Nim
* Scala


[ edit | logout ]
[ sandbox | passwd ]

Py /

20170520c

for…else

Ez egy elég furcsa konstrukció, s mivel más nyelvekben nem igazán van jelen, ezért inkább kerüljük a használatát. Ha valaki más olvassa a kódunkat, nagy valószínűséggel nem fogja tudni, hogy mi is ez. Azért nézzük meg, hogy 1) fel tudjuk ismerni, ill. 2) nagy ritkán még akár szükségünk is lehet rá.

Egy for ciklus kiegészíthető egy else ággal:

# there is no break in the loop

for i in range(10):
    print(i, end=' ')
else:    # nobreak
    print()
    print("there was no break")
0 1 2 3 4 5 6 7 8 9 
there was no break
# There is a break in the loop!

for i in range(10):
    print(i, end=' ')
    if i == 5:
        break
else:    # nobreak
    print()
    print("there was no break")
0 1 2 3 4 5

Magyarázat

A Python alkotói nem akartak új kulcsszót bevezetni, ezért döntöttek az else használata mellett. Ez eléggé megtévesztő, a helyes elnevezése ui. "nobreak" lenne. Ha a for ciklus végig lefutott és nem volt benne break-kel való kiugrás, akkor lefut az else utáni rész. Ha a ciklusból break-kel törtünk ki, akkor az else utáni rész nem fut le.

Tipp! A for…else konstrukció használata esetén az else után egy megjegyzésbe MINDIG írjuk bele, hogy "nobreak", jelezve ezzel, hogy az az else ág valójában mit is jelent. A kódunkat olvasók hálásak lesznek érte…

Érdekesség

Guido --saját bevallása szerint-- ma már kihagyná ezt a nyelvi sajátosságot. Link: https://mail.python.org/pipermail/python-ideas/2009-October/006157.html .

Cloud City

  

Blogjaim, hobbi projektjeim

* The Ubuntu Incident
* Python Adventures
* @GitHub
* heroku
* extra
* haladó Python
* YouTube listák


Debrecen | la France


[ edit ]

Edit - History - Print *** Report - Recent Changes - Search
Page last modified on 2022 September 01, 08:32