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)
は、私はあなたのコードにコメントとして入れたものを読んで間違っているものを参照してください。最終的な答えは次のようになります。
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で大きく問題になります。関数呼び出しには、その名前と()
の間にスペースがありません。 Pythonのループは基本的にはfor each
ループですが、iterate
からiterable
オブジェクトです。この場合、range()
は反復可能なオブジェクトであり、xは0-7のカウンターになります。
これは宿題に関する質問ですが、あなたがやりたいことをするための機能が組み込まれていますが、これは使用できない可能性がありますが、今後の参考にしておくとよいでしょう。あなたはあなたができると同じように、あなたの出力が必要な場合は
denaryNumber = int(input("Type the number you would like to be put in binary (LIMIT IS 255)"))
print(bin(denaryNumber))
:bin()
は、バイナリ文字列に数値を変換
denaryNumber = int(input("Type the number you would like to be put in binary (LIMIT IS 255)"))
print([int(x) for x in bin(denaryNumber)[2:]])
あなたのインデントを修正してください... – AChampion
は、なぜあなたは(ビンを使用していません)バイナリに変換する関数でビルド? –
私はこのようにしたいので –