当前位置: 首页 > 面试题库 >

Python:检查“字典”是否为空似乎不起作用

隗瑞
2023-03-14
问题内容

我正在尝试检查字典是否为空,但是行为不正常。它只是跳过它并显示 ONLINE(在线) ,除了显示消息外没有任何内容。有什么想法吗?

def isEmpty(self, dictionary):
    for element in dictionary:
        if element:
            return True
        return False

def onMessage(self, socket, message):
    if self.isEmpty(self.users) == False:
        socket.send("Nobody is online, please use REGISTER command" \
                 " in order to register into the server")
    else:
        socket.send("ONLINE " + ' ' .join(self.users.keys()))

问题答案:

空字典在Python中的计算结果为False

>>> dct = {}
>>> bool(dct)
False
>>> not dct
True
>>>

因此,您的isEmpty功能是不必要的。您需要做的是:

def onMessage(self, socket, message):
    if not self.users:
        socket.send("Nobody is online, please use REGISTER command" \
                    " in order to register into the server")
    else:
        socket.send("ONLINE " + ' ' .join(self.users.keys()))


 类似资料:
  • 我正在试着检查字典是否是空的,但它的行为不正常。它只是跳过它并在线显示,除了显示消息之外没有任何东西。知道为什么吗?

  • 如何检查字典是否为空?更具体地说,我的程序从字典中的某个键开始,我有一个循环,循环迭代直到字典中有键为止。整体上algo是这样的: 从Dict中的某个键开始 当Dict中有键时 对Dict中的第一个键执行某些操作 删除第一个键 请注意,上面循环中的可能会向字典中添加新键。我尝试了中的值 但在while循环中添加了一些新键,因此它会失败。

  • 我的代码看起来像 我的文件如下所示 当我运行程序时,我看到 我怎样才能修好它呢?

  • 问题内容: 如何检查字符串是否不为null也不为空? 问题答案: 那呢? 确保&&按此顺序使用的部分,因为如果的第一部分&&失败,java将不会继续评估第二部分,因此确保你不会从为null的情况下得到null指针异常。 请注意,仅从Java SE 1.6起可用。你必须检查以前的版本。 也要忽略空格: (由于可以简化为也可以测试其他空白) 包裹在一个方便的功能中: 成为:

  • 问题内容: Python是否有类似空字符串变量的内容,你可以在其中执行以下操作: 无论如何,检查空字符串值的最优雅方法是什么?我”“每次都很难检查空字符串,因此很难进行编码。 问题答案: 空字符串是“虚假的”,这意味着它们在布尔上下文中被认为是错误的,因此你可以执行以下操作: 如果你知道变量是字符串,则这是首选方式。如果你的变量也可以是其他类型,则应使用。有关在布尔上下文中为假的其他值,请参见“

  • 问题内容: 我最初尝试使用运算符分配值,但返回了错误,然后尝试使用 : 和 但是它正在返回原始价值。 提供有关如何正确使用替换API以获得正确结果的帮助。还有其他任何可用的API可以代替 。 在正在从用户采取的 是由用户的频率串被输入。这个问题几乎不涉及我想知道我是否使用了错误的API变量,因为它为我提供了不变的输出, 我们是否可以使用 从字符串中返回一个字符 来定义API的子字符串。我使用 最大