Use the built-in input() to pause execution, show a prompt, and read a line from the console. The function always returns a string, so convert the value when you need numbers or other types.

Method 1: Read a single string

Step 1: Prompt the user with input().

name = input("Enter your name: ")

Step 2: Display or use the value. For formatted output, use f-strings (PEP 498).

print(f"Hello {name}")

Option 2: Read numbers with type conversion

Step 1: Convert to an integer using int().

age = int(input("Enter your age: "))

Step 2: Convert to a floating-point value with float() when decimals are expected.

price = float(input("Enter the price: "))

Step 3: Validate and retry on bad input using try/except.

while True:
    raw = input("Enter a number: ")
    try:
        value = float(raw)
        break
    except ValueError:
        print("Invalid number, please try again.")

Approach 3: Collect multiple values on one line

Step 1: Ask for a comma-separated list of numbers.

raw = input("Enter numbers separated by commas: ")  # e.g., 10,20,30

Step 2: Split the string and map each piece to int (or float).

numbers = list(map(int, (x.strip() for x in raw.split(","))))
print(numbers)  # [10, 20, 30]

Step 3: For space-separated input, split on whitespace instead.

nums = list(map(int, input("Enter numbers: ").split()))
print(nums)

Way 4: Parse a Python-style list literal

Step 1: Prompt the user to type a list literal like [1, 2, 3].

raw_list = input("Enter a list (e.g., [1, 2, 3]): ")

Step 2: Safely parse the literal with ast.literal_eval.

import ast

try:
    data = ast.literal_eval(raw_list)  # Works for lists, tuples, dicts, numbers, strings
    if not isinstance(data, list):
        raise TypeError("Please enter a list like [1, 2, 3].")
except (ValueError, SyntaxError, TypeError) as e:
    print(f"Invalid input: {e}")
else:
    print(data)

Step 3: Optionally enforce numeric items.

if not all(isinstance(x, (int, float)) for x in data):
    print("List must contain only numbers.")

Path 5: Gather multiple inputs interactively (multi-prompt)

Step 1: Initialize an empty list.

values = []

Step 2: Prompt repeatedly and stop on a sentinel like q or an empty line.

print("Enter numbers (press Enter with no text or type 'q' to finish).")
while True:
    raw = input("Value: ").strip()
    if raw in {"", "q", "Q"}:
        break
    try:
        values.append(float(raw))
    except ValueError:
        print("Not a number, try again.")
print(values)

Practical tips

  • Keep prompts explicit about format to reduce errors.
  • Strip whitespace before parsing to avoid subtle failures.
  • Prefer validation loops for any user-facing numeric input.
  • Use f-strings for clear, readable messages and results.

With these patterns, you can capture strings, numbers, and lists reliably from the console and handle invalid input without crashing. Start with input(), convert and validate as needed, and choose a collection strategy that matches how you want users to enter data.