我目前正在使用python创建一个二进制程序的denary,我不知道为什么它不起作用,如果有人可以帮助我并修复我的代码,我将不胜感激。
answer = []
number = 0
denaryNumber = int(input("Type the number you would like to be put in binary (LIMIT IS 255)"))
binary = [128,64,32,16,8,4,2,1]
for x in range (0,8):
if denaryNumber >= binary[number]:
subtraction = binary[number] - (denaryNumber)
answer.append (1)
number += 1
else:
answer.append (0)
number += 1
print (answer)
答案 0 :(得分:0)
由于以下行,这不起作用:
subtraction = binary[number] - (denaryNumber)
您将从永远不再使用的binary
索引中减去,然后将其分配给从未使用过的变量。你打算这样做:
denaryNumber -= binary[number]
答案 1 :(得分:0)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Hold down mousewheel and move ...</p>
阅读我输入的内容作为您的代码的评论,看看有什么不对。最终答案应如下所示:
answer = []
number = 0 #what is this number for when you have the same counter in x
denaryNumber = int(input("Type the number you would like to be put in binary (LIMIT IS 255)"))
binary = [128,64,32,16,8,4,2,1]
for x in range (0,8): #x is being updated each time the loop goes, so it's 0,1,2,3,4,5,6,7, just like number so number is useless
if denaryNumber >= binary[number]: #wrong indentation
subtraction = binary[number] - (denaryNumber) # you want denaryNumber - binary[x] or you will get a negative number and that's why it's not workting
answer.append (1) #wrong indentation and what is 'append (1)'. why is there a space? function calls have no space between the '()'
number += 1
else: #wrong indentation
answer.append (0) #function calls have no space between the function name and the parameter brakets
number += 1
print (answer)
如果您没有阅读评论,需要注意一些要点,缩进在python中很重要。函数调用在名称和answer = []
denaryNumber = int(input("Type the number you would like to be put in binary (LIMIT IS 255)"))
binary = [128,64,32,16,8,4,2,1]
for x in range(0,8):
if denaryNumber >= binary[x]:
denaryNumber = denaryNumber - binary[x]
answer.append(1)
else:
answer.append(0)
print(answer)
之间没有空格。 python中的循环基本上是()
循环,它们将for each
通过iterate
对象。在这种情况下,iterable
是可迭代对象,x将是0-7的计数器。
作为旁注,我知道这是一个家庭作业问题,但有内置的功能可以做你想做的事情,你可能无法使用但是对于将来的参考很有用。 。 range()
将数字转换为二进制字符串:
bin()
如果您需要输出相同,则可以:
denaryNumber = int(input("Type the number you would like to be put in binary (LIMIT IS 255)"))
print(bin(denaryNumber))