On Fri, Apr 22, 2011 at 10:08:20AM -0400, Mel wrote:
> Westley Martínez wrote:
> > On Fri, Apr 22, 2011 at 04:49:19PM +1000, Chris Angelico wrote:
> 
> >> Uhhhh.... NO. NO NO NO. What if someone enters "os.exit()" as their
> >> number? You shouldn't eval() unchecked user input!
> >> 
> >> Chris Angelico
> > 
> > Right, there's no way to check you're getting a number, however using:
> > 
> > a = int(input('enter a number > ')) # use float() for floats
> > 
> > will raise an exception if it can't convert the string.
> 
> But sys.exit() doesn't return a string.  My fave is
> 
> Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
> [GCC 4.4.3] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import sys
> >>> a = int (input ('enter a number >'))
> enter a number >sys.setrecursionlimit(1)
> Exception RuntimeError: 'maximum recursion depth exceeded while calling a 
> Python object' in <type 'exceptions.RuntimeError'> ignored
> Exception RuntimeError: 'maximum recursion depth exceeded while calling a 
> Python object' in <type 'exceptions.RuntimeError'> ignored
> Error in sys.excepthook:
> RuntimeError: maximum recursion depth exceeded
> 
> Original exception was:
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> RuntimeError: maximum recursion depth exceeded while calling a Python object
> >>> int (0)
> Exception RuntimeError: 'maximum recursion depth exceeded while calling a 
> Python object' in <type 'exceptions.RuntimeError'> ignored
> Exception RuntimeError: 'maximum recursion depth exceeded while calling a 
> Python object' in <type 'exceptions.RuntimeError'> ignored
> Error in sys.excepthook:
> RuntimeError: maximum recursion depth exceeded
> 
> Original exception was:
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> RuntimeError: maximum recursion depth exceeded while calling a Python object
> >>> 
> 
> 
>       Mel.
> 

What?
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to