Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在游戏中修复此语法错误?_Python - Fatal编程技术网

Python 如何在游戏中修复此语法错误?

Python 如何在游戏中修复此语法错误?,python,Python,我正在创建一个猜测游戏进行练习,我的代码中出现了这个语法错误,它说我的break函数在循环之外。我看了我的代码,它不是在循环之外,所以如果有人能帮我解决我的问题,我将不胜感激 from random import randint def guessing_game(): print('Welcome to the Guessing Game') print('If you would like to exit, just type exit') while True

我正在创建一个猜测游戏进行练习,我的代码中出现了这个语法错误,它说我的break函数在循环之外。我看了我的代码,它不是在循环之外,所以如果有人能帮我解决我的问题,我将不胜感激

from random import randint

def guessing_game():

    print('Welcome to the Guessing Game')
    print('If you would like to exit, just type exit')

    while True:

        num = randint(1,9)
        guesses = []

        while True:

            try:
                guess = int(input('Please guess a number between 1 and 9: '))
            except:
                print('Please enter a numerical value')
                continue
            else:
                if guess < 1 or guess > 9:
                    print('OUT OF RANGE')
                    continue
                else:
                    if guess == num:
                        print(f'Congratulations, you guessed the correct number in {len(guesses)} guesses')
                        break
                    else:
                        if guess > num:
                            print('TOO HIGH')
                            guesses.append(guess)
                            continue
                        else:
                            print('TOO LOW')
                            guesses.append(guess)
                            continue


    play_again = input('Enter exit to stop playing: ')

    if play_again == 'exit':
        break
    else:
        continue
来自随机导入randint
def猜谜游戏():
打印(“欢迎参加猜谜游戏”)
print('如果要退出,只需键入exit')
尽管如此:
num=randint(1,9)
猜测=[]
尽管如此:
尝试:
guess=int(输入('请猜一个介于1和9之间的数字:'))
除:
打印('请输入一个数值')
持续
其他:
如果猜测<1或猜测>9:
打印('超出范围')
持续
其他:
如果guess==num:
打印(f'祝贺您,您在{len(guesses)}guesses'中猜到了正确的数字)
打破
其他:
如果猜测>数值:
打印('太高')
猜测。追加(猜测)
持续
其他:
打印(“太低”)
猜测。追加(猜测)
持续
再次播放=输入('输入退出停止播放:')
如果再次播放==“退出”:
打破
其他:
持续
这是我得到的错误:

  File "<ipython-input-1-09b3cd044357>", line 42
    break
    ^
SyntaxError: 'break' outside loop
文件“”,第42行
打破
^
SyntaxError:“中断”外部循环

检查最后几行的缩进,确保它们在
while
循环,它将工作

from random import randint

def guessing_game():
  print('Welcome to the Guessing Game')
  print('If you would like to exit, just type exit')

  while True:

      num = randint(1,9)
      guesses = []

      while True:

          try:
              guess = int(input('Please guess a number between 1 and 9: '))
          except:
              print('Please enter a numerical value')
              continue
          else:
              if guess < 1 or guess > 9:
                  print('OUT OF RANGE')
                  continue
              else:
                  if guess == num:
                      print(f'Congratulations, you guessed the correct number in {len(guesses)} guesses')
                      break
                  else:
                      if guess > num:
                          print('TOO HIGH')
                          guesses.append(guess)
                          continue
                      else:
                          print('TOO LOW')
                          guesses.append(guess)
                          continue


      play_again = input('Enter exit to stop playing: ')

      if play_again == 'exit':
        break
      else:
        continue
来自随机导入randint
def猜谜游戏():
打印(“欢迎参加猜谜游戏”)
print('如果要退出,只需键入exit')
尽管如此:
num=randint(1,9)
猜测=[]
尽管如此:
尝试:
guess=int(输入('请猜一个介于1和9之间的数字:'))
除:
打印('请输入一个数值')
持续
其他:
如果猜测<1或猜测>9:
打印('超出范围')
持续
其他:
如果guess==num:
打印(f'祝贺您,您在{len(guesses)}guesses'中猜到了正确的数字)
打破
其他:
如果猜测>数值:
打印('太高')
猜测。追加(猜测)
持续
其他:
打印(“太低”)
猜测。追加(猜测)
持续
再次播放=输入('输入退出停止播放:')
如果再次播放==“退出”:
打破
其他:
持续

回复:

您的第42行不在第2行
while loop
中,因此您会收到错误,请确保它在while loop中。这是您的行:

if play_again == 'exit':
    break
else:
    continue
您可以复制此代码:

from random import randint

def guessing_game():
  print('Welcome to the Guessing Game')
  print('If you would like to exit, just type exit')

  while True:

      num = randint(1,9)
      guesses = []

      while True:

          try:
              guess = int(input('Please guess a number between 1 and 9: '))
          except:
              print('Please enter a numerical value')
              continue
          else:
              if guess < 1 or guess > 9:
                  print('OUT OF RANGE')
                  continue
              else:
                  if guess == num:
                      print(f'Congratulations, you guessed the correct number in {len(guesses)} guesses')
                      break
                  else:
                      if guess > num:
                          print('TOO HIGH')
                          guesses.append(guess)
                          continue
                      else:
                          print('TOO LOW')
                          guesses.append(guess)
                          continue


      play_again = input('Enter exit to stop playing: ')

      if play_again == 'exit':
        break
      else:
        continue
来自随机导入randint
def猜谜游戏():
打印(“欢迎参加猜谜游戏”)
print('如果要退出,只需键入exit')
尽管如此:
num=randint(1,9)
猜测=[]
尽管如此:
尝试:
guess=int(输入('请猜一个介于1和9之间的数字:'))
除:
打印('请输入一个数值')
持续
其他:
如果猜测<1或猜测>9:
打印('超出范围')
持续
其他:
如果guess==num:
打印(f'祝贺您,您在{len(guesses)}guesses'中猜到了正确的数字)
打破
其他:
如果猜测>数值:
打印('太高')
猜测。追加(猜测)
持续
其他:
打印(“太低”)
猜测。追加(猜测)
持续
再次播放=输入('输入退出停止播放:')
如果再次播放==“退出”:
打破
其他:
持续

我认为您只需要缩进最后6行,以便它们位于while循环中。