Bird
Raised Fist0
Pythonprogramming~10 mins

Taking input using input() in Python - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Taking input using input()
Start Program
Call input()
Wait for user to type
User presses Enter
input() returns string
Store input in variable
Use input value
End Program
The program pauses to get text from the user, then stores it as a string for later use.
Execution Sample
Python
name = input("Enter your name: ")
print("Hello, " + name + "!")
This code asks the user for their name and then greets them.
Execution Table
StepActionInput/OutputVariable 'name' ValueNotes
1Call input() with promptDisplays: Enter your name: '' (empty)Program waits for user input
2User types 'Alice' and presses EnterUser input: Alice'' (still empty)input() is reading user input
3input() returns 'Alice'Returns: 'Alice''Alice'input() call finishes
4Assign returned value to 'name'No output'Alice'Variable 'name' now holds 'Alice'
5Execute print statementOutputs: Hello, Alice!'Alice'Program prints greeting
6Program endsNo output'Alice'No more code to run
💡 Program ends after printing greeting.
Variable Tracker
VariableStartAfter input()After assignmentFinal
name'' (empty)'Alice''Alice''Alice'
Key Moments - 3 Insights
Why does the program wait after calling input()?
Because input() pauses the program to let the user type something. This is shown in execution_table step 1 and 2 where the program waits and reads user input.
What type of data does input() return?
input() always returns a string, even if the user types numbers. This is clear in step 3 where input() returns 'Alice' as a string.
When does the variable 'name' get its value?
The variable 'name' gets the value right after input() returns, at step 4 when the returned string is assigned to 'name'.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of 'name' immediately after input() returns?
A'' (empty string)
B'Alice'
CNone
DThe prompt text
💡 Hint
Check step 3 and 4 in the execution_table to see when 'name' changes.
At which step does the program display the prompt 'Enter your name:'?
AStep 4
BStep 2
CStep 1
DStep 5
💡 Hint
Look at the 'Input/Output' column in the execution_table for the prompt display.
If the user typed 'Bob' instead of 'Alice', how would the variable_tracker change?
AThe 'name' variable would be 'Bob' after assignment
BThe 'name' variable would be 'Alice' regardless
CThe 'name' variable would be empty
DThe program would crash
💡 Hint
Variable_tracker shows the value assigned after input; changing input changes the assigned value.
Concept Snapshot
input(prompt) pauses program and shows prompt
User types text and presses Enter
input() returns the typed text as a string
Assign returned string to a variable
Use variable later in program
Always returns string, convert if needed
Full Transcript
This program starts by calling input() with a prompt asking the user to enter their name. The program pauses and waits for the user to type something and press Enter. When the user types 'Alice' and presses Enter, input() returns the string 'Alice'. This string is then assigned to the variable 'name'. Finally, the program prints a greeting using the value stored in 'name'. The program ends after printing. The key points are that input() always returns a string and the program waits for user input before continuing.

Practice

(1/5)
1. What does the input() function do in Python?
easy
A. It stops the program immediately.
B. It prints text on the screen.
C. It asks the user to type something and returns it as text.
D. It converts text to numbers automatically.

Solution

  1. Step 1: Understand the purpose of input()

    The input() function waits for the user to type something and press Enter.
  2. Step 2: Identify what input() returns

    It always returns the typed data as a string (text), not numbers or other types.
  3. Final Answer:

    It asks the user to type something and returns it as text. -> Option C
  4. Quick Check:

    input() returns text [OK]
Hint: Remember: input() always returns text, never numbers directly [OK]
Common Mistakes:
  • Thinking input() prints text
  • Assuming input() stops the program
  • Believing input() converts text to numbers automatically
2. Which of the following is the correct way to ask the user for their name using input()?
easy
A. name = input Enter your name:
B. name = input('Enter your name: ')
C. name = input['Enter your name:']
D. name = input{Enter your name:}

Solution

  1. Step 1: Check the syntax of input() with prompt

    The prompt must be inside parentheses and quotes, like input('prompt').
  2. Step 2: Identify the correct option

    Only name = input('Enter your name: ') uses parentheses and quotes correctly to show the prompt.
  3. Final Answer:

    name = input('Enter your name: ') -> Option B
  4. Quick Check:

    Prompt text inside parentheses and quotes [OK]
Hint: Use parentheses and quotes for prompt text in input() [OK]
Common Mistakes:
  • Missing parentheses around prompt
  • Using brackets or braces instead of parentheses
  • Not putting prompt text inside quotes
3. What will be the output of this code if the user types 25 when asked?
age = input('Enter your age: ')
print(age + 5)
medium
A. 30
B. 255
C. 5
D. TypeError

Solution

  1. Step 1: Understand input() returns a string

    The variable age will be the string '25', not the number 25.
  2. Step 2: Analyze the print statement

    age + 5 attempts to add a string and an integer. In Python, this causes a TypeError, but if the code was print(age + '5'), it would concatenate to '255'. Since the code is print(age + 5), it raises a TypeError.
  3. Final Answer:

    TypeError -> Option D
  4. Quick Check:

    String + int causes TypeError [OK]
Hint: input() returns text; convert to int before adding numbers [OK]
Common Mistakes:
  • Assuming input() returns number
  • Trying to add int to string without conversion
  • Expecting automatic type conversion
4. Find the error in this code snippet:
number = input('Enter a number: ')
result = number * 2
print(result)
medium
A. number is a string, multiplying repeats text instead of doubling number
B. input() should be replaced with print()
C. Missing parentheses in print statement
D. No error, code works fine

Solution

  1. Step 1: Identify the type of number

    The input() function returns a string, so number is text.
  2. Step 2: Understand what number * 2 does for strings

    Multiplying a string by 2 repeats it twice, so if user types '3', result is '33', not 6.
  3. Final Answer:

    number is a string, multiplying repeats text instead of doubling number -> Option A
  4. Quick Check:

    String * 2 repeats text, not math multiply [OK]
Hint: Convert input to int before math operations [OK]
Common Mistakes:
  • Assuming input returns number
  • Expecting string * 2 to double value
  • Ignoring type conversion
5. You want to ask the user for two numbers and print their sum. Which code correctly does this?
hard
A. a = int(input('First number: ')) b = int(input('Second number: ')) print(a + b)
B. a = input('First number: ') b = input('Second number: ') print(a + b)
C. a = input('First number: ') b = input('Second number: ') print(int(a) + b)
D. a = input('First number: ') b = int(input('Second number: ')) print(a + b)

Solution

  1. Step 1: Convert inputs to numbers

    To add numbers, convert both inputs from strings to integers using int().
  2. Step 2: Add the converted numbers

    Only a = int(input('First number: ')) b = int(input('Second number: ')) print(a + b) converts both inputs before adding, so it sums correctly.
  3. Final Answer:

    a = int(input('First number: ')) b = int(input('Second number: ')) print(a + b) -> Option A
  4. Quick Check:

    Convert both inputs to int before adding [OK]
Hint: Convert all inputs to int before math [OK]
Common Mistakes:
  • Adding strings instead of numbers
  • Converting only one input
  • Forgetting to convert inputs