当我运行这个python时,返回一个错误,说'break is of loop of loop',即使我弄乱了缩进。我也尝试用线间的间隙调整,即使这在python中无关紧要。请帮忙!
# My guess the number game
import random
guessesTaken = 0
print('Hello! What is your name?')
userName = input()
number = random.randint(1, 100)
print('Well, ' + userName + ', I am thinking of a number between 1 and 100.')
while guessesTaken < 6:
print('Take a guess.')
guess = input()
guess = int(guess)
guessesTaken = guessesTaken + 1
if guess < number:
print('Your guess is too low.')
if guess > number:
print('Your guess is too high.')
if guess == number:
break
if guess == number:
guessesTaken = str(guessesTaken)
print('Good job, ' + userName + '! You guessed my number in ' + guessesTaken + ' guesses!')
if guess != number:
number = str(number)
print('Nope. The number I was thinking of was ' + number)
答案 0 :(得分:1)
if
语句与while
具有相同的缩进,因此它们不在循环中。
另外,您可能需要pydoc input
。
所以在你修复了缩进和错误类型的input
语句之后,它就可以了:
jcomeau @ aspire:〜/ tmp $ python test.py
Hello! What is your name?
jc
Well, jc, I am thinking of a number between 1 and 100.
Take a guess.
5
Your guess is too low.
Take a guess.
66
Your guess is too low.
Take a guess.
88
Your guess is too high.
Take a guess.
77
Your guess is too high.
Take a guess.
74
Good job, jc! You guessed my number in 5 guesses!
[正如Robᵩ在评论中指出的,如果它是Python3,input
是正确的。]
答案 1 :(得分:1)
您的缩进不正确。请记住,在Python中,while
或if
的内容比while
语句本身缩进了一个级别。
import random
guessesTaken = 0
print('Hello! What is your name?')
userName = input()
number = random.randint(1, 100)
print('Well, ' + userName + ', I am thinking of a number between 1 and 100.')
while guessesTaken < 6:
print('Take a guess.')
guess = input()
guess = int(guess)
guessesTaken = guessesTaken + 1
if guess < number:
print('Your guess is too low.')
if guess > number:
print('Your guess is too high.')
if guess == number:
break
if guess == number:
guessesTaken = str(guessesTaken)
print('Good job, ' + userName + '! You guessed my number in ' + guessesTaken + ' guesses!')
if guess != number:
number = str(number)
print('Nope. The number I was thinking of was ' + number)
答案 2 :(得分:0)
是必需的,因为你应该在它之前离开循环,你的代码应该是这样的:
# My guess the number game
import random
guessesTaken = 0
print('Hello! What is your name?')
userName = input()
number = random.randint(1, 100)
print('Well, ' + userName + ', I am thinking of a number between 1 and 100.')
while guessesTaken < 6:
print('Take a guess.')
guess = input()
guess = int(guess)
guessesTaken = guessesTaken + 1
if guess < number:
print('Your guess is too low.')
if guess > number:
print('Your guess is too high.')
if guess == number:
break
if guess == number:
guessesTaken = str(guessesTaken)
print('Good job, ' + userName + '! You guessed my number in ' + guessesTaken + ' guesses!')
if guess != number:
number = str(number)
print('Nope. The number I was thinking of was ' + number)