The print() Function: Displaying Output
The interactive interpreter automatically prints expression results; scripts do not.
Two Ways to Run Python
The same expression can behave differently depending on where you run it. In Python's interactive interpreter, an expression result is automatically displayed. In a script, the expression is evaluated, but its result is not displayed unless you explicitly use print().
Automatic Display in Exploration
The interactive interpreter is designed for quick exploration. When you type an expression and submit it, the interpreter evaluates that expression and automatically shows its result. The important word is automatic: you do not need to ask separately for the result to be displayed. This makes it convenient to test an idea, see the result immediately, and adjust your thinking while exploring.
40The visible 40 in this example comes from the interactive interpreter's automatic display behavior. The expression itself is 5 * 8; the interpreter supplies the visible result because the expression was entered interactively.
Scripts Require an Explicit Request
A script has a different output rule. An expression in a script is evaluated, but its result produces no visible output unless the expression is wrapped in print(). This is intentional design, not a bug or an oversight. Scripts are meant to be predictable and controlled, so they display only what the program explicitly asks them to display.
Making a Calculation Visible
You place the expression 5 * 8 in a script and want the result to appear.
- 1Evaluate the expression
The script evaluates 5 * 8, producing the value 40 internally.
- 2Check visibility
Because the expression is in a script and is not wrapped in
print(), its result is not displayed. - 3Request output
Use
print(5 * 8)when the result should be visible while the script runs.
In a script, print(5 * 8) displays 40; 5 * 8 by itself does not display the result.
5 * 8The script evaluates the expression but shows no visible output.
print(5 * 8)The script explicitly requests that the result be displayed.
Choosing the Right Context
Use the execution context to predict what a learner or user will see. If the expression is typed directly into the interactive interpreter, expect its result to appear automatically. If the same expression is placed in a script, expect no visible result unless print() is used.
| Where the expression runs | Expression by itself | With print() |
|---|---|---|
| Interactive interpreter | The result is automatically displayed | The result is explicitly displayed |
| Script | The result is not visibly displayed | The result is displayed |
The visibility rule depends on whether the expression is interactive or part of a script.
Common mistake Expecting every expression in a script to appear on the screen
What it looks likeA script contains 5 * 8, but nothing is displayed.
Why it failsAutomatic expression display belongs to the interactive interpreter. Scripts do not display expression results automatically.
Do this insteadWrap the expression in print() when the result should be visible.
Common mistake Assuming that no visible output means no evaluation occurred
What it looks likeThe script contains an expression without print(), so the programmer concludes that Python ignored it.
Why it failsAn expression in a script can be evaluated without producing visible output.
Do this insteadSeparate the question of whether an expression is evaluated from the question of whether its result is displayed.
Common mistake Relying on interactive behavior when writing a script
What it looks likeAn expression displayed a result during experimentation, so the same expression is left alone in the script.
Why it failsInteractive exploration and script execution have different output behavior.
Do this insteadAdd print() to results that the script needs to communicate.
Prediction Practice
What do you think happens?
Predict what is visible when 5 * 8 is entered directly into the interactive interpreter.
Reveal answer
40 is displayed automatically
The interactive interpreter automatically displays expression results.
What do you think happens?
Predict what is visible when a script contains 5 * 8 without print().
Reveal answer
No visible output is produced
A script evaluates the expression but does not display its result unless print() is used.
For each case, decide whether the result is automatically visible. Case 1: 5 * 8 typed into the interactive interpreter. Case 2: 5 * 8 in a script. Case 3: print(5 * 8) in a script. Then explain which cases use explicit output.
Hints
- First identify whether the expression is interactive or in a script.
- Then check whether
print()explicitly requests visible output.
Controlled Program Output
- 1The interactive interpreter automatically displays the results of expressions.
- 2A script can evaluate an expression without displaying its result.
- 3Use
print()in a script when an expression result must be visible. - 4The difference is intentional: interactive mode supports quick exploration, while scripts keep output predictable and controlled.
- 5When debugging an unexpected lack of output, first check whether the expression is in a script and whether
print()is present.
Key Takeaways
- Interactive Python automatically displays expression results.
- Scripts evaluate expressions without displaying their results by default.
- Use
print()to make an expression result visible in a script. - The distinction prevents scripts from producing uncontrolled intermediate output.
- Always consider the execution context before predicting what will appear on the screen.