Python'break'表示它处于循环之外

时间:2015-12-11 20:33:12

标签: python

当我运行这个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)

3 个答案:

答案 0 :(得分:1)

在Python中,间距是决定代码块的因素。您的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中,whileif的内容比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)

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)
相关问题