Sorry
In the option 2 in the last IF clause there is a missing = it should be
if password == "unicorn" and not if password="unicorn"
Regards
Alberto
![]()
Gaucho
>From: Brian van den Broek <[EMAIL PROTECTED]> >To: Alberto Troiano <[EMAIL PROTECTED]> >CC: [EMAIL PROTECTED], tutor@python.org >Subject: Re: [Tutor] Cell Bio Newbie Here >Date: Mon, 11 Apr 2005 16:45:55 -0400 > >Alberto Troiano said unto the world upon 2005-04-11 16:09: >>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 - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor