在Python中,我如何解析数字字符串,如"545.2222"相应的浮点值,545.2222?或者将字符串解析为"31"整数,31?
我只是想知道如何将一个浮点数 解析str为a float,并且(单独)将一个int 解析str为一个int.
有没有办法判断一个字符串是否代表一个整数(例如'3','-17'但不是'3.14'或'asfasfas')没有使用try/except机制?
is_int('3.14') = False
is_int('-7') = True
Run Code Online (Sandbox Code Playgroud) 我有一些Python代码通过一个字符串列表运行,如果可能的话将它们转换为整数或浮点数.对整数执行此操作非常简单
if element.isdigit():
newelement = int(element)
Run Code Online (Sandbox Code Playgroud)
浮点数更难.现在我正在使用partition('.')拆分字符串并检查以确保一侧或两侧是数字.
partition = element.partition('.')
if (partition[0].isdigit() and partition[1] == '.' and partition[2].isdigit())
or (partition[0] == '' and partition[1] == '.' and partition[2].isdigit())
or (partition[0].isdigit() and partition[1] == '.' and partition[2] == ''):
newelement = float(element)
Run Code Online (Sandbox Code Playgroud)
这是有效的,但显然if语句有点像熊.我考虑的另一个解决方案是将转换包装在try/catch块中,看看它是否成功,如本问题所述.
有没有其他想法?关于分区和try/catch方法的相对优点的意见?
我想在单个字符串参数中拆分类似字符串的命令行.如何查看正则表达式.问题是参数可以引用.例如:
"param 1"param2"param 3"
应该导致:
param 1,param2,param 3