Noob question: Is all this typecasting normal?
vk
vminch at gmail.com
Fri Jan 2 17:36:04 EST 2009
> You might better do
>
> bet = int(raw_input("Enter your bet"))
>
> because then you don't need to later on convert bet again and again.
This is all fine until you give it to an end-user.
This is what I picture:
$ ./script.py
Enter your bet: $10
.. or perhaps "ten", "all", or a jillion other tainted inputs.
Python will try to cast these strings, but will slap you with a
ValueError instead (an error of some sort, at least).
There needs to be a "user_io" or "sanitize" module in the standard
library to take care of this stuff.
Like:
import userio
logic = userio.userio()
number = logic.getNumeric("blah: ") # will offer the user a "re-do" in
case of bad input
number = logic.forceGetNumeric("Enter your bet!: ") # even if input is
tainted, will return some number
text = logic.getText("blargh: ") # return all text
text = logic.setValidText("[A-Za-z]")
text = logic.forceGetText("blargh: ") # return some text, strips
invalid chars
... but there isn't, as far as I know.
More information about the Python-list
mailing list