By using the int() function you can convert the string to int (integer) in Python. Besides int()
there are other methods to convert. Converting a string to an integer is a common task in Python that is often necessary when working with user input, reading data from a file, or interacting with a database. There are several ways to do this, and it is important to understand the different methods and the potential use of each method.
1. Quick Examples of Converting String to Int
These quick examples include different approaches to give you a high-level overview of how to convert string to int. We will discuss this more in detail.
# Quick examples of converting string to int
# Using the int() function
strObj = "123"
result = int(strObj)
# Using the float() function
strObj = "123.45"
float_num = float(strObj)
result = int(float_num)
# Using the bit_length()
strObj = "10010101"
result = int(strObj, 2)
# Using the PyNumber_Long()
import sys
strObj = "1234567890"
result = int(sys.intern(strObj))
2. Python Convert String to Int using int()
To convert string to int (integer) type use the int()
function. This function takes the first argument as a type String and second argument base. You can pass in the string as the first argument, and specify the base of the number if it is not in base 10. The int()
function can also handle negative integers by recognizing the negative sign in the string.
# Convert str to int
strObj = "987"
result = int(strObj)
print("Converting string to integer:",result)
Yields below output.
To convert a string that represents a negative integer to an actual integer in Python, you can use the int()
function as usual. For instance, the string “-654” is converted to the integer -654
. The int()
function can handle negative numbers represented as strings just like positive numbers.
# Convert str with negative to int
strObj = "-654"
result = int(strObj)
print("Converting negative string to integer:",result)
Yields below output.
If the string is not the valid integer value in the specified base, it will raise a ValueError
. You can use a try-except block to handle this error and ensure that your code runs smoothly. The int()
function is not able to convert a floating point number represented as a string into an integer.
# Convert string with non-int
try:
strObj = "123.45"
result = int(strObj)
except ValueError:
print("String is not an integer.")
# Output:
# String is not an integer.
3. Using Base Parameter of int()
You can use the base parameter to specify a base between 2 and 36, inclusive. For example, you can use the base parameter to convert a string that represents a base 8 (octal) number to an integer
# Use Base 2 (binary) while convertion
strObj = "10010101"
result = int(strObj, 2)
print(result)
# Output:
# 149
# Base 8 (octal) while convertion
strObj = "765"
result = int(strObj, 8)
print(result)
# Output:
# 501
# Base 36 (alphanumeric)
strObj = "zzzzz"
result = int(strObj, 36)
print(result)
# Output:
# 60466175
4. Convert String to Int By Checking Is Digit
In the above examples, we saw that we will see a valueError
if something bad happens. You can use the isdigit()
method in combination with the int()
function to safely convert a string to an integer without encountering a ValueError
exception.
# Check if the str is a digit before convertion
def str_to_int(strObj: str) -> int:
if strObj.isdigit():
return int(strObj)
else:
return 0
strObj = "89"
result = str_to_int(strObj)
print(result)
# Output:
# 89
strObj = "xyz"
result = str_to_int(strObj)
print(result)
# Output:
# 0
5. Converting String with Float to Int
Sometimes you may be required to convert the string with a float value to int (integer) in Python. The float()
function can be used to convert a string to a float and pass the result to int()
to convert the floating-point number to an integer. As a result, the int()
function will remove any trailing decimals from the string.
Here is an example of using the float()
& int()
functions to convert a string to an integer:
# Convert str with float to int
strObj = "12.56"
result = int(float(strObj))
print(result)
# Output:
# 12
strObj = "23.000"
result = int(float(strObj))
print(result)
# Output:
# 23
6. Handling Invalid Input
When the int()
function is used to convert a string to an integer, it will raise a ValueError
if the string is not a valid integer. This can happen if the string is empty, contains non-numeric characters, or has a leading or trailing whitespace.
You might have seen this in other examples as well. To handle this error, you can use a try
and except
statement as shown below.
# Handling invalid input example
# With Valid Integer
strObj = "53"
try:
result = int(strObj)
except ValueError:
result = 0
print(result)
# Output:
# 53
# With invalid integer
strObj = "abc"
try:
result = int(strObj)
except ValueError:
result = 0
print(result)
# Output:
# 0
7. Good Practices to Convert String to Integer in Python
The following methods of strings can be used to make sure that the string is ready to convert to an int in Python. These include removing leading and trailing whitespace using the strip()
method of string. It also includes removing any non-numeric characters using the replace()
method of string and extracting the numeric portion of the string using regular expressions.
7.1 Eliminating Whitespaces using strip()
This technique can be particularly useful if the string you are trying to convert contains leading or trailing whitespaces, which can cause the int()
function to raise a ValueError
exception when it is passed an invalid argument.
Below is an example of how you can use the strip()
method to remove leading and trailing whitespaces from a string before attempting to convert it to an integer.
# Strip whitespaces
strObj = " 67 "
stripped_string = strObj.strip()
result = int(stripped_string)
print(result)
# Output:
# 67
7.2 Removing non-numeric Characters using replace
To remove non-numeric characters from a string, you can use the replace()
method, which is a built-in method of the str
class in Python. The replace()
method will remove the characters specified in the old string argument.
# Remove non-numeric characters
strObj = "345xyz"
cleaned_string = strObj.replace("x", "").replace("y", "").replace("z", "")
result = int(cleaned_string)
print(result)
# Output:
# 345
To make it more generalized, we can use the string module in python. Here is an example that shows you how to do that.
- Create a string of all alphabetical characters using
string.ascii_lowercase
andstring.ascii_uppercase
. - Use
translate()
withmaketrans()
to remove all alphabetical characters fromstring
. - Convert
cleaned_string
to an integer withint()
.
import string
strObj = "abc345xyz"
alphabet = strObj.ascii_lowercase + strObj.ascii_uppercase
cleaned_string = strObj.translate(strObj.maketrans("", "", alphabet))
result = int(cleaned_string)
print(result)
# Output:
# 345
7.3 Extract Numeric Portion of String with regex
The re
module includes a variety of functions and methods that can be used to search, replace, and split strings using regular expressions. To extract the numeric portion of a string using regular expressions, you can use the re
module, which is a built-in module in Python that provides support for regular expressions.
#Extract numeric portion of string
import re
strObj = "123abc456"
match = re.search(r"\d+", strObj)
if match:
result = int(match.group())
print(result)
else:
print("Invalid input")
# Output:
# 123456
Frequently Asked Questions on Python Convert String to Integer
To convert a string to an integer in Python, you can use the int()
function. For example, the int()
function is used to convert the string "123
” to the integer 123
. If the string contains non-numeric characters or is in an invalid format, a ValueError
will be raised. Always ensure that the string represents a valid integer before attempting the conversion.
You can convert a string with a negative number to an integer in Python. The int()
function can handle negative numbers represented as strings.
If the string contains non-numeric characters or is in an invalid format, a ValueError
will be raised. Always ensure that the string represents a valid integer before attempting the conversion.
If the string represents a floating-point number, you can use the float()
function to convert it to a floating-point number first and then use int()
to truncate the decimal part if needed.
You can handle errors during conversion by using a try-except
block. When you attempt to convert a string to an integer using the int()
function, a ValueError
will be raised if the string is not a valid integer representation.
Summary and Conclusion
In this article, we learned various techniques of how to convert string to int (integer) in Python. These methods can be useful for handling different types of input and requirements in your code. If you have any further questions about converting strings to integers in Python, don’t hesitate to ask.
Related Articles
- Python Convert Bytes to String
- Python Convert String to Float
- Convert String to Tuple Python
- Convert List of Integers to String Python
- Convert String to Dictionary Python
- How to Convert Dictionary to String Python?
- Convert String to List in Python
- Convert Python Range to List
- Convert Integer to String in Python
- Convert List into Dictionary in Python
- Convert JSON Object to String in Python
- Convert JSON to Dictionary in Python