On Mon, Oct 10, 2011 at 3:13 PM, Mike Nickey <mnic...@gmail.com> wrote:
> Hey all, > > I'm trying to write a def that has a check to see if the entered > information is within a pre-determined valid set. > Below is what I have so far but it doesn't seem to be working properly. > What I want is to have the user be able to enter 1 through 8 and have the > information pass fine but anything else would cause the user to repeat the > process. > I'm using a while loop to try to do this. The only other thing I can think > of to do is incorporate a list and see if I can check the list to complete > this. > > Any assistance would be greatly appreciated. > > def getUserSkillLvl(GameType): #GameType is an in of 8 or 9 passed to this > def based on previous input > temp = 0 > while temp == 0: > if GameType == 8: > UserSkillLvl = raw_input("Enter your current skill level: ") > int(UserSkillLvl) > if ((UserSkillLvl <= 8) and (UserSkillLvl >=1)): > print "thank you" > temp = 1 > break > elif (UserSkillLvl >8) or (UserSkillLvl < 1): > while temp == 0: > UserSkillLvl = raw_input("Please re-enter your skill > level: ") > return UserSkillLvl > > int() is a function, not a statement - it returns a value, but doesn't change the value you pass in to it. (Generally, things with () at the end are functions... there are exceptions, but it's a useful rule of thumb.) So UserSkillLvl is a string when the user enters it - you run int() on it, but throw away the result - it's still a string a moment later when you try to see whether it's <=8 or >=1. You could do > UserSkillLvl = int(UserSkillLvl) or > if ((int(UserSkillLvl) <= 8) and (int(UserSkillLvl) >=1)): Your choice.
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor