## 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.