How do you print superscript in Python?
I am aware of the \xb function in python, but it does not seem to work for me. I am aware that I may need to download a third party module to accomplish this, if so, which one would be best?
I am currently writing a binomial expansion solver, to try and use skills which I am teaching myself. The problem arises when I attempt to display the user input-ed expansion to the use for confirmation. Currently I am having to print the expression like so:
var1 = input("Enter a: ")
var2 = input("Enter b: ")
exponent = input("Enter n: ")
a = int(var1)
b = int(var2)
n = int(exponent)
expression = ('(%(1)dx%(2)d)^%(3)d') %\
{'1' : a, '2' : b, '3' : n}
print(expression)
confirmation = input(str("Is this correctt? Y/N "))
This prints (2x4)^5, whereas I'd prefer the index to be printed as superscript. How can this be done?
Solution 1:
You need to use a 'format' type thing. Use {}\u00b2".format(area))" and the
{}becomes a
²`. Here is an example:
print("The area of your rectangle is {}cm\u00b2".format(area))
The end of the code will print cm²
. You can change the large 2 at the end to other numbers for a different result.
I do not know how to do a lower subscript though.
Solution 2:
In Python 3.6+ (mentioned only because the example uses f-strings that are not available in previous versions) named Unicode characters provide an easy to write, easy to read way to do this. Here is a list.
Example:
f'\N{GREEK SMALL LETTER GAMMA}={density:.2f} t/m\N{SUPERSCRIPT THREE}'
yields something like
γ=1.20 t/m³
Solution 3:
You could use sympy
module that does necessary formatting for you. It supports many formats such as ascii, unicode, latex, mathml, etc:
from sympy import pretty_print as pp, latex
from sympy.abc import a, b, n
expr = (a*b)**n
pp(expr) # default
pp(expr, use_unicode=True)
print(latex(expr))
print(expr.evalf(subs=dict(a=2,b=4,n=5)))
Output
n
(a*b)
n
(a⋅b)
$\left(a b\right)^{n}$
32768.0000000000