- 如何将
str
转换为float
?
"545.2222" → 545.2222
如何将 str
转换为 int
?"31" → 31
反向操作,请参见如何将整数转换为字符串(Python)和如何将浮点数转换为不四舍五入的字符串(Python)。
请改用如何将输入读取为数字?来关闭重复提问,其中提问者从用户输入中接收到字符串,并立即希望进行转换,或者希望在3.x版本中使用input
自动转换类型。
str
转换为 float
?"545.2222" → 545.2222
如何将 str
转换为 int
?"31" → 31
反向操作,请参见如何将整数转换为字符串(Python)和如何将浮点数转换为不四舍五入的字符串(Python)。
请改用如何将输入读取为数字?来关闭重复提问,其中提问者从用户输入中接收到字符串,并立即希望进行转换,或者希望在3.x版本中使用input
自动转换类型。
对于数字和字符的组合:
string_for_int = "498 results should get"
string_for_float = "498.45645765 results should get"
首先导入re:
import re
# For getting the integer part:
print(int(re.search(r'\d+', string_for_int).group())) #498
# For getting the float part:
print(float(re.search(r'\d+\.\d+', string_for_float).group())) #498.45645765
对于简单的模型:
value1 = "10"
value2 = "10.2"
print(int(value1)) # 10
print(float(value2)) # 10.2
使用:
>>> str_float = "545.2222"
>>> float(str_float)
545.2222
>>> type(_) # Check its type
<type 'float'>
>>> str_int = "31"
>>> int(str_int)
31
>>> type(_) # Check its type
<type 'int'>
def parseIntOrFloat( aString ):
return eval( aString )
它的工作原理是这样的...
>>> parseIntOrFloat("545.2222")
545.22220000000004
>>> parseIntOrFloat("545")
545
"import os; os.abort()"
。然而,如果没有关于字符串来源的任何背景信息,这种可能性就只是理论推测。由于问题不明确,因此无法确定是否实际存在此漏洞。eval
是不好的实践(你应该知道,因为你有310k的声望)。 - U13-Forward
type(my_object)
。结果通常可以作为函数调用来执行转换。例如,type(100)
的结果是int
,因此你可以调用int(my_object)
来尝试将my_object
转换为整数。这种方法并不总是可行的,但在编码时是一个好的“第一推荐”。 - robertlaytonreturn float(str_value)
。 - InfiniteStack