[Tutor] Cell Bio Newbie Here

Brian van den Broek bvande at po-box.mcgill.ca
Mon Apr 11 22:01:35 CEST 2005


glaevsky at ECE.NEU.EDU said unto the world upon 2005-04-11 14:54:
> Hey all,
> 
> Sorry for the bother, thanks for the help.
> 
> I'm trying to write a password guessing program to keep track of
> how many times the user has entered the password wrong.
> If it is more than 3 times, print ``That must have been complicated.''
> 
> Following is what I got.  If I type "unicorn" it goes straight to 
> "welcome in." Great.  But after my third mistake, it just loops in "That 
> must have been complicated."
> 
> I'd like for someone to tell me "why" i screwed up.  Not to just fix it.
> 
> Thank you so much in advance.  And to give you a little smile for a 
> Monday, I've been working on this for days....argh


Hi Gary,


> #first of all, why does this have to be here?
> password="foobar"

Given that you've structured things with a while loop that checks 
whether password is not equal to something else, you need to have a 
value for password, else you cannot check if the value of password is 
<whatever>. (If I asked you "Is graffleb less than 4?" you reasonably 
would reply "How can I answer that? You've not told me to what 
`graffleb' refers!")

That said, I'd use
 >>> password = None
instead.


> count=3
> current_count=0
> 
> while password !="unicorn":
>     if current_count<count:
>         password=raw_input("Password:")
>         current_count=current_count+1
>     else:
>         print "That must have been complicated"
> 
> 
> print "Welcome in"

You'd like the loop to exit after your third mistake, right? Well, the 
loop hasn't been told to do that :-)  The word you are looking for is 
`break'. If that doesn't get you to where you can make it behave as 
desired, post again.

HTH,

Brian vdB




More information about the Tutor mailing list