首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将0/10和100的浮点字符串转换为python 2.7中的整数

问将0/10和100的浮点字符串转换为python 2.7中的整数
EN

Stack Overflow用户
提问于 2015-08-25 11:00:57
回答 1查看 246关注 0票数 4

假设我们确信所有的字符串都是一个数字的某种表示形式。foo函数返回我们传入的字符串的数字值。我还想检查数字的传递字符串表示形式是整数还是浮点数。不过,我不确定这是否是最优雅的做法。有没有更简单/更清洁的方法?

代码语言:javascript
复制
def foo(arg):
        if arg.endswith('.00'):
            arg3 = arg3[:-3]
        try:
            arg3 = int(arg3)
        except:
            arg3 = float(arg3)

        return arg


    arg1 = '3456.26'
    arg2 = '100.00'

    num1 = foo(arg1)
    num2 = foo(arg2)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-25 11:03:54

浮点数有一个 method,它告诉您它们是否等于整数:

代码语言:javascript
复制
>>> (1.23).is_integer()
False
>>> (1.0).is_integer()
True

因此,您可以使用它来编写如下内容:

代码语言:javascript
复制
def to_number(s):
    """Converts a string to a number."""
    f = float(s)
    return int(f) if f.is_integer() else f

(请注意,我避免了使用 )。在使用中:

代码语言:javascript
复制
>>> for x in ('1.23', '123', '1.00', 'foo'):
    print x, to_number(x)


1.23 1.23
123 123
1.00 1
foo

Traceback (most recent call last):
  File "<pyshell#11>", line 2, in <module>
    print x, to_number(x)
  File "<pyshell#8>", line 5, in to_number
    f = float(s)
ValueError: could not convert string to float: foo
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32202275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档