# integer digits range problem (see sage error below) Thanks!!!

.

sage: for i in [9,10,11]:
....:     i.digits(base=3)
....:
[0, 0, 1]
[1, 0, 1]
[2, 0, 1]
sage: for i in range(9,12):
....:     i.digits(base=3)
....:
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-2-e5aab74726b7> in <module>()
1 for i in range(Integer(9),Integer(12)):
----> 2     i.digits(base=Integer(3))
3

AttributeError: 'int' object has no attribute 'digits'
sage: [9,10,11]==range(9,12)
True

edit retag close merge delete

1

Too bad I need 60 points to post a png file which is much more readable than the cut and paste from the latest sage math (8.7 I believe) for windows.. I'm running windows 7. For some reason, for i in [9,10,11]: i.digits(base=3) Works Jusf Fine However; for i in range(9,12): i.digits(base=3) Raises an Error Thanks William Stein and all others involved in the development for the free software. Love Sage Math, Sage Math Cell, and Python!!!

( 2019-06-03 20:14:36 -0500 )edit

The pasted code (once formatted as code) is much more useful than a png file.

With code pasted as text, others can in turn copy and paste pieces of code to their Sage sessions to explore the problem.

Code pasted as a png might "look nice" but is hardly usable for practical purposes.

( 2019-06-05 04:34:02 -0500 )edit

Sort by ยป oldest newest most voted

replace range with srange and it works in sage math for windows 8.7

more

When you type 9 in Sage, the preparser makes it a Sage integer, that have a .digit method. The range function returns Python ints, who do not have such a method. As you discovered, the srange function returns Sage integers.

more

Thanks! That makes sense now.

( 2019-06-04 06:04:40 -0500 )edit