Invalid literal for int error in Python

David Y.

The Problem

My Python script fails with this error:

ValueError: invalid literal for int() with base 10: ''.

What causes this and how do I fix it?

The Solution

This error message arises from a failure to convert an empty string ('') to an integer. This might arise in the following script if the user presses Enter without providing any input:

user_input = input("Enter a whole number: ") print(f"Your number is 1 smaller than {1 + int(user_input)}")

To prevent this error, we should check that our string is not empty before passing it to int() for conversion:

user_input = input("Enter a whole number: ") try: print(f"Your number is 1 smaller than {1 + int(user_input)}") except ValueError: print("Please provide a valid number.")

A similar error might arise if the user provides a number with decimal places, such as 1.0. We can avoid this error by converting the string to a float before converting it to an integer:

user_input = input("Enter a whole number (non-whole numbers will be rounded down): ") try: print(f"Your number is 1 smaller than {1 + int(float(user_input))}") except ValueError: print("Please provide a valid number.")
Join the discussionCome work with us
Share on Twitter
Bookmark this page
Ask a questionImprove this Answer

Related Answers

A better experience for your users. An easier life for your developers.

    TwitterGitHubDribbbleLinkedin
© 2023 • Sentry is a registered Trademark
of Functional Software, Inc.