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

2024-04-27 20:31:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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语句,代码就可以正常工作。


Tags: to字符串脚本numberif错误二进制数字
1条回答
网友
1楼 · 发布于 2024-04-27 20:31:26

如果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:]

除了使用bin()函数和删除起始的0b,还可以使用^{} function,使用'b'格式,将整数格式化为二进制字符串,而不使用前导文本:

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

format()函数使添加前导零变得容易:

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

相关问题 更多 >