Challenge 3: REPL Exploration — Possible Solution ==================================================================== $ python3 >>> 7 * 6 42 >>> "Py" + "thon" 'Python' >>> 10 / 3 3.3333333333333335 >>> len("hello") 5 >>> "ab" * 3 'abababab' >>> exit() WHAT EACH ONE RETURNED ------------------------------ 7 * 6 -> 42 — ordinary arithmetic, evaluated immediately with no print() needed, since the REPL automatically displays the result of any expression typed at the prompt. "Py" + "thon" -> 'Python' — the + operator concatenates strings directly; note the REPL displays string results with quotes around them (unlike print(), which would show Python with no quotes) — a genuine, useful REPL-specific detail to notice. 10 / 3 -> 3.3333333333333335 — division with / always produces a float result in Python 3, even when dividing two whole numbers, unlike some other languages where integer division truncates by default. len("hello") -> 5 — a built-in function call, showing the REPL works identically for function calls as it does for plain expressions. "ab" * 3 -> 'abababab' — multiplying a string by an integer repeats it that many times, a genuinely different (and, for many languages, unexpected) meaning for * when applied to a string instead of two numbers. WHY THIS WORKS AS AN ANSWER ------------------------------ Each expression is evaluated immediately at the prompt with no print() call needed and no script file created — exactly this chapter's point about the REPL being a quick scratchpad, distinct from writing and running a .py file. Picking a mix of arithmetic, string operations, and a function call demonstrates the REPL handles all of these identically, with its result auto-displayed each time.