#!/usr/bin/python import random # Random number generators def randomNumber(minIncl, maxExcl): while True: yield random.randint(minIncl, maxExcl) def doubleNumber(generatorForInputs): while True: yield 2*generatorForInputs.next() def squareNumber(generatorForInputs): while True: yield generatorForInputs.next() ** 2 # Here is a very clear pipeline, assembled from parts rng = randomNumber(1, 1001) dng = doubleNumber(rng) sng = squareNumber(dng) # Prints the square of a doubled random number print sng.next() print sng.next() print sng.next() print sng.next()