0

ばかげた質問をしているとお詫びしますが、少し混乱しています... edxでMIT6.00Xコースを受講しており、演習の1つは、二分法検索アルゴリズムを使用して秘密番号を見つけることです。演習を完了するのに約4時間かかりましたが(ええ、私は初心者です)、このコードを作成することができました。

numGuesses = 0
lo = 0
hi = 100
mid = (hi + lo)/2
num = raw_input( "Input a number between 0 and 100 ")
if num > 0 or num < 100:
    while mid  != num:
        print ("Is your number " + str(mid) + "?")
        userinput = raw_input( "Enter 'h' to indicate the guess is too high. Enter 'l' to indicate the guess is too low. Enter 'c' to indicate I guessed correctly. ")

        if userinput == 'h':
            hi = mid
            mid = (hi + lo)/2
        elif userinput == 'l':
            lo = mid
            mid = (hi + lo)/2
        elif userinput == 'c':
            print ("Game over. Your secret number was:" + str(mid))
            break
        else:
            print ("Sorry, I did not understand your input.")
else:
    print ("You should use a number between 0 and 100")

手作業でテストしている間は問題なく動作しますが、演習では、サイトが高いか低いかを推測し続けるのではなく、間違ったキーを押すことがあり、演習に失敗することが主な理由で、通過しない質問がいくつかあります。

コードを変更しようとした後、コースを終了できなかったので、答えを確認しました。これは間違っていたので、正しい番号が見つかるまでコードを流し続けるためにブール値を使用する必要がありました。

私の質問は:私のコードは間違っていますか?また、サイトが正しい文字を押すのを妨げている私がした間違いはありますか?ちょっと興味があるんだけど

どうもありがとう

4

2 に答える 2

-1
lo = 0
hi = 100
mid = (hi + lo)/2
print 'Please think of a number between 0 and 100!'
while True:
    print ("Is your number " + str(mid) + "?")
    userinput = raw_input( "Enter 'h' to indicate the guess is too high. Enter 'l' to indicate the guess is too low. Enter 'c' to indicate I guessed correctly. ")

    if userinput == 'h':
        hi = mid
        mid = (hi + lo)/2
    elif userinput == 'l':
        lo = mid
        mid = (hi + lo)/2
    elif userinput == 'c':
        print ("Game over. Your secret number was:" + str(mid))
        break
    else:
        print ("Sorry, I did not understand your input.")
于 2013-02-16T10:57:21.937 に答える