【问题标题】:unexpected Indent and break out of loop in game code [closed]游戏代码中的意外缩进和跳出循环[关闭]
【发布时间】:2014-07-06 21:05:40
【问题描述】:

我是 python 的新手,你可以用这个问题来判断。我目前正在构建一个 Rock, Paper, Scissors 游戏,以便稍后包含到我正在使用 python 3.4 开发的更大程序中。我遇到的问题在下面列出的代码中。

def computerPlayer(): #randomly selects a rock paper or scissor for computer hand
    c = random.randint(0, 2)
if c==0:
    y=('rock')
if c==1:
    y=('scissors')
if c==2:
    y==('paper')
     return y

在底线之前返回 y 我收到了一个意外的缩进错误,我在过去一天尝试纠正这个错误,但没有结果,如果我将它向前移动,我会得到“返回”外部函数,但是当我移动它时回来我得到了意想不到的缩进,老实说,我在这里完全不知所措,我不知道该去哪里。任何帮助都非常感谢。

上述问题现已解决,但我知道在循环错误之外有一个中断。它现在出现在我的代码末尾。任何帮助都非常感谢。

    again = raw_input('do you wish to try again? (yes\no)\n :') #Ask the user if they want play again
if again == ('yes') or again == ('sure') or again == ('okay'):
    print ('')
elif again == ('no') or again == ('nah') or again == ('nope') or again == ('screw you') or again == ('screw it'):
    print ('FINE THEN!!! =^( \n               (Enter>>>game()<<< if you change your mind)')
#breaks the loop 
break 

game()

【问题讨论】:

  • 缩进在 Python 中很重要;函数内部只有一行。
  • 不是你的问题的答案——你也可以把这个函数写成return random.choice(['rock', 'scissors', 'paper'])
  • @SvenMarnach 好吧,单行实现问题的答案。

标签: python return break


【解决方案1】:

试试这个:

def computerPlayer():
    '''
    Randomly selects a rock paper or scissor for computer hand
    '''
    c = random.randint(0, 2)
    if c == 0:
       y = ('rock')
    if c == 1:
       y = ('scissors')
    if c == 2:
       y = ('paper')
    return y

缩进在python中很重要,它显示了你的方法和控制流从哪里开始和结束。在您之前的代码中,if 语句没有在该方法下缩进,因此 python 无法判断它是 computerPlayer() 函数的一部分。

根据 PEP8(python 的样式指南),正确的缩进是 4 个空格。有关 PEP8 的更多信息及其对缩进的看法,请查看此处:

http://legacy.python.org/dev/peps/pep-0008/#indentation

【讨论】:

  • 你是不是故意把y==留在那里了?
  • @JimmyThompson 没有。我只是关注 OP 问题的缩进部分。刚刚更新了。
  • @SvenMarnach 刚刚添加了一些解释。
  • 非常感谢您,这似乎可行,但在代码末尾仍有问题,循环外有中断,但我看看我是否能解决这个问题。再次感谢!
  • @Gnels85 没问题!如果您遇到困难,请随时发布另一个问题。
猜你喜欢
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 1970-01-01
  • 2022-12-31
  • 1970-01-01
相关资源
最近更新 更多