Processing Math: Done
No jsMath TeX fonts found -- using unicode fonts instead.
This may be slow and might not print well.
Use the jsMath control panel to get additional information.
jsMath Control PanelHide this Message


jsMath
Differences between revisions 7 and 8
Revision 7 as of 2016-05-24 13:10:28
Size: 653
Editor: chapoton
Comment:
Revision 8 as of 2016-05-25 13:38:45
Size: 1258
Editor: chapoton
Comment: better
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
In version 7.2, SageMath is using the Python 2 syntax for print. It may soon switch to the Python 3 syntax, where print is a function. In version 7.2, SageMath is using the Python 2 syntax for print. Later (no schedule yet) it will switch to the Python 3 syntax, where print is a function.

It is therefore a good idea to try to use print in a way that is compatible with both Python 2 and Python 3.

The easiest way to achieve this is to always use '''print(...)''' with a single string inside the parentheses.

For example, '''print("He has eaten {} bananas".format(10))''' will work in both Python 2 and Python 3 and give the same result.

Here below are some instructions for going from Python2-only print to Python 3-only print. This can be used if you
add the line
{{{
from __future__ import print_function
}}}
as the first code line of your python files.

Behaviour of print

The behaviour of print differs in Python 2 and in Python 3.

In version 7.2, SageMath is using the Python 2 syntax for print. Later (no schedule yet) it will switch to the Python 3 syntax, where print is a function.

It is therefore a good idea to try to use print in a way that is compatible with both Python 2 and Python 3.

The easiest way to achieve this is to always use print(...) with a single string inside the parentheses.

For example, print("He has eaten {} bananas".format(10)) will work in both Python 2 and Python 3 and give the same result.

Here below are some instructions for going from Python2-only print to Python 3-only print. This can be used if you add the line

from __future__ import print_function

as the first code line of your python files.

To convert print from Python 2 to Python 3, you basically need to add parentheses, and write print("x") instead of print "x".

Here is a conversion table to help you adapt your code:

Python 2

Python 3

print a

print(a)

print a, b, c

print(a, b, c)

print x,

print(x, end=" ")

print >>sys.stderr, x

print(x, file=sys.stderr)

Python3-compatible code (last edited 2020-09-12 07:11:42 by chapoton)