当我想要这个时,我找不到另一个答案,所以我想我会为其他人发布我自己的解决方案,如果我做错了也会得到更正.
我必须创建一个自动配置文件解析器,如果可能的话我更喜欢使用int,如果不是,我会浮动.通常的try/except转换本身不起作用,因为任何float都只会被强制转换为int.
为了澄清有人问,案例基本上是将数字转换为编写配置文件数据的人.所以带小数的任何东西都可能是浮点数.另外,由于浮点数的性质,我认为float对于某些运算符(例如==,<,>)可能是危险的,并且int将在必要时转换为float.因此,我希望数字尽可能保持在int中.这不是一件大事,只是对我自己的一种约定.
Joh*_*hin 23
def int_or_float(s):
try:
return int(s)
except ValueError:
return float(s)
Run Code Online (Sandbox Code Playgroud)
如果你想要"10.0000"
转换为int之类的东西,试试这个:
def int_dammit_else_float(s):
f = float(s)
i = int(f)
return i if i == f else f
Run Code Online (Sandbox Code Playgroud)
您想要输入的结果如何"1e25"
?
归档时间: |
|
查看次数: |
27189 次 |
最近记录: |