New to programming question

Bengt Richter bokr at oz.net
Fri Apr 1 04:47:28 EST 2005


On Fri, 01 Apr 2005 07:46:41 GMT, Joal Heagney <joal at bigpond.net.au> wrote:

>Oh goddammmnitttt. I seem to be doing this a lot today. Look below for 
>the extra addition to the code I posted.
>
>Joal Heagney wrote:
>> 
>> Here's my contribution anycase:
>> 
>> count = 0
>> # Get first input
>> name = raw_input("Guess my name: ")
>> # Give the sucker two extra goes
>> while count < 2:
>>     # Check the value of name
>>     if name == 'Ben':
>>         print "You're right!"
>>         break
>>     else:
>>         name = raw_input("Try again: ")
>	  # Here's the bit I missed out.
>	  count += 1
>> # Of course, we haven't checked the sucker's last guess
>> # so we have to do that now.
>> if count == 2:
>>     if name == 'Ben':
>>         print "You're right!"
>>     else:
>>         print "No more tries for you!!!"
>> 
>> 
>> Hope this helps.
>> Joal
>
>GRRRRRRRR.
>

Need something more straightforward, e.g., a wrapped one-liner:

 >>> def guess(n=3): print ("You're right!", 'No more tries for you!!!')[n-1 in
 ...    (x for x in xrange(n) for t in [raw_input('Guess my name: ')=='Ben']
 ...    if not t or iter([]).next())]
 ...
 >>> guess()
 Guess my name: Jack
 Guess my name: Bob
 Guess my name: Ben
 You're right!
 >>> guess()
 Guess my name: Jack
 Guess my name: Ben
 You're right!
 >>> guess()
 Guess my name: Kermit
 Guess my name: Ms Piggy
 Guess my name: Ernie
 No more tries for you!!!
 >>> guess(1)
 Guess my name: Einstein
 No more tries for you!!!
 >>> guess()
 Guess my name: Ben
 You're right!

Regards,
Bengt Richter



More information about the Python-list mailing list