Fw: Re: User input masks - Access Style

flebber flebber.crue at gmail.com
Mon Dec 27 06:19:43 EST 2010


On Dec 27, 7:57 pm, linmq <li... at neusoft.com> wrote:
> > On 2010-12-27, flebber  <flebber.c... at 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



More information about the Python-list mailing list