[英]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中, 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)
在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.