如何检查数字是int还是str python

时间:2016-03-18 21:53:32

标签: python-3.x

我想创建一个if语句来检查输入的数字是否为int。当我分割输入时,我不知道该怎么做(你输入3d和一个带有3的变量和一个带有d的变量)。我想要它,这样如果你输入一个字母,那么它就不会产生错误信息。

以下是问题中的代码:

  while directionloop ==0:
    while DAmountLoop==0:
        direction=input('How do you want to move? Your answer should look like this 4u, this moves you up 4: ')
        directiondirection=str(direction[1])
        directionamount=(direction[0])
        if type(directionamount) != int:
            print('You need to enter a number for the amount you want to move')
        elif type(directionamount) == int:
            directionamount=int(direction[0])
            DAmountLoop=1

1 个答案:

答案 0 :(得分:2)

direction的类型始终为str,因为input()会返回str。因此,direction[0]的类型始终也是str(假设direction不为空)。因此,type(direction[0]) != int始终为True

但是,字符串具有检查其内容的方法。在这种情况下,您可以使用str.isnumeric()

move = input('How do you want to move? ')
direction = direction[1]
amount = direction[0]
if not amount.isnumeric():
      print('You need to enter a number for the amount')

另请注意,如果输入短于2个字符,则会引发IndexError。您可能希望对此进行特定检查,或者使用regular expression来合并所有匹配逻辑。

另外,关于你的循环:请参阅this question以获取验证用户输入的一般方法。