我有一個十進制到二進制轉換器,如下所示:在整數用戶輸入中打印消息而不是valuerror?
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
,但我覺得這是一種懶惰和粗暴的方式。
但是,我是否正確地認爲在用戶輸入行之後嘗試添加的任何內容都不起作用,因爲程序在它到達該行之前會終止?
其他建議?