In Python, how can I parse a numeric string like "545.2222" to its corresponding float value, 542.2222? Or parse the string "31" to an integer, 31? I just want to know how to parse a float string to a float, and [separately] an int string to an int.
It's good that you ask to do these separately. If you're mixing them, you may be setting yourself up for problems later. The simple answer is:
"545.2222"
to
float:
>>> float["545.2222"]
545.2222
"31"
to an integer:
>>> int["31"]
31
Other conversions, ints to and from strings and literals:
Conversions from various bases, and you should know the base in advance [10 is the default]. Note you can prefix them with what Python expects for its literals [see below] or remove the prefix:
>>> int["0b11111", 2]
31
>>> int["11111", 2]
31
>>> int['0o37', 8]
31
>>> int['37', 8]
31
>>> int['0x1f', 16]
31
>>> int['1f', 16]
31
If you don't know the base in advance, but you do know they will have the correct prefix, Python can infer this for you if you pass 0
as
the base:
>>> int["0b11111", 0]
31
>>> int['0o37', 0]
31
>>> int['0x1f', 0]
31
Non-Decimal [i.e. Integer] Literals from other Bases
If your motivation is to have your own code clearly represent hard-coded specific values, however, you may not need to convert from the bases - you can let Python do it for you automatically with the correct syntax.
You can use the apropos prefixes to get automatic conversion to integers with the following literals. These are valid for Python 2 and 3:
Binary, prefix 0b
>>> 0b11111
31
Octal, prefix 0o
>>> 0o37
31
Hexadecimal, prefix 0x
>>> 0x1f
31
This can be useful when describing binary flags, file permissions in code, or hex values for colors - for example, note no quotes:
>>> 0b10101 # binary flags
21
>>> 0o755 # read, write, execute perms for owner, read & ex for group & others
493
>>> 0xffffff # the color, white, max values for red, green, and blue
16777215
Making ambiguous Python 2 octals compatible with Python 3
If you see an integer that starts with a 0, in Python 2, this is [deprecated] octal syntax.
>>> 037
31
It is bad because it looks like the value should be 37
. So in Python 3, it now raises a SyntaxError
:
>>> 037
File "", line 1
037
^
SyntaxError: invalid token
Convert your Python 2 octals to octals that work in both 2 and 3 with the 0o
prefix:
>>> 0o37
31
Python defines type conversion functions to directly convert one data type to another. This article is aimed at providing information about converting the string to float. In Python, we can use float[] to convert String to float. and we can use int[] to convert String to an integer.
Python Program to Parse a String to a Float
This function is used to convert any data type to a floating-point number.
Syntax of float:
float[x]
The method only accepts one parameter and that is also optional to use. If no argument is passed then the method returns 0.0.
Example 1: Parse a string into a float
In this example, we are converting the string into float.
Python3
string
=
"3.141"
print
[string]
print
[
type
[string]]
Float
=
float
[string]
print
[
Float
]
print
[
type
[
Float
]]
Output:
3.141 3.141
Example 2: A string float numeral into float
In this example, we try to convert a string into an integer and then a float. In the output we can see that we can’t convent a string float number into an integer thus, we get a value error.
Python3
string
=
'55.567'
Float
=
float
[
int
[string]]
print
[
type
[
Float
]]
print
[
'Float Value ='
,
Float
]
Output:
ValueError Traceback [most recent call last] in [] 1 string = '55.567' 2 ----> 3 Float = float[int[string]] 4 5 print[type[Float]] ValueError: invalid literal for int[] with base 10: '55.567'
Python Program to Parse a String to Int
This function is used to convert any data type to a integer number.
Syntax of int
int[]
Example 1: Parse a string into an integer
In this example, we are converting string into integer.
Python3
string
=
'55567'
Float
=
int
[string]
print
[
type
[
Float
]]
print
[
'Float Value ='
,
Float
]
Output:
1500
Example 2: A string float numeral into an integer
In this example, we try to convert string float into float and then into integer.
Python3
balance_str
=
"15.0034"
balance_int
=
int
[
float
[balance_str]]
print
[
type
[balance_int]]
print
[balance_int]
Output:
15