Skip to content

RESOURCES / BLOG

How Do I Convert a String to an Integer in Python?

Hey Python pros,

I’m a beginner and running into a basic but frustrating issue. I have a value like "123" (which is a string), but I want to use it as a number for calculations, like adding, multiplying, etc.

Every time I try, Python complains about types. 

So… how do I convert a string to an integer in Python the right way? Also, how do I handle situations where the string might not actually be a number?

Appreciate the help!

Great question! This is one of the most common problems for beginners, and it’s awesome you’re catching it early. Python is strict about types, so if you’re trying to do math with a string like "123", you need to convert it into an integer first.

In Python, the built-in function int() is used to convert a string that looks like a number into an integer:

number_str = "123"

number_int = int(number_str)

print(number_int + 10# Output: 133Code language: PHP (php)

Let’s say you accidentally try to convert something like this:

int("abc")  # ValueError!

This throws a ValueError, because "abc" isn’t a valid number.

If there’s a chance the string isn’t numeric, wrap it in a try block:

value = "42"

try:

    number = int(value)

    print("Converted:", number)

except ValueError:

    print("That's not a number!")Code language: PHP (php)

This is useful when dealing with user input or reading from files.

Let’s say you extract metadata from an image and get the width as a string:

metadata = {"width": "800"}

width = int(metadata["width"])

print("Image width:", width * 2# Resize logicCode language: PHP (php)

This kind of conversion is common in image processing scripts and web tools that handle dimensions, sizes, or formats.

Python’s int() is a bit picky. This will fail:

int("  123  ")       # Works

int("123.45")        # ValueError

int("$123")          # ValueErrorCode language: PHP (php)

So, make sure the string is clean.

You can pre-process like this:

price = "$123"

clean_price = price.replace("$", "")

amount = int(clean_price)

print(amount)Code language: PHP (php)

If your string is something like "45.67" and you try to use int(), Python will throw an error:

int("45.67")  # ValueError

In that case, convert it to a float first:

float_num = float("45.67")

int_num = int(float_num)

print(int_num)  # Output: 45 (truncated)Code language: PHP (php)

Note: int() will always truncate, not round.

Use .isdigit() to check if a string is made up only of digits:

value = "123"

if value.isdigit():

    number = int(value)

    print("Safe to convert:", number)

else:

    print("Not a valid integer.")Code language: PHP (php)

Keep in mind: .isdigit() doesn’t work for negative numbers or decimals.

Let’s say you’re renaming a bunch of images like image1.jpg, image2.jpg, etc., and you need to get the number from the filename:

filename = "image12.jpg"

number_part = filename[5:-4# Extract '12'

image_number = int(number_part)

new_name = f"new_image_{image_number + 1}.jpg"

print(new_name)  # Output: new_image_13.jpgCode language: PHP (php)

This is a perfect case of string-to-int conversion during batch processing.

CaseExampleResult
Basic conversionint("123")123 (int)
Invalid inputint("abc")Raises ValueError
Use with try / excepttry: int("abc")Catches error
String with $ or spaceint("$123") (after clean)123
Float stringint(float("12.34"))12
Check first"123".isdigit()True

Knowing how to convert a string to an int in Python is a must-have skill, especially when dealing with:

  • User input
  • CSV or JSON files
  • Image metadata
  • Web scraping
  • API responses

Just remember: Always validate and handle exceptions when the input might be messy. Once you master this, you’ll unlock a whole new level of confidence working with real-world data in Python.

Start Using Cloudinary

Sign up for our free plan and start creating stunning visual experiences in minutes.

Sign Up for Free