Sage % symbol
I am a beginner to Sage. During learning Sage I found a code snippet here
for i in range(5):
print('%6s %6s %6s' % (i, i^2, i^3))
Can anybody explain why %() is used here ?
I am a beginner to Sage. During learning Sage I found a code snippet here
for i in range(5):
print('%6s %6s %6s' % (i, i^2, i^3))
Can anybody explain why %() is used here ?
This is a string formatting symbol. Suppose you have several items a,b,c in Sage (or Python more generally) you wish to print, but you want them to be printed in the midst of a longer statement.
a, b, c, = 1, 2, 3
Then to do so, rather than something error-prone like this
print('My first number is ' + str(a) + ' then I have ' + str(b) + ' and also ' + str(c))
or several variants thereon, it is easier and more adaptable to do
print('My first number is %s then I have %s and also %s' %(a, b, c))
This says that you replace each %s with the next item in the tuple (a,b,c). If now you realized they were in the wrong order, it's very easy to fix that:
print('My first number is %s then I have %s and also %s' %(c, b, a))
Note that %s is for string formatting; there are other ways to format numbers as well. The one in your example is padding with extra spaces.
print('My first number is %6s then I have %6s and also %6s' %(a, b, c))
See this link for an active example.
The Python documentation for this is quite technical; see this site for some good examples.
Thank you for the answer. I found some documentation about %here. It basically says that % is a operator. Similar to operator overloading in C++, it is a modulus operator in Sage too. Can you update your answer to reflect the similar view as of the documentation. It is more clearer.
Note that the % is kind of being deprecated in favor of the format method, your snippet will be replaced as follows:
sage: for i in range(5):
....: print('{:>6} {:>6} {:>6}'.format(i, i^2, i^3))
0 0 0
1 1 1
2 4 8
3 9 27
4 16 64
Please start posting anonymously - your entry will be published after you log in or create a new account.
Asked: 2017-04-10 06:17:36 +0100
Seen: 1,519 times
Last updated: Apr 10 '17
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.