-3
def three():
    op = ""      
    num = int(input("Input a number:"))
    while num > 0:
        r = num % 2
        num = num // 2
        op = str(r) + op  
    print (op)
  • 何も設定していないように見えるので、誰かがコードの2行目を説明してもらえますか?
  • また、誰かが 2 番目のボトムラインが何をしているのか説明できますか?
4

2 に答える 2

3

op最初は空の文字列 (2 行目) でありr、ループ内 (最後の 2 行目) の文字列表現が先頭に追加されます。

選択した数が 5 だとします。これらはループの反復です。

  1. r = 5%2 = 1

    数値 = 5//2 = 2

    op = "1"

  2. r = 2%2 = 0

    数値 = 2//2 = 1

    op = "0" + "1" = "01"

  3. r = 1%2 = 1

    数値 = 1//2 = 0

    op = "1" + "01" = "101"

全体として、ループは入力された数値のバイナリ表現である文字列を作成します。

于 2013-04-13T14:39:02.737 に答える
0

op は while ループで使用する前に変数として宣言する必要があります。そうしないと、構文エラーが発生します。その最初の行を削除して見てください。

"" が割り当てられているのは、後で追加される (というか、新しいテキストと最後に現在の値に置き換えられる) ためです。だからやってるだけ

op = None

機能しませんでした (str と None を追加することはできません)。

2 番目のボトムラインは連結します。r は (int であるため) 文字列に変換する必要があるため、r の値を文字列として op の先頭に追加することになります。

于 2013-04-13T14:39:07.707 に答える