2

私の質問の単純な性質をお詫びします。

私は、ウォーレンとカーター・サンデによる子供と初心者向けのコンピューター・プログラミング「Hello World」に取り組んでいます。

最初の章の 2 番目の例は、海賊数クイズのこの数値例です。プログラミング言語は Python です。

正しい数が最初に推測されない限り、6 つの推測を許可するはずです。あなたにとって、コードは自明だと思います。

import random

secret = random.randint(1,99)
guess = 0
tries = 0

print "AHOY! I'm the dread Pirate Roberts, and I have a secret!"
print "It's a number from 1 to 99. I'll give you 6 tries."

while guess != secret and tries < 6:
guess = input("What's yer guess? ")
if guess < secret:
    print "Too low, ye scurvy dog!"
elif guess > secret:
    print "Too high, landlubber!"
tries = tries +1
if guess == secret:
    print "Avast! Ye got it! Found my secret, ye did!"
else:
    print "No more guesses! Better luck next time, matey!"
    print "The secret number was", secret

しかし、私がそれを実行すると、各推測の後に答えが何であるかがわかりますが、これは想定されていません。それは最後まで待つことになっています。

私は自分が何を間違えたのか理解できません。私は各行をチェックしました。少なくとも、チェックしたと思います。

誰かが私が間違っている場所を指摘できれば、それは素晴らしいことです.

4

2 に答える 2

3

適切なインデントが重要です。ループ内のものは必ずインデントし、ループの後のものはインデントしないでください。

while guess != secret and tries < 6:
    guess = input("What's yer guess? ")
    if guess < secret:
        print "Too low, ye scurvy dog!"
    elif guess > secret:
        print "Too high, landlubber!"
    tries = tries + 1

if guess == secret:
    print "Avast! Ye got it! Found my secret, ye did!"
else:
    print "No more guesses! Better luck next time, matey!"
    print "The secret number was", secret
于 2012-09-03T23:32:28.253 に答える
0

これを書くためのより良い方法はそうかもしれません。その後、ループの外側に設定guessする必要はありません0

for tries in range(1, 6):
    guess = input("What's yer guess? ")
    if guess < secret:
        print "Too low, ye scurvy dog!"
    elif guess > secret:
        print "Too high, landlubber!"
    else:
        print "Avast! Ye got it! Found my secret, ye did!"
        break 
else:
    print "No more guesses! Better luck next time, matey!"
    print "The secret number was", secret
于 2012-09-03T23:43:02.353 に答える