Exercise 1: Three Ways, One Line — Possible Solution ==================================================================== city = "Leeds" population = 812000 # Concatenation print(city + " has a population of " + str(population)) # .format() print("{} has a population of {}".format(city, population)) # f-string print(f"{city} has a population of {population}") Output: Leeds has a population of 812000 Leeds has a population of 812000 Leeds has a population of 812000 WHY THIS WORKS AS AN ANSWER ------------------------------ All three lines produce identical output because they all end up building the same string, just by different mechanisms. The concatenation version needs an explicit str(population) since + can't mix a string and an int directly. The .format() version relies on positional placeholders {} being filled in left-to-right by the arguments passed to .format(). The f-string version needs neither a str() call nor placeholder counting — population is simply dropped into {population} and Python converts it automatically, which is why f-strings are the shortest and least error-prone of the three.