Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #4337

Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden

Path csiph.com!feeder.erje.net!2.eu.feeder.erje.net!newsfeed.freenet.ag!newsfeed.kamp.net!newsfeed.kamp.net!fu-berlin.de!uni-berlin.de!not-for-mail
From Mike Müller <mmueller@python-academy.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden
Date Tue, 29 Mar 2016 17:47:23 +0200
Organization Python Academy GmbH & Co. KG
Lines 116
Message-ID <mailman.157.1459266454.28225.python-de@python.org> (permalink)
References <56F445C9.3000200@mail.de> <CAMSP2L7OBP5h4yjrRrx4XuvwE3UMTg=grZqPzJ7B9ZEyYYXD5A@mail.gmail.com> <E7199327-B882-4691-A703-351C20DFE173@web.de> <A201B172-63F7-484B-80FB-EB92999275A7@darwin.in-berlin.de> <533CBF60-D919-4211-8155-ACC90B848839@web.de> <56F47AD1.5040008@chrisarndt.de> <56F525AC.10600@python-academy.de> <56F93B79.4090008@chrisarndt.de>
Reply-To mmueller@python-academy.de
Mime-Version 1.0
Content-Type multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="m7WmGGXIctwEcfv5cCXSEucM94wntuSlX"
X-Trace news.uni-berlin.de re24rrCDbEvmKxOrxRaFygZTwjUMFzfHD5KJ1nFsRY/g==
Return-Path <mmueller@python-academy.de>
X-Original-To python-de@python.org
Delivered-To python-de@mail.python.org
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Thunderbird/38.6.0
In-Reply-To <56F93B79.4090008@chrisarndt.de>
X-Authenticated-Sender mmueller@python-academy.de
X-Virus-Scanned Clear (ClamAV 0.99/21477/Mon Mar 28 21:45:21 2016)
X-BeenThere python-de@python.org
X-Mailman-Version 2.1.21
Precedence list
List-Id Die Deutsche Python Mailingliste <python-de.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-de>, <mailto:python-de-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-de/>
List-Post <mailto:python-de@python.org>
List-Help <mailto:python-de-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-de>, <mailto:python-de-request@python.org?subject=subscribe>
Xref csiph.com de.comp.lang.python:4337

Show key headers only | View raw


[Multipart message — attachments visible in raw view] - view raw

Am 28.03.16 um 16:11 schrieb Christopher Arndt:
> Am 25.03.2016 um 12:49 schrieb Mike Müller:
>> object() ist der Sentinel schlechthin.
> 
> Stimmt, das hatte ich mir noch gar nicht so bewusst gemacht.
> 
>> Alle Funktionen haben immer einen Rückgabewert. Damit muss ich `i`
>> nicht zwingend als Argument mitgeben.
> 
> Das habe ich nicht verstanden. Wenn man über eine Kollektion iteriert,
> will man doch meistens mit jedem Element irgendetwas machen, muss es
> dann also auch an die Verarbeitungsfunktion übergeben.

In den meisten Fällen ja. Es könnte aber auch sein, dass ich einfach
etwas so oft tun will wie Elemente in der Kollektion sind.
Zum Beispiel zu was:

for _ in range(len(collection)):
    # mach was

aber halt ohne `len`:

for i in collection:
    # mach was

> Und ob ich das Element an die Verarbeitungsfunktion übergebe oder nicht,
> hat doch nichts mit ihrem Rückgabewert zu tun.
> Vielleicht kannst du nochmal erklären, was du meinst?

Du hast Recht. In deinem Beispiel ändert sich `i` ja sobald eine
Schleife aktiv war. Also hat auch die Änderung von `i` nichts mit
dem Aufruf der Funktion zu tun. Das Testen auf die Änderung des
Rückgabewertes bringt also keinen Vorteil außer in diesem äußerst
konstruierten Fall. (Dies Beispiel ist von der python-ideas Liste.
Ich habe einfach mal nach der von Sven angesprochenen Diskussion
gesucht):

item = object()
counter = 0
for item in locals().values():
    counter += 1
print(counter)
if item is item:
    print('no loop')

Ausgabe:

41
no loop

Das jemand innerhalb einer Funktion eine globale Variable mit
dem Namen `sentinel` anlegt geht natürlich auch. Ich bin
aber grundsätzlich geben `global`. ;)

Mike


> 
> 
> Chris
> 
> 
> 
> _______________________________________________
> python-de maillist  -  python-de@python.org
> https://mail.python.org/mailman/listinfo/python-de
> 


Back to de.comp.lang.python | Previous | Next | Find similar


Thread

Re: [Python-de]  Schleifen die ohne Durchlaufen des Schleifenkörpers beendet wurden Mike Müller <mmueller@python-academy.de> - 2016-03-29 17:47 +0200

csiph-web