Differences between revisions 1 and 2
Revision 1 as of 2019-10-31 05:53:22
Size: 727
Editor: vdelecroix
Comment:
Revision 2 as of 2019-10-31 05:53:55
Size: 757
Editor: vdelecroix
Comment:
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
sage: type(range(5)) sage-8.9: type(range(5))
Line 15: Line 15:
{{{ {{{#!highlight python
Line 20: Line 20:
sage: range(5)[1::2] sage-9.0: range(5)[1::2]
Line 22: Line 22:
sage: type(range(5)) sage-9.0: type(range(5))

Warning:

Starting from version 9.0, the default distributed version of Sage is using Python 3. See Python3-Switch for more information.

Main caveat

range and xrange

In Python range is a function that return a list.

   1 sage-8.9: range(5)
   2 [0, 1, 2, 3, 4]
   3 sage-8.9: type(range(5))
   4 <type 'list'>

In Python 3, range is an object that somehow behave as a list (ie elements can still be acessed with square bracket, it has a length, etc) but it is not a list.

   1 sage-9.0: range(5)
   2 range(0, 5)
   3 sage-9.0: range(5)[2]
   4 2
   5 sage-9.0: range(5)[1::2]
   6 range(1, 5, 2)
   7 sage-9.0: type(range(5))
   8 <class 'range'>

The iterator xrange is no longer valid in Python 3.

Python3-user (last edited 2020-01-02 08:29:00 by chapoton)