On Dec 27, 7:57 pm, linmq <li...@neusoft.com> wrote: > > On 2010-12-27, flebber <flebber.c...@gmail.com > wrote: > > > > Is there anyay to use input masks in python? Similar to the function > > > found in access where a users input is limited to a type, length and > > > format. > > > > So in my case I want to ensure that numbers are saved in a basic > > > format. > > > 1) Currency so input limited to 000.00 eg 1.00, 2.50, 13.80 etc > > > Some GUIs provide this functionality or provide callbacks for validation > > functions that can determine the validity of the input. ? don't know of > > any modules that provide "formatted input" in a terminal. ?ost terminal > > input functions just read from stdin (in this case a buffered line) > > and output that as a string. ?t is easy enough to validate whether > > terminal input is in the proper. > > > Your example time code might look like: > > > ... import re > > ... import sys > > ... > > ... # get the input > > ... print("Please enter time in the format 'MM:SS:HH': ", end="") > > ... timeInput = input() > > ... > > ... # validate the input is in the correct format (usually this would be in > > ... # loop that continues until the user enters acceptable data) > > ... if re.match(r'''^[0-9]{2}:[0-9]{2}:[0-9]{2}$''', timeInput) == None: > > ... ??print("I'm sorry, your input is improperly formated.") > > ... ??sys.exit(1) > > ... > > ... # break the input into its componets > > ... componets = timeInput.split(":") > > ... minutes = int(componets[0]) > > ... seconds = int(componets[1]) > > ... microseconds = int(componets[2]) > > ... > > ... # output the time > > ... print("Your time is: " + "%02d" % minutes + ":" + "%02d" % seconds + > > ":" + > > ... ??"%02d" % microseconds) > > > Currency works the same way using validating it against: > > r'''[0-9]+\.[0-9]{2}''' > > > > For sports times that is time duration not a system or date times > > > should I assume that I would need to calculate a user input to a > > > decimal number and then recalculate it to present it to user? > > > I am not sure what you are trying to do or asking. ?ython provides time, > > date, datetime, and timedelta objects that can be used for date/time > > calculations, locale based formatting, etc. ?hat you use, if any, will > > depend on what you are actually tring to accomplish. ?our example doesn't > > really show you doing much with the time so it is difficult giving you any > > concrete recommendations. > > > yes you are right I should have clarified. The time is a duration over > > distance, so its a speed measure. Ultimately I will need to store the > > times so I may need to use something likw sqlAlchemy but I am nowehere > > near the advanced but I know that most Db's mysql, postgre etc don't > > support time as a duration as such and i will probably need to store > > it as a decimal and convert it back for the user. > > -- > >http://mail.python.org/mailman/listinfo/python-list > > You can let a user to separately input the days, hours, minutes, etc. > And use the type timedelta to store the time duration: > > datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, > hours[, weeks]]]]]]]) > > Beyond 2.7, you can use timedelta.total_seconds() to convert the time > duration to a number for database using. And later restore the number > back to timedelta by timedelta(seconds=?). > > Refer > to:http://docs.python.org/library/datetime.html?highlight=timedelta#time... > > -- > > --------------------------------------------------------------------------------------------------- > Confidentiality Notice: The information contained in this e-mail and any > accompanying attachment(s) > is intended only for the use of the intended recipient and may be > confidential and/or privileged of > Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader of > this communication is > not the intended recipient, unauthorized use, forwarding, printing, storing, > disclosure or copying > is strictly prohibited, and may be unlawful.If you have received this > communication in error,please > immediately notify the sender by return e-mail, and delete the original > message and all copies from > your system. Thank you. > ---------------------------------------------------------------------------------------------------
Very helpful thanks -- http://mail.python.org/mailman/listinfo/python-list