簡體   English   中英

python代碼的語法錯誤

[英]syntax error with python code

我班上有這個功能:

 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在那里,因為它應該工作。 用戶是這里的字典,沒有其他方法。 為什么會出現此語法錯誤?

您的縮進可能不正確,很可能是由制表符引起的。 運行python -tt scriptname.py進行檢查。

否則,在您的代碼中沒有語法錯誤會導致此特定異常,而在您提供給我們的代碼中則沒有。

你可以通過簡化很多

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))

顯然(per 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" 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM