I have the following scenario, during a cli app a function is called whose purpose is to get enough info from user to create a database record.
Clearly the input values need to be validated. How do I handle the situation where validation fails, but the answer to the question is required. so far I have something like this def moduser(clientid): if not len(clientid) == 0: client = getclient(clientid) # this is a database call to get the existing record for modification, entering a zero length string assumes its a new record instead of a mod. if len(client) == 0: print("client not found") # more code here to wait a second and then go back to the menu selection that started this function. clienttype = input("Enter client type, there are two choices, Commercial or Individual\n choose C or I ") ******* My question is about what goes here ******* ...... return This is where life gets confusing, if clienttype is not a c or an I (case insensitive) then I have to ask the question again or offer a way out of my function There are several questions being asked here, about name, address, etc., each element has its own validation rules, and each question needs and answer I know how to write the if statements to decide if the data entered is valid or not, but I need a way to deal with what happens when it is NOT valid. I'd like to be able to just ask the question again, and re-validate the new input or offer a "press q to quit" option q to quit is no big deal, but it doesn't make sense to ME to clutter up the code with a whole set of functions that each just ask one question and return a value. Especially since when my app is done there will likely be over a hundred of these type of one or two line functions. the names will be impossible to keep up with. Whats more, debugging and future upgrades will be a major PITA. The old GOTO syntax that everybody hates was ideal for this type of thing, if validation fails, just goto the question again and re-ask it. Based on my Internet research it looks like the only way you get GOTO capability is with an April Fools joke in 2004. So how do you do this? Rance _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor