Path: csiph.com!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Jussi Piitulainen Newsgroups: comp.lang.python Subject: Re: A Program that prints the numbers from 1 to 100 Date: Mon, 16 Nov 2015 15:39:50 +0200 Organization: A noiseless patient Spider Lines: 20 Message-ID: References: <85eea326-406d-4454-8c3a-859f1e464cfc@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: mx02.eternal-september.org; posting-host="305c68510616a2e7ac08bcd2ff1598bd"; logging-data="28886"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+mlz088ot7BZ0SlD8IpAQK7FuYyJ0+psg=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:3XtDtnca1eUFuztqdwFkkYDNiQI= sha1:rMpOhDJ/q0WvjrxDKBOMnkqU5TA= Xref: csiph.com comp.lang.python:98886 Chris Angelico writes: > > Here's another version, but with a deliberate bug in it. [- -] This one recycles fish in a way that looks a bit worrying but it seems to work. If there's a bug, it's not deliberate. Except stopping at 15 is deliberate. from contextlib import contextmanager as fish from collections import defaultdict as fowl @fish def fish(fish): chip = fowl(str) chip.update(((fowl(int)[fish],fish),)) yield chip with fish("Fish") as f, fish("Bush") as b: print(*("{}{}".format(f[k%3],b[k%5]) or k for k in range(1,16))) # prints: 1 2 Fish 4 Bush Fish 7 8 Fish Bush 11 Fish 13 14 FishBush