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 1 and 9 (spanning 8 versions)
Revision 1 as of 2016-05-24 12:37:43
Size: 611
Editor: chapoton
Comment: creation
Revision 9 as of 2016-05-25 13:39:49
Size: 1284
Editor: chapoton
Comment:
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. 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.
Line 7: Line 7:
To convert from python2 to python3, you basically need to add parentheses, and write print("x") instead of print "x". 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 Python 2-only print to Python 3-only print. The Python 3 syntax can be used right now if you
add the line
{{{
from __future__ import print_function
}}}
as the first code line of your python files.

||<#FFFF66>To convert '''print''' from Python 2 to Python 3, you basically need to add parentheses, and write '''print("x")''' instead of '''print "x"'''.||
Line 11: Line 24:
|| Python 2 || Python 3 || ||<#98FF98> Python 2 ||<#98FF98> Python 3 ||
|| print a || print(a) ||
Line 13: Line 27:
||print "%03d" % 7 || print("{:03d}".format(7)) ||

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 Python 2-only print to Python 3-only print. The Python 3 syntax can be used right now 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)