簡體   English   中英

Python的“中斷”說它在循環之外

[英]Python 'break' says it is outside loop

當我運行此python時,即使我弄亂了縮進,也會返回一條錯誤消息,指出“ break超出循環”。 我也嘗試過調整行之間的間隙,即使這在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)

在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正確。

您的縮進不正確。 請記住,在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)

在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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM