Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


#Actualcowsarenotevil

Posted 05 July 2013 - 09:09 PM

 

I see your 473 non-whitespace characters, and raise you 331.

 

[Edit:] Got it to 314 non-whitespace characters. Still has the flaw @slicer mentions below. =(...

 

By the powers vested in me by Python, I see your 314 and raise you 274.

 

 

I don't know Python, but following from what SiCrane said, could you perhaps make line 6 stick an 's' into the string a, removing the need for a substantially-identical string b?

 

EDIT: This seems to work with fewer characters, and I'm sure someone who has actually used Python, you know, ever, could do this in a smarter way.

a = 'bottles of beer'
w = 'on the wall.\n'

def D(i):
	return i if i!=0 else 'no more'

def Q(i):
	return a if i!=1 else "".join(a.split("s"))

def C(i):
	return '\nTake one down and pass it around,' if i>0 else '\nGo to the store and buy some more,'

for i in range(99,-1,-1):
    print D(i), Q(i), 'on the wall,', D(i), Q(i)+'.', C(i), D(i-1), Q(i-1), w

#print 'No more', b, 'on the wall, no more', b+'.'+C(i), '99', b, w

EDIT: Oops, I must have stolen swiftcoder's code to make that change at a moment when it was broken, so there's an off-by-one error in mine.


#2cowsarenotevil

Posted 05 July 2013 - 09:07 PM

 

I see your 473 non-whitespace characters, and raise you 331.

 

[Edit:] Got it to 314 non-whitespace characters. Still has the flaw @slicer mentions below. =(...

 

By the powers vested in me by Python, I see your 314 and raise you 274.

 

 

I don't know Python, but following from what SiCrane said, could you perhaps make line 6 stick an 's' into the string a, removing the need for a substantially-identical string b?

 

EDIT: This seems to work with fewer characters, and I'm sure someone who has actually used Python, you know, ever, could do this in a smarter way.

a = 'bottles of beer'
w = 'on the wall.\n'

def D(i):
	return i if i!=0 else 'no more'

def Q(i):
	return a if i!=1 else "".join(a.split("s"))

def C(i):
	return '\nTake one down and pass it around,' if i>0 else '\nGo to the store and buy some more,'

for i in range(99,-1,-1):
    print D(i), Q(i), 'on the wall,', D(i), Q(i)+'.', C(i), D(i-1), Q(i-1), w

#print 'No more', b, 'on the wall, no more', b+'.'+C(i), '99', b, w

#1cowsarenotevil

Posted 05 July 2013 - 08:52 PM

 

I see your 473 non-whitespace characters, and raise you 331.

 

[Edit:] Got it to 314 non-whitespace characters. Still has the flaw @slicer mentions below. =(...

 

By the powers vested in me by Python, I see your 314 and raise you 274.

 

 

I don't know Python, but following from what SiCrane said, could you perhaps make line 6 stick an 's' into the string a, removing the need for a substantially-identical string b?


PARTNERS