Sha256: 88e33fc7c338007952b8bc4cda5bf3075d6a14ee6762e9cd30ac45665aa4e2c0

Contents?: true

Size: 976 Bytes

Versions: 288

Compression:

Stored size: 976 Bytes

Contents

def song(first, last=0):
    verses = ''
    for number in reversed(range(last, first + 1)):
        verses += verse(number) + '\n'

    return verses


def verse(number):
    return ''.join([
        "%s of beer on the wall, " % _bottles(number).capitalize(),
        "%s of beer.\n" % _bottles(number),
        _action(number),
        _next_bottle(number),
    ])


def _action(current_verse):
    if current_verse == 0:
        return "Go to the store and buy some more, "
    else:
        return "Take %s down and pass it around, " % (
            "one" if current_verse > 1 else "it"
        )


def _next_bottle(current_verse):
    return "%s of beer on the wall.\n" % _bottles(_next_verse(current_verse))


def _bottles(number):
    if number == 0:
        return 'no more bottles'
    if number == 1:
        return '1 bottle'
    else:
        return '%d bottles' % number


def _next_verse(current_verse):
    return current_verse - 1 if current_verse > 0 else 99

Version data entries

288 entries across 288 versions & 1 rubygems

Version Path
trackler-2.2.1.70 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.69 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.68 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.67 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.66 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.65 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.64 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.63 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.62 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.61 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.60 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.59 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.58 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.57 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.56 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.55 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.54 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.53 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.52 tracks/python/exercises/beer-song/example.py
trackler-2.2.1.51 tracks/python/exercises/beer-song/example.py