I’ve experimented with it a bit, and it appears that algorithm that tells the grader to accept or reject an answer has been programmed to accept either
big_string = “The product was 10” or
big_string = “The product was 10.0”. It will not accept
big_string = “The product was 9” or
big_string = “The product was product”.
It’s as simple as that: The grader program is something like:
if big_string == "The product was 10" or big_string == "The product was 10.0":
show green check on check-box number 2 and light up the yellow "Next" button.
show red error message
So… The problem seems to be, how to compose a passing string to assign to the variable big_string.
Well, you have clearly already found one way, but, as you correctly surmise, that probably isn’t what the authors of the exercise had in mind: They want you to build up the string; there are many ways to do that, but they want you to do so using concatenation (i.e., using the + operator with strings.)
One difficulty seems to be that the problem uses the word product in two ways: as a string,
"The product was ", and as a variable,
product = float_1 * float_2.
Those two are separate, and unrelated. The variable name could have been bumblebee or olive, and the concepts would be the same:
olive = float_1 * float_2
big_string = "The product was " + str(olive)
… will pass the second part and get a “Next” just fine! So the “product” in the string and the variable named product have nothing to do with each other. It is a coincidence that they both consist of the same sequence of symbols.
When used with strings, + must have a string on both sides. That is the take-home lesson.