Summary: To convert a string object to integer object use the float(string_input)
method which typecasts the string input to a floating-point value.
[toc]
❖ Introduction
Before learning how to convert a string
object to a int
object, let us understand what is type conversion in Python.
✎ The process of converting an object of a particular data type into another type is known as type conversion.
- Type Conversion is of two types:
- Implicit Type Conversion
- Explicit Type Conversion
♻️ Implicit Type Conversion
When Python automatically converts one data type to another data type without the involvement of user, it is known as implicit type conversion.
Example: In the following code Python implicitly promotes a lower data type (integer
) to a higher data type (float
).
data_integer = 15 # integer object data_float = 25.25 # float object result = data_integer + data_float print("result = ", result) print("data type of result: ", type(result))
Output:
result = 40.25 data type of result: <class 'float'>
♻️ Explicit Type Conversion
The type of conversion in which the user has to explicitly convert an object of one type to another type is known as explicit type conversion. You have to use built-in functions like int(), str(), float(), etc., to perform explicit type conversion.
✎ Note: Explicit type conversion is also known as typecasting.
Example: The following example how you can typecast an integer to a string.
value_int = 15 value_str = str(value_int) print("value_int: ", value_int) print("value_str: ", value_str) print("Type of value_int: ", type(value_int)) print("Type of value_str: ", type(value_str))
Output:
value_int: 15 value_str: 15 Type of value_int: <class 'int'> Type of value_str: <class 'str'>
Now that you know what is type conversion in Python, let us proceed with our topic – “How to convert a string object to a int object?”
Python int()
Python’s built-in int(value)
function converts the argument value
to an integer number. For example, int('42')
converts the string value '42'
into the integer number 42
. The int()
function on a float argument rounds down to the closest integer.
Argument | value | A Python object to be converted into an integer number. The value object must have an __int__() method that returns the associated integer number—otherwise a TypeError will be raised. |
base | An optional integer argument base to define the base of the numerical system in the value argument. If you set the base, the value argument must be a string. The base argument determines how the string argument is interpreted. | |
Return Value | int | Returns an integer number after converting the input argument value using its required __int__() method for the conversion. |
? Thus, you can simply convert a string value to an integer value using int('value')
.
Example:
value_str = '100' # String object value_int = int(value_str) # converting to float print("value_int: ", value_int) print("value_str: ", value_str) print("Type of value_int: ", type(value_int)) print("Type of value_str: ", type(value_str))
Output:
value_int: 100 value_str: 100 Type of value_int: <class 'int'> Type of value_str: <class 'str'>
⚠️Caution: You can only convert a numeric-string, i.e., a string containing only numbers. If you try to typecast a text string to a float object, it will lead to ValueError.
value_str = 'Finxter' # Text String Object value_int = int(value_str) # converting to float print(value_int)
Output:
Traceback (most recent call last): File "D:/PycharmProjects/PythonErrors/rough.py", line 2, in <module> value_int = int(value_str) # converting to float ValueError: invalid literal for int() with base 10: 'Finxter'
Python astype()
In Python, the NumPy module and the Pandas module have a method that converts one type of object into another. The name of this method is astype().
Convert String to Float using astype() in NumPy
Syntax:
input_string.astype(numpy.int_) |
Example:
import numpy string_array = numpy.array(["25", "50", "100"]) print() print("Original array: ", string_array) int_array = string_array.astype(numpy.int_) print("Converted Array: ", int_array) print("Type of elements within input string array: ", type(string_array[0])) print("Type of elements within output float array: ", type(int_array[0]))
Output:
Original array: ['25' '50' '100'] Converted Array: [ 25 50 100] Type of elements within input string array: <class 'numpy.str_'> Type of elements within output float array: <class 'numpy.int32'>
Convert String to Float using astype() in Pandas
Syntax:
input.astype(int) |
# importing pandas library import pandas as pd # dictionary Data = {'Rate': ['4', '5', '9', '7']} # create a dataframe df = pd.DataFrame(Data) # show dataframe print(df) print("\nBefore Conversion: ") print(df.dtypes) # converting to float df['Rate'] = df['Rate'].astype(int) print("\nAfter Conversion: ") print(df.dtypes)
Output:
Rate 0 4 1 5 2 9 3 7 Before Conversion: Rate object dtype: object After Conversion: Rate int32 dtype: object
Function to Convert String to Integer
You can use a function to convert a string input into an integer value as shown in the following program:
Example:
def convert(x, y, cast): x = cast(x) y = cast(y) return x, y num1 = input("Enter 1st number: ") num2 = input('Enter 2nd number: ') a, b = convert(num1, num2, int) print('Converting To Integer:') res = a + b print("Output: ", res) print("Type of num1: ", type(num1)) print("Type of num2: ", type(num2)) print("Type of a: ", type(a)) print("Type of b: ", type(b)) print("Type(Output): ", type(res))
Output:
Enter 1st number: 25 Enter 2nd number: 45 Converting To Integer: Output: 70 Type of num1: <class 'str'> Type of num2: <class 'str'> Type of a: <class 'int'> Type of b: <class 'int'> Type(Output): <class 'int'>
If there are more than two variables that have to be converted, you can use a list as shown below.
def convert(list1, type_): for x in range(len(list1)): list1[x] = type_(list1[x]) # string inputs a = '15' b = '25' c = '75' li = [a, b, c] print("Before Conversion: ", [type(number) for number in li]) convert(li, int) print("After Conversion:", [type(number) for number in li]) print(li) print(li[0] + li[1] + li[2])
Output:
Before Conversion: [<class 'str'>, <class 'str'>, <class 'str'>] After Conversion: [<class 'int'>, <class 'int'>, <class 'int'>] [15, 25, 75] 115
❖ Python Integer to String
Until now you learned how to convert a string
object to a int
object. Now, let us understand how we can deal the other way around, i.e., converting int
to string
.
Method 1: Using str()
Python’s built-in str(x)
function converts the object x
to a string using the x.__str__()
method or, if non-existent, the repr(x)
built-in function to obtain the string conversion.
Example:
num_int = 2500 num_str = str(num_int) print("num_str: ", num_str) print("Type of num_float: ", type(num_int)) print("Type of num_str: ", type(num_str))
Output:
num_str: 2500 Type of num_float: <class 'int'> Type of num_str: <class 'str'>
Method 2: Using String formatting – format() | f-string | %s
- The format() method formats the specified value(s) and inserts them inside the string’s placeholder. Curly brackets ‘{} ’ are used to define the placeholder.
- f-string is used as f’{inetger}’, where value inside curly bracket will help to convert the integer into string.
- “%s”%integer, helps to convert the given integer to string by adding a value into Python string.
val_int = 55 # floating-point value print("type of val_int: ", type(val_int)) # Using format() val_str1 = "Year: {}".format(val_int) print("type of val_str1: ", type(val_str1)) # Using f-string val_str2 = f"{val_int}" print("type of val_str2: ", type(val_int)) # Using %s val_str3 = '%s' % val_int print("type of val_str3: ", type(val_str3))
Output:
type of val_int: <class 'int'> type of val_str1: <class 'str'> type of val_str2: <class 'int'> type of val_str3: <class 'str'>
❖ Conclusion
I hope this article helped you to understand how to convert a string object into a float object and vice-versa. Please stay tuned and subscribe for more exciting articles. Happy coding. ??
Related Article: Python String to Float – A Simple Illustrated Guide
- Do you want to master the most popular Python IDE fast?
- This course will take you from beginner to expert in PyCharm in ~90 minutes.
- For any software developer, it is crucial to master the IDE well, to write, test and debug high-quality code with little effort.
Join the PyCharm Masterclass now, and master PyCharm by tomorrow!