我有一个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语句,代码就可以正常运行。
答案 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'