Pythonで10進数を2進数に変換する関数を作りたいのですが以下のように作成した結果うまく作動してくれません

補足

インデントが消えてしまったのでもう一度載せます。□をインデント箇所とみなしてください。 x=int(input("数字を入力してください")) keta=0 sinsu=[0]*10 if x>0 : #商が1以上なら以下の作業を実行 □ sinsu[9-keta] = x%2 #配列の右から9-keta番目にxの余りを代入 □ x=x//2 #xにxを2で割ったときの商を代入 □ keta=keta+1 #ketaを1つずらす print(sinsu)

プログラミング | 数学17閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

1

1人がナイス!しています

ThanksImg質問者からのお礼コメント

返信遅くなり申し訳ありません。 おかげさまで解決できました。本当にありがとうございます。 他のお二方にも感謝です。

お礼日時:2020/11/26 17:03

その他の回答(2件)

0

こんな感じになるのではないでしょうか。 1:x=int(input("数字を入力してください:")) 2:sinsu=[] 3:while x // 2 > 0: # 商が1以上なら以下の作業を実行 4:__sinsu.append(x % 2) # 配列にxの余りを追加 5:__x = x // 2 6: 7:if x % 2 != 0: # 最後に余りがあれば、配列にxの余りを追加 8:__sinsu.append(x % 2) 9: 10:print(sinsu[::-1]) # 配列の並びを逆順にする

1

正常に動いてはますよ でも2桁目以降の処理はどこにあるの? ループで処理を回さなきゃだめでしょう。 コメント自分で書いてて 「2桁目何処で処理するのだろう?」 って思わなかったのでしょうか? アルゴリズムの練習ではいいのですけど 実際に使うときは変換関数があるのでそちらを使いましょう bin() oct() hex() int(0b1010,2)#2->10進

1人がナイス!しています