You appear to be using Python 2.
a = 2
print("a %i" % a)
should give you the results you're looking for. Or, using the newer str.format()
method:
print("a {}".format(a))
In Python 3, your statement print("a",a)
will work as expected. Check your build system in Sublime to make sure you're calling python3
instead of python
. Run this code to see what version is actually being used:
import sys
print(sys.version)
To create a Python 3 build system, open a new file with JSON syntax and the following contents:
{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
Save the file as Packages/User/Python3.sublime-build
where Packages
is the folder opened when you select Sublime Text -> Preferences -> Browse Packages...
. You can now select Tools -> Build System -> Python3
and, assuming python3
is in your PATH
, you should build with the correct version.
If the build fails with an error that it can't find python3
, open Terminal and type
which python3
to see where it's installed. Copy the entire path and put it in the build system. For example, if which python3
returns /usr/local/bin/python3
, then the "cmd"
statement in your .sublime-build
file should be:
"cmd": ["/usr/local/bin/python3", "-u", "$file"],