我想创建一个小数到二进制转换器。用户输入它们的值,并且每次将金额除以2并添加到invertedbinary
列表中。然后将金额转换回整数,再除以2,依此类推。我该怎么办;如果var是整数然后执行
value = int(input("Please enter the decimal value to be converted to binary."))
invertedbinary = []
while value >= 1:
value = (value/2)
invertedbinary.append(value)
value = int(value)
print (invertedbinary)
for n,i in enumerate(invertedbinary):
if i == isinstance(invertedbinary,int):
invertedbinary[n]=0
else:
invertedbinary[n]=1
print (invertedbinary)
比方说,我输入数字十七。这是输出:
[8.5]
[8.5, 4.0]
[8.5, 4.0, 2.0]
[8.5, 4.0, 2.0, 1.0]
[8.5, 4.0, 2.0, 1.0, 0.5]
[1, 1, 1, 1, 1]
因此,我们可以告诉大家,从者的最后一行,我isinstance
的尝试没有成功。我想要做的是,如果金额是任意数量,那么将其显示为1,如果它是一个整数,则显示为零。所以它应该看起来像是[1, 0, 0, 0, 1]
。每个浮点值的个数,以及整数的零。
我可以用什么来代替is instance
来实现?
对于任何人想知道的,我称之为invertedbinary
,因为打印时需要翻页invertedbinary
,然后打印为字符串以显示正确的二进制值。
我把它改为[标签:蟒蛇-3.X]因为这需要'INT/int'给'浮动行为; [看到这个问题](https://stackoverflow.com/questions/19507808/python3-integer-division)。 –
你不想'我== isinstance(invertedBinary,int)'你只是想'isinstance(invertedBinary,int)'我很确定... –
虽然,实际上并不在这种情况下,因为你关心如果数字是一个整数,而不是'int'类型。 –