【发布时间】:2017-03-06 13:47:27
【问题描述】:
我有一个十进制到二进制的转换器,如下所示:
print ("Welcome to August's decimal to binary converter.")
while True:
value = int(input("Please enter enter a positive integer to be converted to binary."))
invertedbinary = []
initialvalue = value
while value >= 1:
value = (value/2)
invertedbinary.append(value)
value = int(value)
for n,i in enumerate(invertedbinary):
if (round(i) == i):
invertedbinary[n]=0
else:
invertedbinary[n]=1
invertedbinary.reverse()
result = ''.join(str(e) for e in invertedbinary)
print ("Decimal Value:\t" , initialvalue)
print ("Binary Value:\t", result)
用户输入立即声明为整数,因此输入的数字以外的任何内容都会终止程序并返回ValueError。我怎样才能使它打印一条消息而不是程序以ValueError 终止?
我尝试从二进制到十进制转换器中采用我使用的方法:
for i in value:
if not (i in "1234567890"):
我很快意识到这是行不通的,因为value 是一个整数而不是字符串。我在想我可以将用户输入保留为默认字符串,然后将其转换为int,但我觉得这是一种懒惰而粗暴的方式。
但是,我是否认为我在用户输入行之后尝试添加的任何内容都不起作用,因为程序将在到达该行之前终止?
还有其他建议吗?
【问题讨论】: