-1
import random
print"hello what is your name?"
name = raw_input()
print"hello", name
print"wanna play a game? y, n"
choice = raw_input()
if choice =='y':
    print'good lets start a number guessing game'

elif choice =='n':
    print'maybe next time'
    exit()

random.randint(1,10)
number = random.randint(1,10)
print'pick a number between 1-10'
numberofguesses = 0
guess = input()

while numberofguesses < 10:
 if guess < number:
    print"too low"
 elif guess > number:
        print"too high"
 elif guess == number:
        print'your correct the number is', number
 break
if guess == number:
    print'CONGRATS YOU WIN THE GAME'

プログラムに推測を入力すると、出力が 1 つしか返されません。たとえば、8 つのプログラムを入力すると、出力が「高すぎます」が、再び推測すると出力が空白になります。これを修正するにはどうすればよいですか? こんにちは、あなたのお名前は?

 ed
    hello ed
    wanna play a game? y, n
    y
    good lets start a number guessing game
    pick a number between 1-10
    2
    too low
    >>> 5
    5
    >>> 3
    3
    >>> 2
    2
    >>> 
4

2 に答える 2

5

これがあなたが望むものだと思います:

numberofguesses = 0

while numberofguesses < 10:
 guess = input()  #int(raw_input("Pick a number between 1 and 10: ")) would be much better here.
 numberofguesses+=1
 if guess < number:
    print "too low"
 elif guess > number:
    print "too high"
 elif guess == number:
    print 'your correct the number is', number
    break

あなたのバージョンのコードで、あなたは一度推測します。あなたが間違っている場合、あなたのプログラムは同じ推測を永遠に何度も何度も試みます (あなたbreakが実際に でインデントされるはずだったと仮定しますelif)。端末に新しい推測を入力している可能性がありますが、プログラムはそれらを認識しません。が実際にコード内の正しい場所にある場合は、break一度推測すると、書き込みか間違っているかにかかわらず、すぐにループを終了します。

于 2012-08-02T18:33:39.433 に答える
2

あなたの休憩はあなたのif文の外にあります

whileループを1回実行し、何があっても中断します

于 2012-08-02T18:34:06.083 に答える