Thank you for all of the help. With your assistance and help from the Python Tutor mailing list I was able to come up with the following code:
password = "qwerty" correct_password_given = False guess = "0" count = 0 while count != 3 and not correct_password_given : guess = raw_input("Enter your password: ") guess = str(guess) if guess != password: print "Access Denied" count = count + 1 else: print "Password Confirmed" correct_password_given = True If I understand it correctly, the function will continue to loop until either the count == 3 or until correct_password_give = True, satisfying the two conditions of the assignment, which were to lock a user out after three failed password attempts and to print "Access Granted" and end the module if the correct password is given. Am I understanding this correctly? Thanks! On Jul 1, 12:06 am, alex23 <wuwe...@gmail.com> wrote: > On Jul 1, 3:38 pm, "sato.ph...@gmail.com" <sato.ph...@gmail.com> > wrote: > > > I have been able to make the module quit after entering a password > > three times, but can't get it to quit right away after the correct one > > is entered. > > Not with the code you pasted, you haven't. There's a missing colon on > line 7 & line 9 isn't indented properly. It's always best if we're > referring to the same source when trying to help with a problem. > > The problem you're having, though, has to do with the while loop and > the fact that it's only checking one condition: has the 'count' > counter been incremented to 3. What you need to do is _also_ check for > the success condition: > > is_confirmed = False > while count != 3 or is_confirmed: > guess = raw_input("Enter your password: ") > guess = str(guess) > if guess != password: > print "Access Denied" > count = count + 1 > else: > print "Password Confirmed" > is_confirmed = True > > This also provides you with a nice boolean that shows whether or not > the password was confirmed, which may be useful for latter code. > > However, whenever you want to loop a set number of times, it's usually > better to use a 'for' loop instead: > > PASSWORD = 'qwerty' > MAXRETRY = 3 > for attempt in xrange(MAXRETRY): > guess = str(raw_input('Enter your password: ')) > is_complete = guess == PASSWORD > if is_complete: > print 'Password confirmed' > break # this exits the for loop > else: > print 'Access denied: attempt %s of %s' % (attempt+1, MAXRETRY) > > This saves you from the burden of creating, incrementing & testing > your own counter. > > If there's anything here that isn't clear, please don't hesitate to > ask. -- http://mail.python.org/mailman/listinfo/python-list