繁体   English   中英

Python可以在string或int时确定变量是否为数字?

[英]Python determine whether variable is number when can be string or int?

我有传入的变量,可以是传入的字符串或整数。例如,它可以是'123'或123.此外,它可能是一个像'N / A'的字符串,在这种情况下,我想用它替换它0。

我一直试图做这样的事情:

our_value = int(our_value) if our_value.isdigit() else 0

问题是当our_value是一个整数时,它没有方法isdigit。 如果它是一个字符串,这将工作正常。

如何处理它可以是整数或字符串的两种情况?

这也可以

try:
    our_value = int(our_value)
except ValueError:
   our_value = 0

为避免双重转换,可以使用try / except结构,例如:

try:
    our_value = int(our_value)
except ValueError:
    our_value = 0

在这种情况下,我们尝试将值强制转换为整数。 如果我们已经有一个整数,或者可以解释为整数的字符串,这将是成功的。

其他字符串将属于我们的except情况,因此设置为0。

如果您不想编写任何异常,可以使用以下代码:

our_value = '123' # It can be 'N/A' or 123
if type(our_value ) is str:
    if our_value .isdigit():
        our_value  = int(our_value)
    else:
        our_value  = 0 
print(our_value)

如果类型是字符串及其数字,那么我们可以应用int()函数。 如果它是int而不是数字,则它是'N / A'并转换为0.如果值为int,则不需要任何转换。

这将有效:

our_value = int(our_value) if str(our_value).isdigit() else 0

如果our_value将是整数,它将首先转换为字符串,如果它只包含数字,那么它将转换回整数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM