[Python-bugs-list] [ python-Bugs-495094 ] evaluating integers inconsistently

noreply@sourceforge.net noreply@sourceforge.net
Wed, 19 Dec 2001 10:57:28 -0800


Bugs item #495094, was opened at 2001-12-19 08:44
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=495094&group_id=5470

Category: Python Interpreter Core
Group: Python 2.1.1
Status: Open
Resolution: None
Priority: 5
Submitted By: Fahri Basegmez (basegmez)
>Assigned to: Tim Peters (tim_one)
Summary: evaluating integers inconsistently

Initial Comment:
Python 2.1.1 (#20, Jul 20 2001, 01:19:29) [MSC 32 bit 
(Intel)] on win32
Type "copyright", "credits" or "license" for more 
information.
IDLE 0.8 -- press F1 for help
>>> eval('01234')
668
>>> for i in range(10):print eval('0' + str(i))

0
1
2
3
4
5
6
7
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in ?
    for i in range(10):print eval('0' + str(i))
  File "<string>", line 1
    08
     ^
SyntaxError: unexpected EOF while parsing
>>> 08
SyntaxError: invalid syntax
>>> 01
1
>>> 0123456
42798
>>> 0123456L
42798L
>>> 

eval function and Python interpreter evaluates 
integers/long integers inconsistenly.  It should be an 
error either for all cases or for none.

Fahri Basegmez

----------------------------------------------------------------------

>Comment By: Tim Peters (tim_one)
Date: 2001-12-19 10:57

Message:
Logged In: YES 
user_id=31435

Hmm.  What is your complaint here, exactly?  You showed a 
bunch of code but didn't point out anything that surprised 
me.  Do you know that integer literals beginning with "0" 
are in octal notation (so that the digits '8' and '9' 
aren't legal then, and 010 is decimal 8?).  Similarly, 
integer literals beginning with "0x" are in hex notation.  
A decimal integer literal cannot begin with 0.

----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=495094&group_id=5470