# Printing subscript and superscript in Python

Contents:

Subscript and superscript are important when you are dealing with different types of formulas. They are useful in math, chemistry, etc.

In Python, there is a method called maketrans. It creates a one to one mapping table with characters and their replacements.

``replace = str.maketrans("123", "ABC")``

This method will replace 1 to A, 2 to B, and 3 to C. Let’s take a look.

``````numbers_to_letters = str.maketrans("123", "ABC")
print("Question 1, point 2 and 4".translate(numbers_to_letters))``````

In this case, numbers 1 and 2 are going to be replaced, but 4 doesn’t have a replacement, so it will stay 4.

`Question A, point B and 4`

## Printing subscript

Similarly, you can convert numbers to subscript. Let’s use this formula for ethanol:

``````subscript = str.maketrans("0123456789", "₀₁₂₃₄₅₆₇₈₉")
print("C2H5OH".translate(subscript))``````

This code will replace all numbers to subscript, as it should be in the chemical formula.

`C₂H₅OH`

## Printing superscript

You can also convert a number to superscript. In this case, we are going to use a formula to calculate the area of a circle.

`πr²`

In our example, the formula is written this way:

`PIr2`

We are going to convert 2 to superscript, and PI to π. We can’t convert PI with maketrans because the first two maketrans arguments should be the same length. In this case, let’s use the replace function.

``````superscript = str.maketrans("0123456789", "⁰¹²³⁴⁵⁶⁷⁸⁹")
print("PIr2".translate(superscript).replace('PI', 'π'))``````

The result is:

`πr²`

## Unicode subscripts and superscripts

Another way to achieve the same result is to use the Unicode subscripts and superscripts.

### For subscripts

`U+207x`

The letter “x” represents a subscript number.

### For superscripts

`U+208x`

The letter “x” represents a superscript number.

This is the full table of Unicode characters:

Let’s implement it into Python.

``print(u'C\u2082H\u2085OH')``

The result is the same as before:

`C₂H₅OH`

Now, let’s create the second formula:

``print(u'\u03C0r\u00B2')``

U+03C0 is a Unicode character for the greek letter PI and U+00B2 for square root. As you can see from the table, the power of 2 and 3 have different notation than numbers from 4 to 9.

The result:

`πr²`