0

我在课堂上有这个功能:

 def removeUserFromSessionDatabase(self, user):
      if user in self.users:
         for k in self.users.keys():
            if k == user:
               del self.users[k]
               print("Removed")

            else:
               print("user does not exist")
      else:
         print "soemthing"

现在我总是在最后得到错误else 消息:SyntaxError: invalid syntax 它应该在哪里工作。users 在这里是字典,没有其他方法。为什么我会收到此语法错误?

4

2 回答 2

3

您的缩进可能不正确,很可能是由制表符引起的。跑去python -tt scriptname.py检查。

否则,您的代码中没有会导致此特定异常的语法错误,而不是您提供给我们的代码。

于 2012-09-08T20:21:22.893 回答
3

您可以通过以下方式简化很多

def removeUserFromSessionDatabase(self, user):
      return self.users.pop(user,False)

或者

def removeUserFromSessionDatabase(self, user):
      if self.users.pop(user,False):
         print "%s was deleted from group"
      else:
         print "%s is not in group"

或者

def removeUserFromSessionDatabase(self, user):
      userData = self.users.pop(user,False):
      if userData: 
          #do Something
      else:
          #do something else

或者最后

def removeUserFromSessionDatabase(self, user):
      try:userData = self.users.pop(user):
      except KeyError:
          #user does not exist in dict
          pass
      print "Deleted {0}:{1} From List".format((user,userData))

显然(根据 denlan,我相信它) del可以使用

def removeUserFromSessionDatabase(self, user):
      try:
         del self.users[user]
         print "Removed user"
      except KeyError:  
         print "User does not exist" 


def alt_removeUserFromSessionDatabase(self, user):
      if user in self.users
         del self.users[user]
         print "Removed user"
      else:  
         print "User does not exist" 
于 2012-09-08T20:22:54.547 回答