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.
Evaluate the expression: The script evaluates 5 * 8, producing the value 40 internally.
Check visibility: Because the expression is in a script and is not wrapped in print(), its result is not displayed.
Request 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.
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.
Expecting every expression in a script to appear on the screen
Automatic expression display belongs to the interactive interpreter. Scripts do not display expression results automatically.
Fix:
Wrap the expression in print() when the result should be visible.Assuming that no visible output means no evaluation occurred
An expression in a script can be evaluated without producing visible output.
Fix:
Separate the question of whether an expression is evaluated from the question of whether its result is displayed.Relying on interactive behavior when writing a script
Interactive exploration and script execution have different output behavior.
Fix:
Add 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
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
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
- The interactive interpreter automatically displays the results of expressions.
- A script can evaluate an expression without displaying its result.
- Use print() in a script when an expression result must be visible.
- The difference is intentional: interactive mode supports quick exploration, while scripts keep output predictable and controlled.
- When 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.