Language Python
(This example demonstrates the simplicity)
Date: | 07/23/05 |
Author: | Gerold Penz |
URL: | http://gerold.bcom.at/ |
Comments: | 15 |
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 | 16 | ![]() ![]() |
Advanced, extensible beer/wall framework | Jamie Turner | 05/17/06 | 7 | ![]() ![]() |
minimal version | Oliver Xymoron | 04/20/05 | 5 | ![]() ![]() |
using lambda in LISP style | J Adrian Zimmer | 11/14/06 | 2 | ![]() ![]() |
Exception based | Michael Galpin | 02/08/08 | 0 | ![]() ![]() |
functional, w/o variables or procedures | Ivan Tkatchev | 07/14/05 | 2 | ![]() ![]() |
minimal version with singular | Emlyn Jones | 06/13/05 | 3 | ![]() ![]() |
Fully compliant version | Ricardo Garcia Gonzalez | 01/15/06 | 7 | ![]() ![]() |
Using a iterator class | Eric Moritz | 01/20/06 | 2 | ![]() ![]() |
New conditional expressions in 2.5 | Ezequiel Pochiero | 12/18/06 | 1 | ![]() ![]() |
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 " "
%s bottles of beer,
Take one down, pass it around,
%s bottles of beer on the wall'''
print '\n\n'.join([msg % ((i,)*3) for i in reversed(range(1,100))])
print '''No bottles of beer on the wall,
No bottles of beer,
Go to the store and buy some more,
No bottles of beer on the wall'''
#!/usr/bin/python
# -*- coding: utf8 -*-
def bottles(a):
print str(a)+" bottles of beer on the wall,"
print str(a)+" bottles of beer."
print "Take one down pass it around"
print str(a-1)+" bottles of beer on the wall!"
print
if a>1:
bottles(a-1)
bottles(99)
print a,"bottles of beer on the wall,", a ,"bottles of beer."
print "Take one down pass it around", a-1,"bottles of beer on the wall\n"
if a>2:
bottles(a-1)
bottles(99)
print """
1 bottle of beer on the wall, 1 bottle of beer.
Take one down pass it around no more bottles of beer on the wall
No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall."""
# aspect oriented
import aspects
numberOfBottles = 99
def takeBottle():
global numberOfBottles
if numberOfBottles > 0:
numberOfBottles = numberOfBottles - 1
else:
numberOfBottles = 99
def writeText(*args, **kwargs):
print "\n", numberOfBottles, "bottles of beer on the wall,", numberOfBottles, "bottles of beer."
yield aspects.proceed(*args, **kwargs)
if numberOfBottles > 1:
print "Take one down and pass it around,", numberOfBottles, "bottles of beer on the wall."
else:
print "Take one down and pass it around,", numberOfBottles, "bottle of beer on the wall."
def writeTextLastBottle(*args, **kwargs):
print "\n", numberOfBottles, "bottle of beer on the wall,", numberOfBottles, "bottle of beer."
yield aspects.proceed(*args, **kwargs)
print "Take one down and pass it around, no more bottles of beer on the wall."
def writeTextBuySomeMore(*args, **kwargs):
print "\nNo more bottles of beer on the wall, no more bottles of beer."
yield aspects.proceed(*args, **kwargs)
print "Go to the store and buy some more,", numberOfBottles, "bottles of beer on the wall."
aspects.with_wrap(writeText, takeBottle)
while numberOfBottles > 1:
takeBottle()
aspects.without_wrap(writeText, takeBottle)
aspects.with_wrap(writeTextLastBottle, takeBottle)
takeBottle()
aspects.without_wrap(writeTextLastBottle, takeBottle)
aspects.with_wrap(writeTextBuySomeMore, takeBottle)
takeBottle()
print'\n\n'.join(map(lambda v:'%s bottle%s of beer on the wall, %s bottle%s of beer.\n%s, %s bottle%s of beer on the wall.'%([v,'No'][v==0],['s',''][v==1],[v,'no'][v==0],['s',''][v==1],['Take one down, pass it around','Go to the store and buy some more'][v==0],[v-1,99][v==0] or'No',['s',''][v-1==1]),range(99,-1,-1)))
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def bottles(n):
bottlesay = {}
bottlesay[0] = "no more bottles"
bottlesay[1] = "1 bottle"
return bottlesay[n] if n in bottlesay else str(n)+" bottles"
def verse(n):
if n < 1:
return "No more bottles of beer on the wall, no more bottles of beer.\n Go to the store and buy some more, 99 bottles of beer on the wall."
else:
return bottles(n)+" of beer on the wall, "+bottles(n)+" of beer.\n Take one down and pass it around, "+bottles(n-1)+" of beer on the wall.\n"
if __name__ == '__main__':
def sing(x):
print verse(x)
map(sing, reversed(range(100)))
def BG():
x = 99
bottle = " bottles"
while x > 0:
print x, bottle, " of beer on the wall, ", x, bottle, " of beer."
x = x - 1
if x <= 1:
bottle = " bottle"
print "Take one down pass it arround, ", x, bottle, " of beer on the wall!"
print
http://www.switchonthecode.com/
for bottle in range(99): print "%s bottles of coke on the wall, %s bottles of coke. Take one down, pass it around, %s bottles of coke on the wall" % (99-bottle, 99-bottle, 99-bottle-1)
def beerSong():
word = "bottles"
for quant in range(99,-1,-1):
if quant > 1:
print str(quant)+ " " + word + " of beer on the wall, " +str(quant)+ " " + word + " of beer."
print "Take one down, pass it around.\n"
elif quant >= 0:
if quant == 1:
word = "bottle"
print str(quant)+ " " + word + " of beer on the wall, " +str(quant)+ " " + word + " of beer."
print "Take one down, pass it around, no more bottles of beer on the wall.\n"
elif quant == 0:
print "No more bottles of beer on the wall, no more bottles of beer."
print "Go to the store and buy some more, 99 bottles of beer ont he wall.\n"
else:
sys.exit(0)
else:
sys.exit(0)
beerSong()