## Take control of your Python print() statements: part 1

In the last post, our program printed out the computed BMI with lots of precision (`24.489795918367346`

) and no additional information. In hindsight, it would have been more informative to tell the user that `A weight of 75 kg and a height of 1.75 meters equal a MBI if 24.5.`

In the next few posts we will learn how to create informative `print()`

statements.

### A basic example using .format()

Here is a basic script that divides a numerator by a denominator and prints the answer.

```
num = 1
denom = 3
val = num/denom
print(val)
```

The output of this code is: `0.3333333333333333`

.

Let’s improve the output by using the `.format()`

string method. A **string** is any type of text that is inputed between quotation marks (e.g., `x = "This is a string"`

). A **method** is a Python function that belongs to specific class or data type (e.g., `x.upper()`

results in `"THIS IS A STRING"`

because the `.upper()`

method converts all the letters in the variable `x`

to upper-case).

Here is our new version using the `.format()`

method:

```
print('{} divided by {} equals {}'.format(num, denom, val))
```

The output is: `1 divided by 3 equals 0.3333333333333333`

. Much more informative!

Let’s figure out how the `.format()`

method works. The first part of the text in the `print()`

function is in quotation marks, making it a string (`'{} divided by {} equls {}'`

). You will note that this string contains three pairs of curly brackets (i.e., `{}`

). The curly brackets are how we inform the `.format()`

method where we want to add text. The second part of the text in the `print()`

function calls the `.format()`

method and the three variables we want to be printed. When used in this way, `.format()`

fills the curly brackets sequentially.

We can specify the order the variables are printed in (although the answer is nonsensical in this example here):

```
print('{2} divided by {1} equals {0}'.format(num, denom, val)))
```

The output is: `0.3333333333333333 divided by 3 equals 1`

.

Remember that Python starts counting at zero. So `{2}`

will be where the `.format()`

method inserts the third variable provided, i.e., `val`

. A similar logic explains why `denom`

is inserted in the second pair of curly brackets and `num`

in the third.

As a final variant, you can label the curly brackets. In this case, the order of the variables in `.format()`

does not matter.

```
print('The numerator is {numerator} and the denominator is {denominator}.'.format(denominator=denom, numerator=num))
```

The output is: `The numerator is 1 and the denominator is 3.`

### Conclusion

With the introduction of the `.format()`

string method, we have learned how to generate more informative print statements. We learned to use double curly brackets to indentify the place in a string where we want to add text. In our examples, we specified the text to add by providing the name of variables (i.e., `num`

, `denom`

and `val`

), but you can also provide numerical and text values (e.g., `print('{} and {}'.format(1, 'hello'))`

). Give it a try and see what happens! Play around with the aspects of the `.format()`

string method that we introduced here before moving on to the next lesson.