<p>I need to find out how to format numbers as strings. My code is here:</p>

<pre><code>return str(hours)+":"+str(minutes)+":"+str(seconds)+" "+ampm
</code></pre>

<p>Hours and minutes are integers, and seconds is a float.  the str() function will convert all of these numbers to the tenths (0.1) place.  So instead of my string outputting "5:30:59.07 pm", it would display something like "5.0:30.0:59.1 pm".</p>

<p>Bottom line, what library / function do I need to do this for me?</p>

Starting with Python 3.6, formatting in Python can be done using
formatted string literals
or
f-strings
:
```
```
hours, minutes, seconds = 6, 56, 33
f'{hours:02}:{minutes:02}:{seconds:02} {"pm" if hours > 12 else "am"}'
```
```
or the
```
str.format
```
function starting with 2.7:
```
```
"{:02}:{:02}:{:02} {}".format(hours, minutes, seconds, "pm" if hours > 12 else "am")
```
```
or the
string formatting
```
%
```
operator
for even older versions of Python, but see the note in the docs:
```
```
"%02d:%02d:%02d" % (hours, minutes, seconds)
```
```
And for your specific case of formatting time, there’s
```
time.strftime
```
:
```
```
import time

t = (0, 0, 0, hours, minutes, seconds, 0, 0, 0)
time.strftime('%I:%M:%S %p', t)
```
```