如何检查输入是否是Python中的数字?

时间:2013-11-20 11:54:07

标签: python if-statement input numbers

我有一个Python脚本,它将十进制数转换为二进制数,这显然使用了他们的输入。

我想让脚本验证输入是一个数字,而不是任何会阻止脚本的内容。

我尝试过if / else语句,但我真的不知道如何去做。我尝试了if decimal.isint():if decimal.isalpha():,但是当我输入字符串时,它们只会抛出错误。

print("Welcome to the Decimal to Binary converter!")
while True:
    print("Type a decimal number you wish to convert:")
    decimal = int(input())
    if decimal.isint():
        binary = bin(decimal)[2:]
        print(binary)
    else:
        print("Please enter a number.")

如果没有if / else语句,代码就可以正常运行。

1 个答案:

答案 0 :(得分:7)

如果int()来电成功,decimal 已经一个号码。您只能在字符串上调用.isdigit()(正确的名称):

decimal = input()
if decimal.isdigit():
    decimal = int(decimal)

另一种方法是使用异常处理;如果抛出ValueError,则输入不是数字:

while True:
    print("Type a decimal number you wish to convert:")
    try:
        decimal = int(input())
    except ValueError:
        print("Please enter a number.")
        continue

    binary = bin(decimal)[2:]

您可以使用format() function(使用bin()格式)将整数格式化为二进制格式,而不是使用0b函数并删除起始'b'字符串,没有前导文本:

>>> format(10, 'b')
'1010'

format()功能可以轻松添加前导零:

>>> format(10, '08b')
'00001010'