Python确定变量何时可以为字符串或整数为数字?

时间:2019-03-25 12:43:49

标签: python

我传入了一个变量,可以是一个字符串或一个整数。例如,它可以是'123'或123。另外,它可以是一个字符串,例如'N / A',在这种情况下,我想替换为0。

我一直在尝试做这样的事情:

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

问题是,当our_value是整数时,它没有方法isdigit。如果是字符串,则可以正常工作。

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

4 个答案:

答案 0 :(得分:6)

这也可以

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

答案 1 :(得分:3)

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

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

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

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

答案 2 :(得分:1)

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

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,则无需进行任何转换。

答案 3 :(得分:0)

这将起作用:

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

如果our_value为整数,则它将首先转换为字符串,如果仅包含数字,则将其转换回整数。