Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Python Python Basics Functions and Looping While Loops

4 attempts in the video instead of 3

import sys

MASTER_PASSWORD = 'opensesame'
password = input("Please enter your password here: ")
attempt_count = 1
while password != MASTER_PASSWORD :
    if attempt_count >=3:
        sys.exit('Too many invalid password attempts')
    password = input('invalid password, try again: ')
    attempt_count += 1
print('Welcome Dude!')

I think if attempt_count>3 is incorrect. you should change it to attemp_count>=3 like the code above because the first time the user enters their password, it should be counted as one try

Here is the output of the code mentioned in the video:

C:\Desktop\TeamTreehouse\Python Basics>python password_checker.py
Please enter your password here: lumberjack  # Try number 1
invalid password, try again: cheeseshop           # Try number 2
invalid password, try again: dudydude              # Try number 3
invalid password, try again: yo yo yo                 # Try number 4 <--- This shouldn't happen
Too many invalid password attempts

the output of the corrected code above

C:\Desktop\TeamTreehouse\Python Basics>python password_checker.py
Please enter your password here: lumberjack
invalid password, try again: cheeseshop
invalid password, try again: Superman
Too many invalid password attempts

MOD: I formatted the output too, to make it easier to read. Thanks!

3 Answers

Konrad Gołda
Konrad Gołda
735 Points

And is it OK when I replace this whole line 'attempt_count += 1' in between 'while' line and 'if' line? Works for me, but I guess Craig had some reason to put this line at the end. Have a look below. Thanks!

while password != MASTER_PASSWORD:
    attempts += 1
    if attempts > 3:
        sys.exit("Too many invalid attempts :(")
    password = input("Invalid pass, try once more:  ")

I did the same, it worked.

Katie Ferencik
Katie Ferencik
1,774 Points

sulaiman abouabdah I realize this is a really old post, but it doesn't look like anyone answered it. I thought the same thing, so I changed my if attempt_count to == 3 rather than> 3 (which seems to make more sense if you're trying to limit it to 3...I mean, you're never going to go above that once you reach it anyway, right?)

MASTER_PASSWORD = "opensesame"
password = input("Please enter the super secret password: ")
attempt_count = 1
while password != MASTER_PASSWORD:
    if attempt_count == 3:
        sys.exit("too many invalid password attempts")
    password = input("Invalid password, try again: ")
    attempt_count += 1
print("Welcome to secret town")
Katie Ferencik
Katie Ferencik
1,774 Points

Konrad Gołda - same thing with you re: old post but I thought I'd answer anyway.

I believe it doesn't matter if your attempt_count += 1 is where you placed it vs. where Craig places it in the tutorial, since it's basically doing the same thing either way. I agree with how you put it first though, it makes a lot of sense to put it first just because it's naturally the way we would think about it.