On 14/05/14 10:45, Sam Ball wrote:
I'm attempting to create a program where the user inputs their account number (which must be 8 digits) and if what the user enters is not 8 digits in length I want python to tell the user this is invalid and then keep asking for the account number until a suitable number has been entered. I'm guessing it's a sort of while loop
You guess correct
userAccountNumber = eval(input("Please Input Your Account Number:"))
But please don;t do this. it is a huge security hole since whatever your user enters will be executed as Python code - thats what eval() does. Your user can ytype anything in there.
The correct approach is to use raw_input (since you seem to be using Pthon v2) and a conversion function such as int() to get the data
type that you want.
while userAccountNumber > 100000000 or <=9999999:
Python sees this as: while (userAccountNumber > 100000000) or <=9999999: Which makes no sense. In most programming languages you test this like this: (userAccountNumber > 100000000) or (userAccountNumber <= 9999999): But in Python you can do these compound checks more succinctly like this: > while not (9999999 < userAccountNumber < 100000000): And the other way is to check the length of the input at source: userAccount = '' while len(userAccount) != 8: userAccount = raw_input("Please Input Your Account Number:") userAccountNumber = int(userAccount) HTH -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor