Hey Gary
password="foobar"
#######
the variable password has to be here because you are referiencing before the assignment inside the while sentence. You can also set it to password="" and still will work because you have to tell (in this example) that password is a reserved word(variable)
Hi Alberto, Gary, and all,
Alberto, if I may, I think there are some problems in what you posted. (But, if you want to see some *really* troubled postings, just find some of my earliest attempts to answer on the tutor list!)
I think it is important to keep the distinction between variables and reserved words clear.
if = "Won't work as 'if' is a reserved word"
Traceback ( File "<interactive input>", line 1
if = "Won't work as 'if' is a reserved word"
^
SyntaxError: invalid syntax
"Reserved words" or "keywords" are the fixed words of the Python language itself. See Section 2.3.1 Keywords of the Language Reference.
########
count=3 current_count=0
#######
Here you have two options:
Option 1:
while password !="unicorn":
if current_count<count:
password=raw_input("Password:")
current_count=current_count+1
else: current_count=2 print "That must have been complicated"
print "Welcome in"
Add this line inside the "else" clause: current_count=2 ####This will make you have more chances and if you fail it will complain.
That isn't going to solve the infinite looping problem in the case that password never is equal to 'unicorn'
The problem is that current_count doesn't decrement in the loop, so let's say you fail 3 times the current_count will keep looping because its value is 3 and it won't change in your code. Also I think that if you're making an application to restrict the error to 3 times you may want to finish the app to start over so in that case you may want to try option 2.
#######
Option 2:
while password !="unicorn" and current_count <= count:
if current_count<count:
password=raw_input("Password:")
current_count=current_count+1
else: current_count=current_count+1
print "That must have been complicated" if password="unicorn": print "Try again Later"
else: print "Welcome in"
Here you will lock your prog when the user fails 3 times and will print your line once and then will jump to Try Again later and it will finish
I'm pretty sure there are some crossed wires here. :-) Maybe you
intended the last two print statements to be swapped? But, either way, since Option 2 will never exit the while loop unless password does
equal 'unicorn', the final else clause will never be reached. Or, so
it seems to me.
Last, I don't see why the first else block increments current_count.
Best,
Brian vdB
_______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
