Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: =?UTF-8?Q?Mike_M=c3=bcller?= Newsgroups: de.comp.lang.python Subject: Re: [Python-de] =?utf-8?q?Schleifen_die_ohne_Durchlaufen_des_Schleif?= =?utf-8?q?enk=C3=B6rpers_beendet_wurden?= Date: Fri, 25 Mar 2016 12:49:00 +0100 Organization: Python Academy GmbH & Co. KG Lines: 96 Message-ID: References: <56F445C9.3000200@mail.de> <533CBF60-D919-4211-8155-ACC90B848839@web.de> <56F47AD1.5040008@chrisarndt.de> Reply-To: mmueller@python-academy.de Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="XMKHeorkVfRGc20enCOc1Eqcw7eiDtvip" X-Trace: news.uni-berlin.de RnBsOdnahsFpNUJuOYbwiAJDqjfxo3MHK6VBomFI044w== Return-Path: 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: <56F47AD1.5040008@chrisarndt.de> X-Authenticated-Sender: mmueller@python-academy.de X-Virus-Scanned: Clear (ClamAV 0.99/21473/Thu Mar 24 21:25:24 2016) X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com de.comp.lang.python:4329 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --XMKHeorkVfRGc20enCOc1Eqcw7eiDtvip Content-Type: multipart/mixed; boundary="1PUdOlvmWPxxied27E7oQQJWqdc1Vc0D9" From: =?UTF-8?Q?Mike_M=c3=bcller?= Reply-To: mmueller@python-academy.de To: python-de@python.org Message-ID: <56F525AC.10600@python-academy.de> Subject: =?UTF-8?Q?Re:_[Python-de]_Schleifen_die_ohne_Durchlaufen_des_Schlei?= =?UTF-8?Q?fenk=c3=b6rpers_beendet_wurden?= References: <56F445C9.3000200@mail.de> <533CBF60-D919-4211-8155-ACC90B848839@web.de> <56F47AD1.5040008@chrisarndt.de> In-Reply-To: <56F47AD1.5040008@chrisarndt.de> --1PUdOlvmWPxxied27E7oQQJWqdc1Vc0D9 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Am 25.03.16 um 00:40 schrieb Christopher Arndt: > Am 24.03.2016 um 23:46 schrieb Diez B. Roggisch: >> Huh, im Zeitalter von ternary if=92s noch den OR-Trick ;) >=20 > Der "OR-Trick" ist auch in Zeiten von "expr if expr else expr" noch des= > =F6fteren hilfreich weil oft k=FCrzer. Er ist ja eigentlich nur eine an= dere > Form von "expr1 if expr1 else expr2" (wobei expr1 nur einmal evaluiert > wird). >=20 > Was man nicht mehr verwenden sollte, ist "expr and non-false-expr or ex= pr". >=20 >> Ich denke wenn wuerde ich das eher kapseln in ein >> >> def loop_or_else(iterable, sideeffect): >> looped =3D False >> for item in iterable: >> looped =3D True >> yield item >> if not looped: >> sideeffect() >=20 > Wenn man wei=DF, dass ein bestimmter Wert niemals ein Element des > Iterables sein wird, kann man das auch so verk=FCrzen: >=20 > i =3D SENTINEL > for i in collection: > do_item(i) > if i =3D=3D SENTINEL: > and_now_for_something_completely_different() >=20 > Ist immerhin nur eine Zeile mehr als die usprl. geforderte L=F6sung. Ich w=FCrde das so machen: senti =3D senti_start =3D object() for i in collection: senti =3D do_item() if senti is senti_start: empty() object() ist der Sentinel schlechthin. Alle Funktionen haben immer einen R=FCckgabewert. Damit muss ich `i` nicht zwingend als Argument mitgeben. Viele Gr=FC=DFe Mike --1PUdOlvmWPxxied27E7oQQJWqdc1Vc0D9-- --XMKHeorkVfRGc20enCOc1Eqcw7eiDtvip Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.17 (Darwin) Comment: GPGTools - http://gpgtools.org iQEcBAEBAgAGBQJW9SWtAAoJEKed4/ize0A4cyoIAK30VzMLHf46r5hwR+S4o0WX aMouS8L0AYuQAQUZUwBYRnDfRwt6Sjc1KtXmnLD+1c+UIZD2SZeRTxy/iMTPL/Yr TClvvhubRGeBJiTE/3D72B4Sg+NbbRzPXs86+7rcLdHYcbhEbwtw4uMCDNihVRe0 qv2jXdAM2zModS/hfkR9vGlnecHVKeLidGd4PitMlihQAQ5BYizGbrDJfrZ0ojTH xXpEukvdzLn0jNYvWr5PSEpfSKYKV4cImO8Zsl3i7Sk3j4uKHUnAo6vRvoodyhfS 7gkSNfbcqtJwtoW5IP84YsoPGPScQOqm9ch0lmy2TQUeh0JXM4Z8zbBUkZS5kds= =EQow -----END PGP SIGNATURE----- --XMKHeorkVfRGc20enCOc1Eqcw7eiDtvip--