Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to take user input in Python

Understanding User Input in Python

To make your program interactive and dynamic, you might want to allow users to feed in information via their keyboard. This is referred to as user input. Python provides a built-in function called input() for this purpose. This function pauses your program and waits for the user to enter some text. Once Python receives the user's input, it stores it in a variable to facilitate its use.

In this blog, we will learn how to take user input in Python, so buckle up and let's get started!

Using the input() Function

Consider the input() function as a way for your program to have a chat with the user. Your program asks a question, waits for the response, and then carries on when the user provides some information. Here's our first simple code example:

name = input("What's your name? ")
print("Hello, " + name + "!")

In this code, "What's your name? " is the message you present to the user, inviting them to type in their name. Whatever they type is treated as a string and stored in the variable name, and then printed out in the greeting.

Considering Data Types with User Input

In Python, the input() function always returns a string data type. So, if you want the user to input a number and plan to use that number in a mathematical operation, you need to convert the string to a numerical data type. This is where int() and float() functions come in handy.

age = input("What's your age? ")
age = int(age)

Here, the user's input is initially stored as a string. But we then convert it to an integer using the int() function. If we didn't do this, Python would raise a TypeError if we tried to use age in a mathematical operation.

Using User Input to Control Flow

User input becomes incredibly powerful when combined with conditional statements. Conditional statements are used to perform different actions based on different conditions. This is like a fork in the road. Depending on the user's input, your program can take different paths and perform different operations.

Let's consider an example of a simple program that checks if the user is above 18 years old:

age = int(input("What's your age? "))
if age >= 18:
    print("You are old enough to vote!")
else:
    print("Sorry, you are too young to vote.")

In this code, the program asks for the user's age. If they are 18 or older, the program prints a message telling them they can vote. If they are younger than 18, it tells them they are too young.

Handling Errors in User Input

It's crucial to consider that users might not always provide the expected input. For instance, if your program asks for a number and the user types a word, you'll get an error when your program tries to convert the input to an integer. Python provides try/except blocks to handle such situations.

try:
    age = int(input("What's your age? "))
except ValueError:
    print("That's not a valid number!")

Here, the try block contains the code that could potentially raise an error. The except block tells Python what to do if a specific error (ValueError) occurs.

Conclusion

To bring our Python user input journey to a close, imagine yourself as a chef in a restaurant. Your patrons (users) are giving you their orders (inputs). As a good chef, you take these orders, perhaps transform them (convert data types), combine them with other ingredients (process the input), and, if there's an issue (error), you handle it gracefully. Just like cooking, programming is a blend of science and art that creates something useful and meaningful out of individual, raw ingredients. So, keep practicing, keep experimenting, and most importantly, keep cooking up great code!