Language Python
(This example demonstrates the simplicity)
| Date: | 07/23/05 |
| Author: | Gerold Penz |
| URL: | http://gerold.bcom.at/ |
| Comments: | 4 |
| Info: | http://www.python.org/ |
| Score: |
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
"""
99 Bottles of Beer (by Gerold Penz)
Python can be simple, too :-)
"""
for quant in range(99, 0, -1):
if quant > 1:
print quant, "bottles of beer on the wall,", quant, "bottles of beer."
if quant > 2:
suffix = str(quant - 1) + " bottles of beer on the wall."
else:
suffix = "1 bottle of beer on the wall."
elif quant == 1:
print "1 bottle of beer on the wall, 1 bottle of beer."
suffix = "no more beer on the wall!"
print "Take one down, pass it around,", suffix
print "--"
Download Source | Write Comment
Alternative Versions
| Version | Author | Date | Comments | Rate |
|---|---|---|---|---|
| Creative version | Schizo | 11/06/05 | 11 | |
| minimal version | Oliver Xymoron | 04/20/05 | 3 | |
| Advanced, extensible beer/wall framework | Jamie Turner | 05/17/06 | 3 | |
| Exception based | Michael Galpin | 02/08/08 | 0 | |
| Using a iterator class | Eric Moritz | 01/20/06 | 2 | |
| Fully compliant version | Ricardo Garcia Gonzalez | 01/15/06 | 5 | |
| New conditional expressions in 2.5 | Ezequiel Pochiero | 12/18/06 | 0 | |
| using lambda in LISP style | J Adrian Zimmer | 11/14/06 | 0 | |
| functional, w/o variables or procedures | Ivan Tkatchev | 07/14/05 | 1 | |
| minimal version with singular | Emlyn Jones | 06/13/05 | 2 |
Download Source | Write Comment
Add Comment
Please provide a value for the fields Name,
Comment and Security Code.
This is a gravatar-friendly website.
E-mail addresses will never be shown.
Enter your e-mail address to use your gravatar.
Please don't post large portions of code here! Use the form to submit new examples or updates instead!
Comments
b=lambda n:'\n%s bottle%s of beer on the wall'%(n%100 or'No more','s'*(n!=1))
for n in range(99,-1,-1):print(b(n)*2)[:-12]+'\n'+'Take one down, pass it \
around'*(n!=0)+'Go to the store and buy some more'*(n==0)+b(n-1)
'''99 Bottles of Beer in Python by Wen Zhang. Nature version'''
bottle = ' bottles of beer on the wall'
take = '.\nTake one down and pass it around,'
for n in reversed(range(100)):
nBottle = str(n) + bottle
if n == 1:
nBottle = nBottle.replace('es','e')
if n == 0:
nBottle = 'no more' + bottle
take = '.\nGo to the store and buy some more, 99' + bottle + '.'
if n != 99:
print nBottle + '.\n'
print nBottle.capitalize() + ', ' + nBottle[:-12] + take,
print("".join(map(lambda x: x and "%s%d bottle%s of beer on the wall, %d bottle%s of beer...\nTake one down, pass it around.\n"%(x<99 and "%d bottles of beer on the wall.\n\n"%x or "\n", x, x>1 and "s" or " ", x, x>1 and "s" or " "