【问题标题】:Creating an if statement with a indexerror - Python创建带有 indexerror 的 if 语句 - Python
【发布时间】:2012-11-17 18:31:41
【问题描述】:

我正在尝试创建一个类似于蛇的游戏。不同之处在于通过使用 randint 获得食物配给,然后玩家将能够选择蛇应该向哪个方向生长,起始位置也是随机选择的。游戏场是用矩阵构建的,因此可以通过选择使列表超出范围的增长方向来“陷入困境”。

我的问题是,如果玩家选择以使列表超出范围的方式增长,是否可以创建一个 if 语句以“游戏结束”结束游戏,例如:

if IndexError: list index out of range : 
         print("Game over")

通过异常处理,我的代码将如下所示:

 try :

    if p == 0:
        table[x][y] = "+"
    elif p == 1:
        table[x][y] = "+"
        table[x][y+1] = "+"
    elif p == 2:
        table[x][y] = "+"
        table[x][y+1] = "+"
        table[x][y+2] = "+"
    else:
        table[x][y] = "+"
        table[x][y+1] = "+"
        table[x][y+2] = "+"
        table[x][y+3] = "+"
 except IndexError :
                 print ("Game Over")

但我收到错误“未缩进与任何外部缩进级别不匹配”

【问题讨论】:

  • 那是因为你的代码没有正确缩进。
  • 确保 try 和 except 语句的缩进相同,其中的所有 if/elif/else 具有相同的缩进,并且每个 if/elif 的所有内容/else state 具有相同的缩进。即使是一个空格也会搞砸一切!
  • 哦!我不知道缩进是如此重要!非常感谢,现在好像可以使用了!

标签: python if-statement


【解决方案1】:

使用exception handling

 try :
     #your code
 except IndexError:
    print "Game Over"

【讨论】:

  • 尝试:如果 p == 0: table[x][y] = "+" elif p == 1: table[x][y] = "+" table[x][y +1] = "+" elif p == 2: table[x][y] = "+" table[x][y+1] = "+" table[x][y+2] = "+"否则:表[x][y] = "+" 表[x][y+1] = "+" 表[x][y+2] = "+" 表[x][y+3] = " +" 除了 IndexError : print ("Game Over")
  • 对不起!我想问是否可以在异常处理中编写 if 语句?我想要在异常处理中的代码看起来像我上面写的!
  • @user1832337 不要在 cmets 中发布您的代码,这很难理解。最好将其发布在问题正文中。
  • 是的,很抱歉,我现在重新发布。
猜你喜欢
  • 1970-01-01
  • 2023-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多